Adding or Modifying Metric or Event Alarm Rules
Function
This API is used to add or modify AOM 2.0 metric or event alarm rules.
Calling Method
For details, see Calling APIs.
Authorization Information
Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions.
- If you are using role/policy-based authorization, see Permissions Policies and Supported Actions for details on the required permissions.
- If you are using identity policy-based authorization, the following identity policy-based permissions are required.
URI
POST /v4/{project_id}/alarm-rules
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| project_id | Yes | String | Project ID, which can be obtained from the console or by calling an API. For details, see Obtaining a Project ID. |
Request Parameters
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| X-Auth-Token | Yes | String | User token obtained from IAM. For details, see Obtaining a Token. |
| Content-Type | Yes | String | Message body type or format. Content type, which is application/json. |
| Enterprise-Project-Id | No | String | Enterprise project ID. For details, see Obtaining an Enterprise Project ID. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| alarm_notifications | No | AlarmNotification object | Alarm notification module. |
| alarm_rule_description | No | String | Alarm rule description. |
| alarm_rule_enable | No | Boolean | Enabled or not. |
| alarm_rule_name | Yes | String | Alarm rule name. |
| alarm_rule_type | Yes | String | Alarm rule type. |
| event_alarm_spec | No | EventAlarmSpec object | Structure of an event alarm rule. |
| metric_alarm_spec | No | MetricAlarmSpec object | Structure of a metric alarm rule. |
| prom_instance_id | No | String | Prometheus instance ID. |
| alias | No | String | Alias of an alarm rule. Enter a maximum of 256 characters and do not start or end with any special character. Only letters, digits, underscores (_), and hyphens (-) are allowed. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| alarm_source | No | String | Alarm rule source. |
| event_source | No | String | Alarm source. |
| monitor_objects | No | Array of Map<String,String> objects | List of monitored objects. Key-value pair. |
| trigger_conditions | Yes | Array of EventTriggerCondition objects | Trigger conditions. |
| alarm_rule_template_bind_enable | No | Boolean | (Deprecated) Whether to bind an alarm rule template. |
| alarm_rule_template_id | No | String | (Deprecated) ID of the alarm rule template. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| event_name | No | String | Event name. |
| trigger_type | No | String | Trigger mode. |
| aggregation_window | No | Long | Monitoring period. Unit: second. For example, 3600 indicates 1 hour. If trigger_type is set to immediately, leave this parameter blank. If trigger_type is set to accumulative, this parameter is mandatory. Value range: 5 minutes, 20 minutes, 1 hour, 4 hours, or 24 hours. |
| operator | No | String | Operator. Options: >, <, =, >=, and <=. If trigger_type is set to immediately, leave this parameter blank. If trigger_type is set to accumulative, this parameter is mandatory. |
| thresholds | No | Map<String,Integer> | Key-value pair. The key indicates the alarm severity while the value indicates the number of accumulated trigger times. If trigger_type is set to immediately, the value is 1. If trigger_type is set to accumulative, the value ranges from 1 to 100. (This parameter is mandatory if trigger_conditions is specified.) |
| frequency | No | String | Event alarm notification frequency. If trigger_type is set to immediately, the value of this parameter is -1. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| monitor_type | Yes | String | Monitoring type. |
| no_data_conditions | No | Array of NoDataCondition objects | Action taken for insufficient data. |
| alarm_tags | Yes | Array of AlarmTags objects | Alarm tags. |
| monitor_objects | No | Array of Map<String,String> objects | List of monitored objects. |
| recovery_conditions | Yes | RecoveryCondition object | Alarm clearance condition. |
| trigger_conditions | Yes | Array of TriggerCondition objects | Trigger conditions. |
| alarm_rule_template_bind_enable | No | Boolean | (Deprecated) Whether to bind an alarm rule template. |
| alarm_rule_template_id | No | String | (Deprecated) ID of the alarm rule template. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| no_data_timeframe | No | Integer | Number of consecutive periods without data. Value range: 1–5. (If notify_no_data is set to true, this parameter is mandatory. If notify_no_data is set to false, leave this parameter blank.) |
| no_data_alert_state | No | String | Status of the threshold rule when the data is insufficient. (If notify_no_data is set to true, this parameter is mandatory. If notify_no_data is set to false, leave this parameter blank.) |
| notify_no_data | No | Boolean | Whether to take action when no data is reported. true: Enable the function. false: Disable the function. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| auto_tags | No | Array of strings | Automatic tag. |
| custom_tags | No | Array of strings | Custom tag. |
| custom_annotations | No | Array of strings | Alarm annotation. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| recovery_timeframe | No | Integer | Number of consecutive periods for which the trigger condition is not met to clear an alarm. Value range: 1–3. (If recovery_timeframe is specified, this parameter is mandatory.) |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| metric_query_mode | Yes | String | Metric query mode. |
| metric_namespace | Yes | String | Metric namespace. |
| metric_name | Yes | String | Metric name. |
| metric_unit | Yes | String | Metric unit. |
| metric_labels | Yes | Array of strings | Metric dimension. |
| promql | Yes | String | Prometheus statement. |
| promql_expr | No | String | Prometheus statement template. |
| trigger_times | No | Integer | Number of consecutive periods. |
| trigger_interval | No | String | Check interval.
|
| trigger_type | No | String | Trigger type. |
| promql_for | No | String | Native Prometheus monitoring duration. |
| aggregation_type | No | String | Definition: Statistics. Range: average minimum maximum sum sampleCount |
| operator | No | String | Operator. Options: >, <, =, >=, and <=. |
| thresholds | No | Map<String,String> | Key-value pair. The key indicates the alarm severity while the value indicates the alarm threshold. |
| aggregation_window | No | String | Statistical period. Options: |
| cmdb | No | CmdbInfo object | CMDB information. |
| query_match | No | String | Query filter criteria. |
| query_param | Yes | Object | Query parameter. |
| aom_monitor_level | No | String | Monitoring layer. |
| aggregate_type | No | String | Aggregation method. |
| metric_statistic_method | No | String | Metric statistics method to be used when you set Configuration Mode to Select from all metrics during alarm rule setting. |
| expression | No | String | Expression of a combined operation. |
| mix_promql | No | String | PromQL of a combined operation. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| app_id | No | String | Application ID. |
| node_ids | No | Array of NodeInfo objects | Node information list. |
Response Parameters
Status code: 200
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Error code. |
| error_message | String | Error message. |
| alarm_rules | Array of AddOrUpdateAlarmRuleV4ItemResult objects | Alarm rule list. |
| Parameter | Type | Description |
|---|---|---|
| alarm_rule_name | String | Alarm rule name. |
| result | String | Whether an alarm rule is successfully added or modified. |
Status code: 400
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. Range N/A |
| error_msg | String | Definition Error message. Range N/A |
| error_type | String | Definition Error type. Range N/A |
| trace_id | String | Definition Request ID. Range N/A |
Status code: 500
| Parameter | Type | Description |
|---|---|---|
| error_code | String | Definition Error code. Range N/A |
| error_msg | String | Definition Error message. Range N/A |
| error_type | String | Definition Error type. Range N/A |
| trace_id | String | Definition Request ID. Range N/A |
Example Requests
-
https://{Endpoint}/v4/{project_id}/alarm-rules?action_id=add-alarm-action { "alarm_notifications" : { "bind_notification_rule_id" : "", "notification_enable" : false, "notification_type" : "alarm_policy", "notify_frequency" : -1, "notify_resolved" : true, "notify_triggered" : true, "route_group_enable" : true, "route_group_rule" : "aom_route_group_rule" }, "alarm_rule_description" : "aom_alarm_rule", "alarm_rule_enable" : true, "alarm_rule_name" : "aom_alarm_rule", "alarm_rule_type" : "metric", "metric_alarm_spec" : { "alarm_rule_template_bind_enable" : false, "alarm_rule_template_id" : "", "alarm_tags" : [ { "auto_tags" : [ ], "custom_annotations" : [ "333=rrr" ], "custom_tags" : [ "333=rrr" ] } ], "monitor_objects" : [ ], "monitor_type" : "all_metric", "no_data_conditions" : [ { "no_data_alert_state" : "no_data", "no_data_timeframe" : 3, "notify_no_data" : true } ], "recovery_conditions" : { "recovery_timeframe" : 2 }, "trigger_conditions" : [ { "aggregate_type" : "by", "aggregation_type" : "average", "aggregation_window" : "5m", "aom_monitor_level" : "", "cmdb" : { "app_id" : "", "node_ids" : [ ] }, "expression" : "", "metric_labels" : [ ], "metric_name" : "aom_metrics_total", "metric_namespace" : "", "metric_query_mode" : "PROM", "metric_statistic_method" : "single", "metric_unit" : "", "mix_promql" : "", "operator" : ">", "promql" : "label_replace(avg_over_time(aom_metrics_total{instance=\"1117919565\"}[59999ms]),\"__name__\",\"aom_metrics_total\",\"\",\"\")", "query_match" : "", "query_param" : { }, "thresholds" : { "Info" : "100" }, "trigger_interval" : "15m", "trigger_times" : 4, "trigger_type" : "FIXED_RATE" } ] }, "prom_instance_id" : "0" } -
https://{Endpoint}/v4/{project_id}/alarm-rules?action_id=update-alarm-action { "alarm_notifications" : { "bind_notification_rule_id" : "", "notification_enable" : false, "notification_type" : "alarm_policy", "notify_frequency" : -1, "notify_resolved" : true, "notify_triggered" : true, "route_group_enable" : true, "route_group_rule" : "aom_route_group_rule" }, "alarm_rule_description" : "aom_alarm_rule", "alarm_rule_enable" : true, "alarm_rule_name" : "aom_alarm_rule", "alarm_rule_type" : "metric", "metric_alarm_spec" : { "alarm_rule_template_bind_enable" : false, "alarm_rule_template_id" : "", "alarm_tags" : [ { "auto_tags" : [ ], "custom_annotations" : [ "333=rrr" ], "custom_tags" : [ "333=rrr" ] } ], "monitor_objects" : [ ], "monitor_type" : "all_metric", "no_data_conditions" : [ { "no_data_alert_state" : "no_data", "no_data_timeframe" : 3, "notify_no_data" : true } ], "recovery_conditions" : { "recovery_timeframe" : 2 }, "trigger_conditions" : [ { "aggregate_type" : "by", "aggregation_type" : "average", "aggregation_window" : "5m", "aom_monitor_level" : "", "cmdb" : { "app_id" : "", "node_ids" : [ ] }, "expression" : "", "metric_labels" : [ ], "metric_name" : "aom_metrics_total", "metric_namespace" : "", "metric_query_mode" : "PROM", "metric_statistic_method" : "single", "metric_unit" : "", "mix_promql" : "", "operator" : ">", "promql" : "label_replace(avg_over_time(aom_metrics_total{instance=\"1117919565\"}[59999ms]),\"__name__\",\"aom_metrics_total\",\"\",\"\")", "query_match" : "", "query_param" : { }, "thresholds" : { "Info" : "100" }, "trigger_interval" : "15m", "trigger_times" : 4, "trigger_type" : "FIXED_RATE" } ] }, "prom_instance_id" : "0" } -
https://{Endpoint}/v4/{project_id}/alarm-rules?action_id=add-alarm-action { "alarm_notifications" : { "bind_notification_rule_id" : "aom_event_notification_rule", "notification_enable" : true, "notification_type" : "direct", "notify_frequency" : 0, "notify_resolved" : false, "notify_triggered" : false, "route_group_enable" : false, "route_group_rule" : "" }, "alarm_rule_description" : "aom_alarm_event_rule", "alarm_rule_enable" : true, "alarm_rule_name" : "aom_event_alarm_rule", "alarm_rule_type" : "event", "event_alarm_spec" : { "alarm_source" : "systemEvent", "event_source" : "CCE", "monitor_objects" : [ { "event_name" : "ScaleUpTimedOut; VolumeResizeFailed", "event_type" : "event" } ], "trigger_conditions" : [ { "aggregation_window" : 300, "event_name" : "ScaleUpTimedOut", "frequency" : "-1", "operator" : ">", "thresholds" : { "Critical" : 1 }, "trigger_type" : "accumulative" }, { "event_name" : "VolumeResizeFailed", "thresholds" : { "Critical" : 1 }, "trigger_type" : "immediately" } ] } } -
https://{Endpoint}/v4/{project_id}/alarm-rules?action_id=update-alarm-action { "alarm_notifications" : { "bind_notification_rule_id" : "aom_event_notification_rule", "notification_enable" : true, "notification_type" : "direct", "notify_frequency" : 0, "notify_resolved" : false, "notify_triggered" : false, "route_group_enable" : false, "route_group_rule" : "" }, "alarm_rule_description" : "aom_alarm_event_rule", "alarm_rule_enable" : true, "alarm_rule_name" : "aom_event_alarm_rule", "alarm_rule_type" : "event", "event_alarm_spec" : { "alarm_source" : "systemEvent", "event_source" : "CCE", "monitor_objects" : [ { "event_name" : "ScaleUpTimedOut; VolumeResizeFailed", "event_type" : "event" } ], "trigger_conditions" : [ { "aggregation_window" : 300, "event_name" : "ScaleUpTimedOut", "frequency" : "-1", "operator" : ">", "thresholds" : { "Critical" : 1 }, "trigger_type" : "accumulative" }, { "event_name" : "VolumeResizeFailed", "thresholds" : { "Critical" : 2 }, "trigger_type" : "immediately" } ] } }
Example Responses
Status code: 200
{
"alarm_rules" : [ {
"alarm_rule_name" : "aom_alarm_rule",
"result" : "success"
} ],
"error_code" : "200",
"error_message" : "success"
} Status code: 400
{
"error_code" : "AOM.02021006",
"error_msg" : "This rule actionId is invalid",
"error_type" : "PARAM_INVALID",
"trace_id" : "58ef0f7c107a2b577f78b9cc7f48b46f"
} Status code: 500
{
"error_code" : "AOM.02021500",
"error_msg" : "internal server error",
"error_type" : "INTERNAL_SERVER_ERROR",
"trace_id" : ""
} Status Codes
| Status Code | Description |
|---|---|
| 200 | OK: The request is successful. |
| 400 | Bad Request: Invalid request. The client should not repeat this request without modification. |
| 500 | Internal Server Error: The server is able to receive the request but unable to understand the request. |
Error Codes
See Error Codes.
What is your overall rating for this page?
Thank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot