Adding or Modifying Metric or Event Alarm Rules
Function
This API is used to add or modify metric or event alarm rules.
Calling Method
For details, see Calling APIs.
URI
POST /v4/{project_id}/alarm-rules
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
project_id |
Yes |
String |
Project ID obtained from IAM. Generally, a project ID contains 32 characters. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
action_id |
Yes |
String |
Alarm rule ID.
|
Request Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
X-Auth-Token |
Yes |
String |
User token obtained from IAM. |
Content-Type |
Yes |
String |
Content type, which is application/json. |
Enterprise-Project-Id |
No |
String |
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. Enumeration values:
|
alarm_rule_name |
Yes |
String |
Alarm rule name. |
alarm_rule_type |
Yes |
String |
Alarm rule type.
Enumeration values:
|
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. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
notification_type |
Yes |
String |
Notification type.
Enumeration values:
|
route_group_enable |
Yes |
Boolean |
Whether to enable the grouping rule.
Enumeration values:
|
route_group_rule |
Yes |
String |
Grouping rule name.
|
notification_enable |
No |
Boolean |
Whether to enable an alarm action rule.
|
bind_notification_rule_id |
No |
String |
Alarm action rule ID.
|
notify_resolved |
No |
Boolean |
Whether to send a notification when an alarm is cleared.
Enumeration values:
|
notify_triggered |
No |
Boolean |
Whether to send a notification when an alarm is triggered.
Enumeration values:
|
notify_frequency |
No |
Integer |
Notification frequency.
|
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
alarm_source |
No |
String |
Alarm rule source.
Enumeration values:
|
event_source |
No |
String |
Alarm source.
|
monitor_objects |
No |
Array of Map<String,String> objects |
List of monitored objects. Key-value pair.
|
trigger_conditions |
No |
Array of EventTriggerCondition objects |
Trigger conditions. |
alarm_rule_template_bind_enable |
No |
Boolean |
(Discarded) Whether to bind an alarm rule template. Default: false |
alarm_rule_template_id |
No |
String |
(Discarded) ID of the alarm rule template. Default: "" |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
event_name |
No |
String |
Event name. |
trigger_type |
No |
String |
Trigger mode.
Enumeration values:
|
aggregation_window |
No |
Long |
Statistical period, in seconds. For example, 3600 indicates one hour. Leave this parameter empty if trigger_type is set to immediately. |
operator |
No |
String |
Operator. Options: >, <, =, >=, and <=. Leave this parameter empty if trigger_type is set to immediately. |
thresholds |
No |
Map<String,Integer> |
Key-value pair. The key indicates the alarm severity while the value indicates the number of accumulated trigger times. Leave this parameter empty if trigger_type is set to immediately. |
frequency |
No |
String |
Event alarm notification frequency. Leave this parameter empty if trigger_type is set to immediately.
|
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
monitor_type |
Yes |
String |
Monitoring type.
Enumeration values:
|
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 |
(Discarded) Whether to bind an alarm rule template. Default: false |
alarm_rule_template_id |
No |
String |
(Discarded) ID of the alarm rule template. Default: "" |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
no_data_timeframe |
No |
Integer |
Number of periods without data. |
no_data_alert_state |
No |
String |
Status of the threshold rule when the data is insufficient.
Enumeration values:
|
notify_no_data |
No |
Boolean |
Whether to send a notification when data is insufficient. |
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. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
metric_query_mode |
Yes |
String |
Metric query mode.
Enumeration values:
|
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 |
Array of strings |
Prometheus statement template. |
trigger_times |
No |
String |
Number of consecutive periods. |
trigger_interval |
No |
String |
Check interval.
|
trigger_type |
No |
String |
Trigger type.
Enumeration values:
|
promql_for |
No |
String |
Native Prometheus monitoring duration. |
aggregation_type |
No |
String |
Statistical mode.
|
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.
|
cmdb |
No |
CmdbInfo object |
CMDB information. |
query_match |
No |
String |
Query filter criteria. |
query_param |
Yes |
String |
Query parameters. |
aom_monitor_level |
No |
String |
Monitoring layer. |
aggregate_type |
No |
String |
Aggregation mode.
Enumeration values:
|
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.
Enumeration values:
|
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 |
Error code. Minimum: 12 Maximum: 12 |
error_msg |
String |
Error message. Minimum: 0 Maximum: 1024 |
error_type |
String |
Error type. Minimum: 0 Maximum: 128 |
trace_id |
String |
Request ID. Minimum: 32 Maximum: 32 |
Status code: 500
Parameter |
Type |
Description |
---|---|---|
error_code |
String |
Error code. Minimum: 12 Maximum: 12 |
error_msg |
String |
Error message. Minimum: 0 Maximum: 1024 |
error_type |
String |
Error type. Minimum: 0 Maximum: 128 |
trace_id |
String |
Request ID. Minimum: 32 Maximum: 32 |
Example Requests
- Add a metric alarm rule.
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" : [ { "addMode" : "first", "conditionCompare" : "=", "conditionList" : [ { "name" : "1117919565" } ], "conditionValue" : [ { "name" : "1117919565" } ], "dimension" : "instance", "id" : "first", "regExpress" : null } ], "query_param" : { }, "thresholds" : { "Info" : "100" }, "trigger_interval" : "15m", "trigger_times" : 4, "trigger_type" : "FIXED_RATE" } ] }, "prom_instance_id" : "0" }
- Modify a metric alarm rule.
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" : [ { "addMode" : "first", "conditionCompare" : "=", "conditionList" : [ { "name" : "1117919565" } ], "conditionValue" : [ { "name" : "1117919565" } ], "dimension" : "instance", "id" : "first", "regExpress" : null } ], "query_param" : { }, "thresholds" : { "Info" : "100" }, "trigger_interval" : "15m", "trigger_times" : 4, "trigger_type" : "FIXED_RATE" } ] }, "prom_instance_id" : "0" }
- Add an event alarm rule.
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" : "-1", "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" } ] } }
- Modify an event alarm rule.
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" : "-1", "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
OK: The request is successful.
{ "alarm_rules" : [ { "alarm_rule_name" : "aom_alarm_rule", "result" : "success" } ], "error_code" : "200", "error_message" : "success" }
Status code: 400
Bad Request: Invalid request. The client should not repeat this request without modification.
{ "error_code" : "AOM.02021006", "error_msg" : "This rule actionId is invalid", "error_type" : "PARAM_INVALID", "trace_id" : "58ef0f7c107a2b577f78b9cc7f48b46f" }
Status code: 500
Internal Server Error: The server is able to receive the request but unable to understand the request.
{ "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.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.