Unified alerting with ARMS Alert Management
Overview

In the cloud-native era, enterprise IT infrastructures are growing larger. More systems and services are deployed in cloud environments. To monitor these complex IT environments, companies often use heterogeneous monitoring systems, such as Prometheus, Grafana, and Zabbix. This helps them obtain more comprehensive monitoring data to better understand the health and performance of their IT infrastructure.
However, these heterogeneous monitoring systems also create problems, the most significant of which is scattered alert information. Different monitoring systems generate different alerts, which can be spread across various systems. This makes it difficult for companies to obtain a complete view of their IT system's alert status. This makes responding to alerts more difficult and increases the complexity and workload of manual management.
This document describes a unified and centralized alert management solution based on Application Real-Time Monitoring Service (ARMS). This solution ensures that alerts reach the right people promptly so they can take the necessary actions to address potential issues quickly.
Advantages
Extensive support for alert sources
ARMS Alert Management covers more than 10 common alert sources, including CloudMonitor, Simple Log Service (SLS), Prometheus, Grafana, Zabbix, Open-Falcon, and Nagios. It also provides an API for integration. This allows users to process alerts from any source in a unified way. Companies can manage and respond to alerts from different systems on a single platform. This simplifies O&M processes.
Integration with multiple collaboration tools
By integrating with team collaboration tools such as DingTalk, WeCom, Lark, Apsara DevOps, Jira, and PagerDuty, ARMS Alert Management lets you handle alert events directly within these tools. You do not need to switch to other platforms or systems. This not only improves work efficiency but also reduces security risks from frequent account switching. It also supports reusing existing account systems and provides flexible permission allocation, further enhancing security and convenience.
Customer scenarios
Inconsistent alerts from cloud products after migrating to the cloud
When a company migrates its business to the cloud, it might use multiple Alibaba Cloud products, such as Container Service for Kubernetes (ACK), Elastic Compute Service (ECS), and ApsaraDB RDS, to build its application architecture. Each product has its own monitoring system, which leads to alert information being scattered across different platforms. ARMS Alert Management can consolidate these alerts from different systems, provide a unified view, simplify the configuration process, and support a more efficient alert handling workflow.
Inconsistent alerts from heterogeneous monitoring systems in multicloud or hybrid cloud architectures
For companies that use a multicloud strategy or maintain both private and public cloud resources, the challenge is to effectively manage and respond to alert signals across environments. ARMS Alert Management supports the manual integration of more types of monitoring tools. This helps companies achieve integrated alert management across cloud platforms, which improves O&M efficiency and reduces potential risks.
Need to integrate self-developed monitoring systems and custom event alerts
As application complexity increases, development teams may also create custom monitoring logic for specific needs. The ARMS alert management system allows users to flexibly integrate alerts from these custom monitoring sources. This ensures all key metrics are monitored in real time and appropriate actions are taken.
Solution architecture
This solution is based on ARMS Alert Management. It integrates alert sources such as ARMS, Simple Log Service (SLS), CloudMonitor, and self-managed Prometheus. It uses an event processing flow to compress, reduce noise in, and deduplicate collected alerts. It also configures notification recipients and notification policies. This provides end-to-end management of alert information, from collection and processing to precise notification. This helps improve O&M efficiency and the accuracy of alert handling.

Product fees and terms
Product fees
Product Name |
Description |
Fee |
ARMS Alert Management |
ARMS Alert Management provides reliable alert convergence, notifications, and automatic upgrades to help you quickly detect and resolve business alerts. This topic describes the architecture and benefits of alert management. |
Some notification channels are subject to fees. For more information, see Product Billing. |
ARMS Prometheus Monitoring |
ARMS Prometheus Monitoring is fully compatible with the open-source Prometheus ecosystem, supports monitoring for a wide range of components, provides multiple out-of-the-box dashboards, and offers a fully managed Prometheus service. With ARMS Prometheus Monitoring, you do not need to build your own Prometheus monitoring system and therefore do not have to worry about underlying data storage, data visualization, or system O&M. |
Paid. For more information, see Product Billing. |
CloudMonitor |
CloudMonitor is a service for monitoring Alibaba Cloud resources and internet applications. You can use CloudMonitor to collect metrics from Alibaba Cloud resources, detect the availability of internet services, and set alerts for metrics. |
Some features are free, while advanced features are paid. For more information, see Product Billing. |
Simple Log Service |
Simple Log Service (SLS) is a cloud-native observability platform. It provides a large-scale, low-cost, and real-time platform service for data such as logs, metrics, and traces. SLS offers one-stop services for data ingestion, processing, query and analysis, visualization, alerting, consumption, and delivery. It enhances your digital capabilities in scenarios such as R&D, O&M, operations, and security. |
Paid. For more information, see Product Billing. |
Glossary
Name |
Description |
Period-over-period increase/decrease % |
If β is the data from the last N minutes (can be average, sum, max, or min), and α is the data from 2N minutes ago to N minutes ago, the period-over-period comparison is between β and α. |
YoY Change (%) |
For an hour-over-hour comparison, if β is the data from the last N minutes (can be average, sum, max, or min), and α is the data from the last N minutes of the previous hour, the hour-over-hour comparison is between β and α. |
Notification policy |
A notification policy determines how events are aggregated into a single alert and how assigned alerts are sent to contacts. You can configure notifications through phone calls, text messages, emails, or DingTalk groups to inform contacts about alerts that need to be resolved or acknowledged within one minute. |
Escalation policy |
If an alert escalation times out, Alert Management notifies different batches of contacts defined in the escalation rule in sequence. Escalation policies can be added to specific notification policies. |
Security
Security settings
To ensure security when you use custom robots, add a custom keyword in the robot's security settings. For example, if you add the custom keyword alert, messages sent by this robot must contain the word alert to be sent successfully.
Access control
Resource Access Management (RAM) lets you use RAM users to segregate permissions. You can grant permissions to RAM users as needed and avoid the security risks that are associated with exposing your Alibaba Cloud account's AccessKey. For more information about how to grant permissions to RAM users using custom authorization policies, see Custom RAM authorization policies for Alert Management.
Notes
Free alert notification quota limit
Accounts that have not activated the ARMS Alert Management service receive 15 free text message notifications and 3 free phone call notifications per day. Exceeding the free quota will cause alert notifications to fail. If you need more alert notifications, activate the Alert Management service.
Implementation steps
Preparations
Ensure that you have configured alerts in the alert sources to be integrated, such as CloudMonitor, ARMS, and Simple Log Service.
To create a DingTalk, WeCom, or Lark alert robot, ensure that you have created an alert group in the corresponding client.
Implementation duration
After completing the preparations, the estimated implementation time for this solution is 60 minutes.
Procedure
Integrate alert sources
Integrate ARMS alerts
ARMS Alert Management has integrated ARMS by default. You can search for ARMS-DEFAULT in Alert Management > Integration to view the ARMS integration.
Integrate Simple Log Service alerts
ARMS Alert Management supports integrating alerts from Simple Log Service through a webhook. This lets you manage these alerts in a centralized way.
There are two ways to integrate Simple Log Service with ARMS Alert Management:
Integrate all alerts from a specified project in Simple Log Service into ARMS Alert Management. For more information, see Create an integration and connect to Simple Log Service.
Integrate specified alerts from Simple Log Service into ARMS Alert Management. For more information, see Connect to a specified alert rule in Simple Log Service.
Create an integration and connect to Simple Log Service
Log on to the ARMS console. In the navigation pane on the left, choose Alert Management > Integration.
On the Integration page, on the Alert Integration tab, click Simple Log Service.
In the dialog box that appears, enter a name and description for the Simple Log Service integration, and set the automatic alert event recovery time.
In the All Projects area of Projects to Integrate Alert Events, all projects of Alibaba Cloud Simple Log Service are displayed. Select the project whose alerts you want to integrate, click the
icon, and then click Save.This feature automatically traverses all alert rules configured in the selected project. It adds the alert request address
https://alerts.aliyuncs.com/api/v1/events/{{token}}to these rules, where{{token}}is the key automatically generated when the integration is created.
After the configuration is complete, you can view the created Simple Log Service integration on the Alert Integration tab.
Connect to a specified alert rule in Simple Log Service
On the Alert Integration tab of the Integration page, copy the integration URL of the target Simple Log Service integration.
Log on to the Simple Log Service console.
In the Project List area, click the target project. In the navigation pane on the left, click the
icon, which is the alert icon.On the Alert Center page, choose Notification Recipient > Webhook Integration. On the Webhook Integration page, click Create.
In the dialog box that appears, add the universal webhook for ARMS Alert Management. Set the name to ARMS Alert Management, select Universal Webhook for the type, and configure other parameters as prompted.
On the Alert Center page, choose Notification Policy > Content Template and click Create. In the dialog box that appears, click the WebHook-Custom tab. Set Send Method to Send one by one and configure the content to send as shown in the following figure. Then, click OK.
{ "uid": "{{ alert.aliuid }}", "project": "{{ alert.project }}(https://sls.console.aliyun.com/#/project/{{ alert.project }}/categoryList)", "trigger": "{{ alert.alert_name }}", "condition": "{{ alert.condition }}", "context": {{ alert.results[0].raw_results | to_json | quote }}, "message": " [Uid] {{ alert.aliuid }}\n\n> [Project] [{{ alert.project }}](https://sls.console.aliyun.com/#/project/{{alert.project }}/categoryList)\n\n> [Trigger] {{ alert.alert_name }}\n\n> [Condition] {{ alert.alert_name }}\n\n> [Message] Notification Content\n\n> [Context] {{ alert.results[0].raw_results | to_json | quote | removeprefix('"') | removesuffix('"') }}\n\n> [View Details]({{ alert.query_url }})" }On the Alert Center page, click the Alert Rules tab. In the Operation column of the target rule, click Edit. In the dialog box that appears, expand Advanced Configuration. In the Output Target area, select SLS Notification. In the Alert Policy area, select Simple Mode. Configure the notification channel for the universal webhook as prompted. After the configuration is complete, click OK.
Integrate CloudMonitor alerts
ARMS Alert Management supports integrating alerts from CloudMonitor through a webhook. After alerts are integrated, you can manage them centrally. This solves the problem of scattered alert configurations and inconsistent alert handling capabilities across different systems.
There are two ways to integrate CloudMonitor with ARMS Alert Management:
Integrate all alerts from a specified product in CloudMonitor into ARMS Alert Management. For more information, see Create an integration and connect to CloudMonitor.
Integrate specified alerts from CloudMonitor into ARMS Alert Management. For more information, see Connect to a specified alert rule in CloudMonitor.
Create an integration and connect to CloudMonitor
Log on to the ARMS console. In the navigation pane on the left, choose Alert Management > Integration.
On the Alert Integration tab, click CloudMonitor.
In the Create CloudMonitor Integration dialog box, enter a name and description for the CloudMonitor integration, and set the automatic alert event recovery time.
In the All Products area of Products to Integrate Alert Events, the products supported by CloudMonitor for alert integration are displayed. Select the products whose alerts you want to integrate, click the
icon, and then click Save.
After the configuration is complete, you can view the created CloudMonitor integration on the Alert Integration tab.
Connect to a specified alert rule in CloudMonitor
Before you can connect to a specified CloudMonitor alert rule, you must first create a CloudMonitor integration. For more information, see Create an integration and connect to CloudMonitor.
On the Alert Integration tab of the Integration page, copy the integration URL of the target CloudMonitor integration.
Log on to the CloudMonitor console.
In the navigation pane on the left, choose Alert Service > Alert Rules.
On the Alert Rules page, in the Operation column of the target alert rule, click Modify.
In the panel that appears, in the Advanced Settings area, set the alert callback URL to the integration URL of the CloudMonitor integration.
Click OK.
Edit an integration
ARMS Alert Management provides preset field mappings between the Simple Log Service alert source and ARMS Alert Management. You can also add or modify field mappings on the Edit Integration page as needed.
On the Alert Integration tab, in the Operation column of the target integration, click Edit.
In the Event Mapping area on the left, click Send Test Data.
In the Send Test Data dialog box, enter the alert content from the third-party alert source in JSON format, and then click Send.
If the message
Upload successful, but no event was generated. Please configure event mapping rules based on the raw data!is displayed, the fields of the alert source are not mapped to the ARMS alert event fields. The data that is sent is saved in the record box on the left. This lets you directly select the corresponding alert source fields when you configure the mapping.If
Upload successful!is displayed, the corresponding alert content is reported to the Alert Event History page. For more information, see View Alert Event History.
In the Send Test Data dialog box, click Close.
In the Event Mapping area on the left, click to expand the alert data for which you want to create a mapping.
In the Event Mapping area on the right, configure the mapping between the alert source fields and the ARMS alert fields.
Optional: In the Select Root Node area, choose whether to use batch processing. When the alert data contains an array node, you can specify the target array node as the root node to batch process the data under that root node. After selecting Use Batch Processing, select the array node to be batch processed as the root node.
When the alert data contains multiple array nodes, ARMS Alert Management supports selecting only one of them for batch processing.
Optional: Select Configure Alert Recovery Event and set the recovery field condition. After the system receives an event, it queries the alert event based on the recovery field. Events containing the specified field will be automatically recovered. The field that is used to specify the recovery event must be a field in the original event that is equivalent to the alert level. You cannot use the
$.severityfield. For example, if the recovery field is{$.eventType="resolved"}, the system will automatically recover all alerts under this integration where eventType is resolved.In the Map Source Fields to Destination Fields area, map the alert source fields to the ARMS alert fields. Click the mapping icon to change the field mapping method.
Direct: The specified field from the alert source is directly mapped to the corresponding alert field in ARMS.
Concatenate: Multiple alert source fields are concatenated into a single field using a specified separator. This single field is then mapped to the corresponding alert field in ARMS. Only special characters are supported as separators.
Conditional: The configured field is mapped to the ARMS destination field only when the alert field value meets the specified condition.
Mapping Table: Set the mapping between the alert levels of the alert source and the alert levels in ARMS. A mapping table needs to be set only for the alert level (severity) field.
ARMS alert field descriptions:
ARMS Alert Field
Description
Alert Name (alertname)
The name of the custom alert.
Alert Level (severity)
The mapping field for the alert level. You must set an alert level mapping table for this field, and the mapping method must be set to Direct.
Alert Description (message)
The detailed information of the alert event, used for alert notifications. Supports up to 15,000 characters.
Alert Sample Value (value)
The sample value of the monitoring metric.
Alert Image (imageUrl)
The URL of the metric line chart, used to map Grafana metric line charts.
Check Item (check)
The alert check item. For example: CPU, JVM, Application Crash, Deployment.
Source (source)
The source of the alert event.
Class
The object type of the alert event, such as host.
Service (service)
The business-related source service, such as Login Service.
Start Time (startat)
The timestamp of the event start time.
End Time (endat)
The timestamp of the event end time.
Event URL (generatorUrl)
The URL for the event details.
Configure event deduplication. To reduce duplicate data, the system uses relevant fields as the basis for deduplication. ARMS Alert Management supports previewing the deduplication grouping results of historical event data in the Event Mapping area. You can adjust the deduplication fields as needed.
Event deduplication applies only to events that are not in a recovered state.
In the Event Deduplication area of the Edit Integration page, select the fields for deduplication. When the values of the selected fields are the same, the corresponding multiple events will be merged into a single alert notification.
Click Deduplication Test to preview the deduplicated alert groups.
The deduplication test is performed on the last 10 test data entries that are uploaded in the area on the left of the Event Mapping section.
After configuration, click Save.
Integrate self-managed Prometheus alerts
Open source Prometheus supports reporting alerts to Alertmanager. By configuring <alertmanager_config> in the prometheus.yaml file, you can report alerts to the cloud-based alert center. For more information, see [alertmanager_config].
ARMS Alert Management provides an Alertmanager notification capability that is fully compatible with the open source version. By integrating Prometheus, you can report alerts from your self-managed Prometheus to ARMS Alert Management.
Log on to the ARMS console. In the navigation pane on the left, choose Alert Management > Integration.
On the Alert Integration tab, click Prometheus.
In the Create Prometheus Integration dialog box, enter a name and description for the Prometheus integration, and set the automatic alert event recovery time. Then, click Save.
Automatic alert event recovery time: If an alert event is not triggered again within the specified time, the alert event automatically recovers.
Select the method to connect to Prometheus based on the type of Prometheus instance, and then click OK.
For Prometheus instances managed by Prometheus-Operator
Create an
arms-alertmanager-config.yamlfile locally and paste the following content into the created file.- scheme: https bearer_token: ****** static_configs: - targets: ['alerts.aliyuncs.com']Obtain the value of
bearer_tokenfrom the console.Create a secret named
arms-am-configfrom thearms-alertmanager-config.yamlfile.kubectl create secret generic arms-am-config --from-file=arms-alertmanager-config.yamlCreate a
prometheus-patch.yamlfile locally and paste the following content into the created file.spec: additionalAlertManagerConfigs: key: arms-alertmanager-config.yaml name: arms-am-configExecute the following command to retrieve the Prometheus object.
kubectl get prometheusSample response:
NAME VERSION REPLCAS AGE prometheus-operator-160879-prometheus v2.18.2 1 4d1hExecute the following command to update the Prometheus object with the
prometheus-patch.yamlfile.kubectl patch prometheus prometheus-operator-160879-prometheus --patch "$(cat prometheus-patch.yaml)" --type=merge
For Prometheus instances built in other ways
Modify the
prometheus.yamlconfiguration file.The following configuration is for Prometheus 2.35. For configuration formats of other versions, see the Prometheus official documentation.
alerting: alertmanagers: - api_version: v1 authorization: type: Bearer credentials: ${token} scheme: https static_configs: - targets: ["alerts.aliyuncs.com"]Obtain the value of
bearer_tokenfrom the console.Access the Prometheus configuration page in your browser to check if the
prometheus.yamlfile has been modified.
Integrate other Prometheus-like observability systems with ARMS alerts
Thanos uses the --alertmanagers.config parameter of the thanos rule command to specify the alertmanager configuration file. Fill in the integration URL and token as described above. For more information, see the Thanos documentation.
VictoriaMetrics uses the -notifier.config parameter of the ./bin/vmalert command to specify the notifier configuration file. Fill in the integration URL and token as described above. For more information, see the VictoriaMetrics documentation.
Create an event processing flow
After integrating multiple alert sources with ARMS Alert Management, you can set up an event processing flow to filter and classify events generated by the alert sources.
Log on to the ARMS console.
In the navigation pane on the left, choose Alert Management > Event Processing Flow.
On the Event Processing Flow page, click Create Processing Flow in the upper-right corner.
On the Create Processing Flow page, in the Basic Information area, enter a name for the processing flow.
In the Flow Action Configuration area, set up the event processing flow.
Drag actions from the Available Flow Actions area to the Event Processing Flow area.
In the area on the far right, set the execution conditions for each action in the event processing flow.
After configuring the actions, you can test the alert fields in the Test Data area to verify if the actions are configured correctly.
Action
Description
Example
Trigger Condition
Only events that meet the trigger condition will execute the current processing flow.
Scenario
An integration named Container CPU Usage Alert executes the current processing flow.
Action Configuration
Set the condition to
_aliyun_arms_integration_name equals Container CPU Usage Alert.Filter Event
Events that meet the filter condition will skip the current event flow and execute the next one. Unfiltered events will continue to execute the current flow.
If your alert rule has not yet generated an event, you can select only the preset ARMS fields
_aliyun_arms_integration_idand_aliyun_arms_integration_namefor configuration. To use event fields such as severity or alertname, you can configure them in one of the following two ways:Manually enter the field.
Add an alert rule to generate an alert event. After the event is generated, you can select the event field value here.
Scenario
P4 level alert events do not execute the current processing flow.
Action Configuration
Set the condition to
severity equals P4.Identify Event Type
Identifies the event object classification (Class) and event type (Type) based on the selected event field values using an algorithm. This is used for event and alert query statistics.
The following event object classifications (Class) are supported:
Network
Storage
Compute
Operating System (OS)
Application
Database
Change
The following event types (Type) are supported:
Availability
Latency
Capacity
Error
Unknown
Scenario
Identify the event object classification (Class) and event type (Type) using the
alertnameandmessagefield values.Action Configuration
Set Identification Fields to
alertnameandmessage.Execution Result
The system writes the intelligent identification results to the
classandtypelabels.
Set Event Level
Set the event level for the current processing stream to a specific value.
Scenario
Set the level of core service network-type alert events to P1.
Action Configuration
Set the Trigger Condition action to
class equals network.Set the Set Event Level action to P1.
Execution Result
Set Business Label
Sets a business label (Label) for events that execute the current processing flow. This is used for event and alert statistics queries.
Field: Uses the value of a field in the event as the value of the
labelfield.Value: Sets a fixed value for the
labelfield.
Scenario
Use the alert level as the alert label to later count events of each level.
Action Configuration
Set the business label to
Field: severity.Execution Result
A
labelfield will be added to the alert event. The value of thelabelfield will be the value of theseverityfield.Delete Field
Deletes certain fields from the event.
Scenario
The alert event contains
locationandregionfields. Thelocationfield already contains region information, so theregionfield needs to be deleted.Action Configuration
Set the field to delete to
region.Extract Content
Extracts the content of a field in an event using a regular expression and populates a new field with the extracted content.
Scenario
Alert field:
cn-hangzhou-hz4Extract the region and specific location information from the
locationfield and populate theregionanddatacenterfields with the extracted information.Action Configuration
Field to extract from:
locationExtraction regular expression:
([a-zA-z]+-[a-zA-z]+)-(.*)Fields to fill:
region,datacenter
Execution Result
Match and Update
When the system detects a specific piece of content in a specified field of an event, it populates the target field with the specified field value.
Scenario
Alert field:
"message":"ping to i-bp1e42d0ydxf7pstuepz > 100ms"When
messagecontainsping, it indicates a network event. The event needs to be marked as a network type.Action Configuration
Field to match:
messageUpdate field value if condition is met: contains
pingoutputnetwork. The contained value can be an actual field value or a regular expression.Fill into field:
class
Execution Result
Rich fields
Enriches a field by calling an API or querying a local Excel data source, and populates the target field with the result.
The data source feature is currently in grayscale release. Contact the Alert DingTalk support account (
d9j_rg9e4062f) for assistance.Scenario
Based on the IP field in the alert event, query the uploaded Excel data source and populate the event's
hostnamefield with the resulting hostname.Action Configuration
Select data source: Get Host Data Source-excel
Match and update mode:
ip(matches the column name in Excel) equalsip(corresponds to the column value in Excel)Fill into field:
$.hostName(column name from the Excel query result) fills intohostname
Replace Content
Finds and replaces the content of a specified field. You can use regular expressions to find the content.
Scenario
Replace the string
d.b.with the stringdatabasein the alert event.Action Configuration
Content snippet to replace:
messageReplace content snippet:
d\.b\.Note: You can use an actual field value or a regular expression.Replace with:
database
Execution Result
Split Content
Splits a field using a separator character and populates multiple target fields with the results.
Scenario
Alert field:
"message":"myhostid_myuserid_myruleid"Split the value of the
messagefield intohostid,userid, andruleid, and populate new fields with the results.Action Configuration
Field to split:
messageSeparator character:
_Fields to fill with split results:
hostId,userId,ruleId
The split fields will be filled in order.
Execution Result
Fill Template
Enter template content (for example,
${class}).The event source is
${source}.). Variable names are the field names after event integration. The rendered template populates the target field.
Scenario
Alert fields:
"source":"server", "class":"network"Set the
messagefield toThe event of type ${class} is from source ${source}, which needs to reference theclassandsourcefield values.Action Configuration
Template to fill:
The event of type ${class} is from source ${source}Fill into field:
message
Execution Result
Discard
Discards events that execute the current processing flow. The discard action can only be the last node of the current event processing flow and does not require configuration.
None
In the Test Data area on the left, enter test fields and field values, or click Select from Event to select a test event from existing alert events. Then, click Click to Test.
After you configure the settings, click Save. After the event processing flow is created, events from integrated alert sources are filtered in the order defined in the flow. You can view the filtered events on the Alert Event History page. For more information, see View alert event history.
Create alert notification recipients
ARMS Alert Management supports sending alert notifications to contacts by phone call, text message, email, DingTalk, WeCom, Lark, or webhook.
Contacts
Create a contact
Log on to the ARMS console. In the navigation pane on the left, choose Alert Management > Notification Recipient.
On the Contacts tab, click Create Contact.
In the Create Contact dialog box, set the following parameters as needed, and then click OK.
Parameter
Description
Name
Enter a custom contact name.
Mobile Number
Set the contact's mobile number to receive alert notifications via phone calls and text messages.
Email
Set the contact's email address to receive alert notifications via email.
Contact Group
Select the contact group to which the contact should be added. For information about how to create a contact group, see Create a contact group.
Fallback Notification Type for Failed Phone Calls
Select the fallback notification type if a phone call notification fails.
User ID
The user ID for the IM tool used within the enterprise (currently supports DingTalk, Lark, and WeCom), such as a DingTalk ID or WeCom ID.
This field can be used to @mention contacts in alert cards within a group. To use this feature, enter the correct ID for the corresponding IM tool.
Currently, the @mention feature for Lark and WeCom depends on this field. DingTalk does not currently depend on this field.
Note: Only verified mobile phone numbers can be used for the phone call notification method in a notification policy. For more information about how to verify a mobile phone number, see Verify a mobile phone number.
Create a contact group (Optional)
When you create a notification policy, you can specify a contact group as the notification recipient. When the matching rule of the notification policy is triggered, ARMS Alert Management sends alert notifications to all recipients in the contact group by phone call, text message, email, DingTalk, or other methods.
Note: You must create contacts or DingTalk, WeCom, or Lark robots before you can create a contact group.
Log on to the ARMS console. In the navigation pane on the left, choose Alert Management > Notification Recipient.
On the Contacts tab, click Create Contact Group.
In the Create Contact Group dialog box, enter a Group Name, select Alert Contacts, and click OK.
After creation, the corresponding contact group will be displayed in the list on the left of the Contacts tab.
Alert Robots
DingTalk robot
Before you create a DingTalk robot, you must complete the following steps:
You have created a DingTalk group in the DingTalk client to receive alerts.
Add a custom DingTalk chatbot and obtain its webhook URL. For more information, see Obtain the Webhook URL of a DingTalk chatbot.
Log on to the ARMS console. In the navigation pane on the left, choose Alert Management > Notification Recipient.
Click the DingTalk/Lark/WeCom tab, and then click DingTalk.
In the panel that appears, set the following parameters, and then click OK.
Parameter
Description
Name
The name of the DingTalk robot.
Signature Key
Optional. If a key is configured, DingTalk authentication will be performed using a signature. If no key is configured, authentication is performed using a keyword whitelist by default. The whitelist keyword is alert. For more information, see the DingTalk official documentation.
Robot URL
Enter the webhook URL of the DingTalk robot.
Robot Sends Daily Statistics
If selected, you need to enter the time points for sending daily statistics. Use commas (,) to separate multiple time points. The time format is
HH:SS. ARMS Alert Management will send the total number of alerts generated, resolved, and pending for the day at the set time points.Card Content Configuration
Customize the style and content of the alert notification card.
WeCom robot
After creating a WeCom robot in ARMS Alert Management, you can specify the corresponding WeCom group in a notification policy to receive alerts. When the matching rule of the notification policy is triggered, the system automatically sends an alert notification to your specified WeCom group. After the WeCom group receives the notification, you can manage the alert within the group.
Before you create a WeCom robot, make sure that you have created a WeCom group to receive alert notifications.
Due to WeCom's licensing restrictions on application service providers, ARMS provides a maximum of 20 WeCom API call licenses. We recommend that you arrange your on-duty staff for handling alerts within WeCom in a reasonable manner. Personnel who do not have a strong need to handle alerts in WeCom are advised to handle alerts in the ARMS console.
Step 1: Obtain the robot webhook URL
Open and log on to WeCom.
Click the
icon in the upper-right corner of the WeCom group, and then click Group Robot.On the Group Robot page, click Add Robot. On the Robot page, click Add.
On the Add Robot page, enter a name for the robot, and then click Add.
Click Copy to save the webhook URL of the WeCom robot.
Step 2: Create the robot in the ARMS console
Log on to the ARMS console. In the navigation pane on the left, choose Alert Management > Notification Recipient.
Click the DingTalk/Lark/WeCom tab, and then click WeCom.
In the create robot panel, set the following parameters, and then click OK.
Configuration Item
Description
Name
Enter a custom name for the WeCom robot.
Bot Address
Enter the webhook URL of the WeCom robot.
Robot Sends Daily Statistics
If selected, you need to enter the time points for sending daily statistics. Use commas (,) to separate multiple time points. The time format is
HH:SS. ARMS Alert Management will send the total number of alerts generated, resolved, and pending for the day at the set time points.Card Content Configuration
Customize the style and content of the alert notification card.
Lark robot
After creating a Lark robot in ARMS Alert Management, you can specify the corresponding Lark group in a notification policy to receive alerts. When the matching rule of the notification policy is triggered, the system automatically sends an alert notification to your specified Lark group. After the Lark group receives the notification, you can manage the alert within the group.
Step 1: Obtain the robot webhook URL
Open and log on to Lark.
(Optional) Click the + icon, and then click Create Group to create a new group for sending alerts.
In the upper-right corner of the Lark group, choose
> Settings, and then click Group Robot.In the Group Robot panel, click Add Robot, and then select Custom Robot.
On the robot configuration page, set the robot name and description, and then click Add.
Copy the webhook URL, then select Custom Keywords and enter the keyword
alert.
Step 2: Create the robot in the ARMS console
Log on to the ARMS console. In the navigation pane on the left, choose Alert Management > Notification Recipient.
Click the DingTalk/Lark/WeCom tab, and then click Lark.
In the create robot panel, set the following parameters, and then click OK.
Parameter
Description
Name
You can customize the name of the Lark bot.
Robot URL
Enter the webhook URL of the Lark robot.
Does the bot send daily statistics?
If selected, you need to enter the time points for sending daily statistics. Use commas (,) to separate multiple time points. The time format is
HH:SS. ARMS Alert Management will send the total number of alerts generated, resolved, and pending for the day at the set time points.Card Content Configuration
Customize the style and content of the alert notification card.
Customize alert notification recipients via webhook
When you create a notification policy, you can send alert notifications to a custom webhook URL. ARMS Alert Management supports sending webhook alerts to third-party notification recipients. This topic uses Lark as an example to show how to create a webhook alert.
Step 1: Obtain the webhook URL
Configure the Lark webhook robot on a PC.
Open and log on to Lark.
Click the + icon, and then click Create Group to create a new group for sending alerts.
Click the group settings icon, and then click the Group Robot tab.
On the Group Robot tab, click Add Robot.
In the Add Robot panel, select Custom Bot.
On the configuration page, set the Display Name and Description, and then click Add.
In the Add Status area, click Copy, and then click Done.
Step 2: Create a webhook contact
Log on to the ARMS console. In the navigation pane on the left, choose Alert Management > Notification Recipient.
Click the Webhook Integration tab, and then click Create Webhook.
In the Create Webhook dialog box, enter the following configuration information.
Parameter
Description
Webhook Name
Required. The name of the webhook.
Post and Get
Required. Set the request method. The URL cannot exceed 256 characters.
In this example, select Post and paste the webhook URL saved in Step 1 into the text box on the right.
Header and Param
Optional. Set the request header. Cannot exceed 200 characters. Click +Add to add other Header or Param information. The default request header is Content-Type: text/plain; charset=UTF-8. The total number of Headers and Params cannot exceed 6.
In this example, set the following two Headers:
Arms-Content-Type : json
Content-Type : application/json
Notification Template
The notification template to send when an alert is triggered. This is an optional field that is available only for the Post method. You can use the
$contentplaceholder to output the notification content, which cannot exceed 500 characters. For more information, see Configure notification templates and webhook templates.The notification template is as follows:
{ "Alert Name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster Name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application Name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification Policy":"{{ .dispatchRuleName }}", "Alert Time":"{{ .startTime }}", "Alert Content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }For Lark, you can set the following text format:
{ "msg_type": "text", "content": { "text": "Alert Name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster Name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application Name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Notification Policy: {{ .dispatchRuleName }} \nAlert Time: {{ .startTime }} \nAlert Content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }Recovery Template
Specifies the notification template to send when an alert is recovered. This parameter is optional and is available only for the POST method. You can use the $content placeholder to output the notification content. The template cannot exceed 500 characters. For more information, see Configure notification templates and webhook templates.
The recovery template is as follows:
{ "Alert Name":"{{ .commonLabels.alertname }}{{if .commonLabels.clustername }}", "Cluster Name":"{{ .commonLabels.clustername }} {{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}", "Application Name":"{{ .commonLabels._aliyun_arms_involvedObject_name }} {{ end }}", "Notification Policy":"{{ .dispatchRuleName }}", "Recovery Time":"{{ .endTime }}", "Alert Content":"{{ for .alerts }} {{ .annotations.message }} {{ end }}" }For Lark, you can set the following text format:
{ "msg_type": "text", "content": { "text": "Alert Name: {{ .commonLabels.alertname }}\n{{if .commonLabels.clustername }}Cluster Name: {{ .commonLabels.clustername }}\n{{ end }}{{if eq "app" .commonLabels._aliyun_arms_involvedObject_kind }}Application Name: {{ .commonLabels._aliyun_arms_involvedObject_name }}\n{{ end }}Recovery Time: {{ .startTime }} \nNotification Policy: {{ .dispatchRuleName }} \nRecovered Alert Content: {{ for .alerts }} {{ .annotations.message }}\n {{ end }}" } }Optional: Click Send Test to verify the configuration.
Click OK.
Notification policy management
Notification policy
By setting a notification policy, you can create matching rules for alert events. When a matching rule is triggered, the system sends an alert message to the notification recipient using your specified notification method. This reminds the recipient to take necessary problem-solving measures.
Log on to the ARMS console. In the navigation pane on the left, choose Alert Management > Notification Policy.
On the Notification Policy page, click Create Notification Policy.
At the top of the Create Notification Policy page, set the name of the notification policy.
In the Matching Rules area, set the matching rules for alert events.
Select the data source.
Specified Source: The notification policy will filter and send notifications for alert events from the specified source (integration).
No Preset Source: The notification policy will filter and send notifications for all alert events.
Set the matching rule expression. You can use custom labels or select existing ones.
Existing labels include the following:
The fields that are included in an alert rule expression. For more information about how to create labels for alert rules in Managed Service for Prometheus, see Prometheus alerting rules.
Default labels provided by the ARMS system. The default labels are described below.
Category
Label
Description
Common Fields
alertname
Alert name.
clustername
Cluster name.
severity
Alert level:
P1
P2
P3
P4
Default
namespace
pod_name
System Preset Fields
_aliyun_arms_integration_name
Integration name. The default integration name for alerts reported by ARMS is ARMS-DEFAULT.
_aliyun_arms_involvedObject_id
Alert object ID.
_aliyun_arms_involvedObject_name
Alert object name.
_aliyun_arms_region_id
Region ID.
_aliyun_arms_alert_rule_id
Alert rule ID.
_aliyun_arms_alert_type
Alert rule type:
101: Prometheus alert
5: Application Monitoring alert
4: Browser Monitoring alert
If an alert must meet multiple matching rules simultaneously to be triggered, click Add Condition to edit the second matching rule condition.
If an alert should be triggered when it meets any one of the matching rules, click Add Rule to edit the second matching rule.
Click Next.
In the Event Grouping area, set whether alert events need to be grouped, and then click Next.
No Grouping: All alert events will be sent as a single alert message to the handler.
Set Grouping Fields: Alert events with the same field content will be aggregated into a single alert notification.
In the Notification Recipient area, set the following parameters.
Click +Add Notification Recipient to select a notification recipient.
Notification recipient types:
Contact: After selecting a specific contact, you also need to choose the notification method: phone, text message, or email.
Contact Group: After selecting a specific contact group, you also need to choose the notification method: phone, text message, or email.
On-call Schedule: After selecting a specific on-call schedule, you also need to choose the notification method: phone, text message, or email.
DingTalk/Lark/WeCom: Send alert notifications via DingTalk, Lark, or WeCom.
Universal Webhook: Send alert notifications via webhook.
Select whether to send a recovery notification after the alert is resolved.
Send Recovery Notification: When all events under an alert are recovered, the alert status will automatically change to resolved. When the alert is recovered, the system will send a notification to the alert handler.
Set up notification templates. For more information, see Configure notification templates and Webhook templates.
Set the notification period. Alerts will be sent during the configured notification period.
Optional: Select the ticketing system to which you want to push alerts. For more information about how to integrate a ticketing system, see Notification Integration.
Click Next.
In the Repeat/Escalation/Recovery Policy area, set whether the alert requires repeated notifications or an escalation policy, and then click Next.
Repeat Notifications: If repeated notifications are needed, set the repetition frequency. When an alert is not resolved, the alert message will be sent repeatedly at the specified frequency until the alert is resolved.
Does the alert have an upgrade policy configured?
No Escalation Policy: If the alert is not resolved, it is sent only once.
Select Escalation Policy: If the alert is not resolved, the alert notification will be sent to other notification recipients in accordance with the escalation policy.
Enable Manual Recovery: If manual recovery is enabled, when an alert event is not triggered again within the automatic recovery time set in the alert integration, the alert does not automatically recover. It must be manually changed to the resolved state.
In the Action Integration area, you can set actions to be automatically executed after an alert is triggered or recovers. For more information, see Execute Alert Plans Through ARMS Action Integration.
After configuration, click Save.
Silence policy
The silence policy in ARMS Alert Management can converge alerts and reduce alert storms. By setting a silence policy, you can create matching rules for alert events. When a rule is triggered, the corresponding event will be silenced and will not be matched by any notification policy.
Silence policies take precedence over notification policies. This means that an alert event matched by a silence policy will be silenced and cannot be matched by a notification policy.
Log on to the ARMS console. In the navigation pane on the left, choose Alert Management > Silence Policy.
On the Silence Policy page, click Create Silence Policy.
On the Create Silence Policy page, set the name of the silence policy.
In the Silence Event Matching Rules area, set the matching rules for silenced events.
Set the Silence Rule Effective Period.
Always Active
Recurring: Select Daily or Weekly recurrence, then click Add to set the effective time period for the silence rule.
Custom Time Period: Click Add to set the effective time period for the silence rule.
After configuration, click Save.
Escalation policy
For alerts that remain unresolved for a long time, you can choose to send an escalation notification to remind contacts to resolve them promptly. After adding an escalation policy to a notification policy, the system will send an alert message to the handler using your specified notification method to remind them to take necessary problem-solving measures.
Log on to the ARMS console. In the navigation pane on the left, choose Alert Management > Escalation Policy.
On the Escalation Policy page, click Create Escalation Policy.
In the text box at the top of the area on the right, enter a name for the escalation policy.
In the escalation rule area, set the notification condition. This means sending an alert notification when an alert has not been claimed or resolved within a specified period. For example: send an escalation notification if an alert is not claimed for 10 minutes.
Parameter
Description
Recipient/On-call Schedule
Select the notification recipient. For information about how to create a notification recipient, see Create alert notification recipients.
Notification Method
Supported notification methods include DingTalk, email, WebHook, text message, and phone call. You can select multiple methods at the same time.
Note: Contacts with unverified mobile numbers cannot use the phone notification method. To verify a mobile number, see Verify a mobile number.
Notification Period
Alerts that meet the notification conditions will be sent during the configured notification period.
Repetitions
The number of times to resend the alert notification. When the alert no longer meets the notification conditions, the alert notification will stop being sent.
Note: The alert is sent at least once. Setting this to 0 will still send the alert once.
After configuration, click Save.
Troubleshooting
Why do I still receive alert notifications even if I selected not to specify a notification policy for the alert?
Regardless of whether a notification policy is specified in the alert rule, the alert is sent to Alert Management. If the alert meets the dispatch conditions of another notification policy, it is sent through that other policy.

icon in the upper-right corner of the WeCom group, and then click Group Robot.
> Settings, and then click Group Robot.