Querying Metric or Event Alarm Rules
Function
This API is used to query metric or event alarm rules. (Note: This API is available in CN East-Shanghai1.)
Calling Method
For details, see Calling APIs.
URI
GET /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 |
---|---|---|---|
name |
No |
String |
Alarm rule name. |
limit |
No |
String |
Number of records that can be returned. Minimum: 1 Maximum: 1000 |
offset |
No |
String |
Start position for a pagination query, which must be a non-negative integer. |
sort_by |
No |
String |
Whether to sort alarms by alarm rule name or alarm creation time.
|
event_source |
No |
String |
Source of an event alarm rule.
|
event_severity |
No |
String |
Alarm severity.
|
alarm_rule_status |
No |
String |
Alarm rule status.
Enumeration values:
|
alarm_rule_type |
No |
String |
Alarm rule type.
Enumeration values:
|
prom_instance_id |
No |
String |
Prometheus instance ID. |
bind_notification_rule_id |
No |
String |
Name of the bound alarm action rule. |
related_cce_clusters |
No |
String |
CCE cluster 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.
|
Response Parameters
Status code: 200
Parameter |
Type |
Description |
---|---|---|
alarm_rules |
Array of AlarmParamForV4Db objects |
Alarm rule list. |
metadata |
Object |
Metadata information. |
count |
Integer |
Number of alarm rules. |
Parameter |
Type |
Description |
---|---|---|
alarm_create_time |
Long |
Time when an alarm rule was created. |
alarm_update_time |
Long |
Time when an alarm rule was modified. |
alarm_rule_name |
String |
Alarm rule name. |
alarm_rule_id |
Long |
Alarm rule ID. |
enterprise_project_id |
String |
Enterprise project ID. |
prom_instance_id |
String |
Prometheus instance ID. |
alarm_rule_description |
String |
Alarm rule description. |
alarm_rule_enable |
Boolean |
Enabled or not. |
alarm_rule_status |
String |
Alarm status.
|
alarm_rule_type |
String |
Rule type.
Enumeration values:
|
metric_alarm_spec |
MetricAlarmSpec object |
Structure of a metric alarm rule. |
event_alarm_spec |
EventAlarmSpec object |
Structure of an event alarm rule. |
alarm_notifications |
AlarmNotification object |
Alarm notification module. |
user_id |
String |
User ID. |
Parameter |
Type |
Description |
---|---|---|
monitor_type |
String |
Monitoring type.
Enumeration values:
|
no_data_conditions |
Array of NoDataCondition objects |
Action taken for insufficient data. |
alarm_tags |
Array of AlarmTags objects |
Alarm tags. |
monitor_objects |
Array of Map<String,String> objects |
List of monitored objects. |
recovery_conditions |
RecoveryCondition object |
Alarm clearance condition. |
trigger_conditions |
Array of TriggerCondition objects |
Trigger conditions. |
alarm_rule_template_bind_enable |
Boolean |
(Discarded) Whether to bind an alarm rule template. Default: false |
alarm_rule_template_id |
String |
(Discarded) ID of the alarm rule template. Default: "" |
Parameter |
Type |
Description |
---|---|---|
no_data_timeframe |
Integer |
Number of periods without data. |
no_data_alert_state |
String |
Status of the threshold rule when the data is insufficient.
Enumeration values:
|
notify_no_data |
Boolean |
Whether to send a notification when data is insufficient. |
Parameter |
Type |
Description |
---|---|---|
auto_tags |
Array of strings |
Automatic tag. |
custom_tags |
Array of strings |
Custom tag. |
custom_annotations |
Array of strings |
Alarm annotation. |
Parameter |
Type |
Description |
---|---|---|
recovery_timeframe |
Integer |
Number of consecutive periods for which the trigger condition is not met to clear an alarm. |
Parameter |
Type |
Description |
---|---|---|
metric_query_mode |
String |
Metric query mode.
Enumeration values:
|
metric_namespace |
String |
Metric namespace. |
metric_name |
String |
Metric name. |
metric_unit |
String |
Metric unit. |
metric_labels |
Array of strings |
Metric dimension. |
promql |
String |
Prometheus statement. |
promql_expr |
Array of strings |
Prometheus statement template. |
trigger_times |
String |
Number of consecutive periods. |
trigger_interval |
String |
Check interval.
|
trigger_type |
String |
Trigger type.
Enumeration values:
|
promql_for |
String |
Native Prometheus monitoring duration. |
aggregation_type |
String |
Statistical mode.
|
operator |
String |
Operator. Options: >, <, =, >=, and <=. |
thresholds |
Map<String,String> |
Key-value pair. The key indicates the alarm severity while the value indicates the alarm threshold. |
aggregation_window |
String |
Statistical period.
|
cmdb |
CmdbInfo object |
CMDB information. |
query_match |
String |
Query filter criteria. |
query_param |
String |
Query parameters. |
aom_monitor_level |
String |
Monitoring layer. |
aggregate_type |
String |
Aggregation mode.
Enumeration values:
|
metric_statistic_method |
String |
Metric statistics method to be used when you set Configuration Mode to Select from all metrics during alarm rule setting.
Enumeration values:
|
expression |
String |
Expression of a combined operation. |
mix_promql |
String |
PromQL of a combined operation. |
Parameter |
Type |
Description |
---|---|---|
app_id |
String |
Application ID. |
node_ids |
Array of NodeInfo objects |
Node information list. |
Parameter |
Type |
Description |
---|---|---|
alarm_source |
String |
Alarm rule source.
Enumeration values:
|
event_source |
String |
Alarm source.
|
monitor_objects |
Array of Map<String,String> objects |
List of monitored objects. Key-value pair.
|
trigger_conditions |
Array of EventTriggerCondition objects |
Trigger conditions. |
alarm_rule_template_bind_enable |
Boolean |
(Discarded) Whether to bind an alarm rule template. Default: false |
alarm_rule_template_id |
String |
(Discarded) ID of the alarm rule template. Default: "" |
Parameter |
Type |
Description |
---|---|---|
event_name |
String |
Event name. |
trigger_type |
String |
Trigger mode.
Enumeration values:
|
aggregation_window |
Long |
Statistical period, in seconds. For example, 3600 indicates one hour. Leave this parameter empty if trigger_type is set to immediately. |
operator |
String |
Operator. Options: >, <, =, >=, and <=. Leave this parameter empty if trigger_type is set to immediately. |
thresholds |
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 |
String |
Event alarm notification frequency. Leave this parameter empty if trigger_type is set to immediately.
|
Parameter |
Type |
Description |
---|---|---|
notification_type |
String |
Notification type.
Enumeration values:
|
route_group_enable |
Boolean |
Whether to enable the grouping rule.
Enumeration values:
|
route_group_rule |
String |
Grouping rule name.
|
notification_enable |
Boolean |
Whether to enable an alarm action rule.
|
bind_notification_rule_id |
String |
Alarm action rule ID.
|
notify_resolved |
Boolean |
Whether to send a notification when an alarm is cleared.
Enumeration values:
|
notify_triggered |
Boolean |
Whether to send a notification when an alarm is triggered.
Enumeration values:
|
notify_frequency |
Integer |
Notification frequency.
|
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
Query metric or event alarm rules.
https://{Endpoint}/v4/{project_id}/alarm-rules?limit=100&offset=0
Example Responses
Status code: 200
OK: The request is successful.
{ "alarm_rules" : [ { "alarm_create_time" : 1713929265429, "alarm_notifications" : { "bind_notification_rule_id" : "aom_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" : "", "alarm_rule_enable" : true, "alarm_rule_id" : 0, "alarm_rule_name" : "aom_alarm_rule", "alarm_rule_status" : "Effective", "alarm_rule_type" : "event", "alarm_update_time" : 0, "enterprise_project_id" : "0", "event_alarm_spec" : { "alarm_rule_template_bind_enable" : false, "alarm_rule_template_id" : "", "alarm_source" : "systemEvent", "event_source" : "CCE", "monitor_objects" : [ { "clusterId" : "a4****6b-f**9-1**e-a**d-02****10***a", "event_type" : "event" } ], "trigger_conditions" : [ { "aggregation_window" : 300, "event_name" : "", "frequency" : "1", "operator" : ">=", "thresholds" : { "Critical" : 2 }, "trigger_type" : "immediately" } ] }, "user_id" : "2a****56****48****73****1b****cf" }, { "alarm_create_time" : 1711458243395, "alarm_notifications" : { "bind_notification_rule_id" : "", "notification_enable" : false, "notification_type" : "direct", "notify_frequency" : 0, "notify_resolved" : false, "notify_triggered" : false, "route_group_enable" : false, "route_group_rule" : "" }, "alarm_rule_description" : "", "alarm_rule_enable" : false, "alarm_rule_id" : 1, "alarm_rule_name" : "aom_alarm_rule_1", "alarm_rule_status" : "Invalid", "alarm_rule_type" : "metric", "alarm_update_time" : 0, "enterprise_project_id" : "0", "metric_alarm_spec" : { "alarm_rule_template_bind_enable" : false, "alarm_rule_template_id" : "", "alarm_tags" : [ { "auto_tags" : [ ], "custom_annotations" : [ ], "custom_tags" : [ ] } ], "monitor_objects" : [ ], "monitor_type" : "all_metric", "no_data_conditions" : [ { "no_data_timeframe" : 0, "notify_no_data" : false } ], "recovery_conditions" : { "recovery_timeframe" : 1 }, "trigger_conditions" : [ { "aggregate_type" : "by", "aggregation_type" : "average", "aggregation_window" : "30s", "aom_monitor_level" : "", "cmdb" : { "app_id" : "", "node_ids" : [ ] }, "expression" : "", "metric_labels" : [ ], "metric_name" : "container_memory_rss", "metric_namespace" : "", "metric_query_mode" : "PROM", "metric_statistic_method" : "single", "metric_unit" : "", "mix_promql" : "", "operator" : ">", "promql" : "label_replace(container_memory_rss{node=\"172.**.**.206\"},\"__name__\",\"container_memory_rss\",\"\",\"\") or label_replace(avg_over_time(container_memory_rss{node=\"172.**.**.206\"}[29999ms]),\"__name__\",\"container_memory_rss\",\"\",\"\")", "promql_for" : "1m", "query_match" : "[{\"conditionList\":[{\"name\":\"172.**.**.206\"},{\"name\":\"172.**.**.133\"}],\"addMode\":\"first\",\"conditionValue\":[{\"name\":\"172.**.**.206\"}],\"id\":\"first\",\"conditionCompare\":\"=\",\"dimension\":\"node\"}]", "query_param" : { "apmMetricReg" : "", "code" : "a" }, "thresholds" : { "Critical" : "1" }, "trigger_interval" : "15s", "trigger_times" : 1, "trigger_type" : "FIXED_RATE" } ] }, "prom_instance_id" : "90e***88-1**4-4**9-9**3-1f*******cd3", "user_id" : "2a****56****48****73****1b****cf" } ], "count" : 29, "metadata" : { "alarm_rule_template_id" : [ ], "bind_notification_rule_id" : [ "aom_notification_rule", "1", "00********qq", "00*****3", "m***m" ], "event_source" : [ "CCE", "DCS", "ES", "AOM" ], "prom_instance_id" : [ "0", "796***7d-1**8-4**9-a**0-99*******ca0", "6cc***c8-f**f-4**4-9**2-90*******fcf", "90e***88-1**4-4**9-9**3-1f*******cd3" ], "resource_kind" : [ "HC:DCS:REDIS_3.0", "CCE", "HC:ES:METRICS", "AOM" ] } }
Status code: 500
Internal Server Error: The server is able to receive the request but unable to understand the request.
{ "error_code" : "AOM.02022500", "error_msg" : "internal server error", "error_type" : "INTERNAL_SERVER_ERROR", "trace_id" : "" }
SDK Sample Code
The SDK sample code is as follows.
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.aom.v2.region.AomRegion; import com.huaweicloud.sdk.aom.v2.*; import com.huaweicloud.sdk.aom.v2.model.*; public class ListMetricOrEventAlarmRuleSolution { public static void main(String[] args) { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk); AomClient client = AomClient.newBuilder() .withCredential(auth) .withRegion(AomRegion.valueOf("<YOUR REGION>")) .build(); ListMetricOrEventAlarmRuleRequest request = new ListMetricOrEventAlarmRuleRequest(); request.withName("<name>"); request.withLimit("<limit>"); request.withOffset("<offset>"); request.withSortBy("<sort_by>"); request.withEventSource("<event_source>"); request.withEventSeverity("<event_severity>"); request.withAlarmRuleStatus(ListMetricOrEventAlarmRuleRequest.AlarmRuleStatusEnum.fromValue("<alarm_rule_status>")); request.withAlarmRuleType(ListMetricOrEventAlarmRuleRequest.AlarmRuleTypeEnum.fromValue("<alarm_rule_type>")); request.withPromInstanceId("<prom_instance_id>"); request.withBindNotificationRuleId("<bind_notification_rule_id>"); request.withRelatedCceClusters("<related_cce_clusters>"); try { ListMetricOrEventAlarmRuleResponse response = client.listMetricOrEventAlarmRule(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } |
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# coding: utf-8 import os from huaweicloudsdkcore.auth.credentials import BasicCredentials from huaweicloudsdkaom.v2.region.aom_region import AomRegion from huaweicloudsdkcore.exceptions import exceptions from huaweicloudsdkaom.v2 import * if __name__ == "__main__": # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak = os.environ["CLOUD_SDK_AK"] sk = os.environ["CLOUD_SDK_SK"] credentials = BasicCredentials(ak, sk) client = AomClient.new_builder() \ .with_credentials(credentials) \ .with_region(AomRegion.value_of("<YOUR REGION>")) \ .build() try: request = ListMetricOrEventAlarmRuleRequest() request.name = "<name>" request.limit = "<limit>" request.offset = "<offset>" request.sort_by = "<sort_by>" request.event_source = "<event_source>" request.event_severity = "<event_severity>" request.alarm_rule_status = "<alarm_rule_status>" request.alarm_rule_type = "<alarm_rule_type>" request.prom_instance_id = "<prom_instance_id>" request.bind_notification_rule_id = "<bind_notification_rule_id>" request.related_cce_clusters = "<related_cce_clusters>" response = client.list_metric_or_event_alarm_rule(request) print(response) except exceptions.ClientRequestException as e: print(e.status_code) print(e.request_id) print(e.error_code) print(e.error_msg) |
Go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
package main import ( "fmt" "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" aom "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2" "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2/model" region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/aom/v2/region" ) func main() { // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security. // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment ak := os.Getenv("CLOUD_SDK_AK") sk := os.Getenv("CLOUD_SDK_SK") auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). Build() client := aom.NewAomClient( aom.AomClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.ListMetricOrEventAlarmRuleRequest{} nameRequest:= "<name>" request.Name = &nameRequest limitRequest:= "<limit>" request.Limit = &limitRequest offsetRequest:= "<offset>" request.Offset = &offsetRequest sortByRequest:= "<sort_by>" request.SortBy = &sortByRequest eventSourceRequest:= "<event_source>" request.EventSource = &eventSourceRequest eventSeverityRequest:= "<event_severity>" request.EventSeverity = &eventSeverityRequest alarmRuleStatusRequest:= model.GetListMetricOrEventAlarmRuleRequestAlarmRuleStatusEnum().<ALARM_RULE_STATUS> request.AlarmRuleStatus = &alarmRuleStatusRequest alarmRuleTypeRequest:= model.GetListMetricOrEventAlarmRuleRequestAlarmRuleTypeEnum().<ALARM_RULE_TYPE> request.AlarmRuleType = &alarmRuleTypeRequest promInstanceIdRequest:= "<prom_instance_id>" request.PromInstanceId = &promInstanceIdRequest bindNotificationRuleIdRequest:= "<bind_notification_rule_id>" request.BindNotificationRuleId = &bindNotificationRuleIdRequest relatedCceClustersRequest:= "<related_cce_clusters>" request.RelatedCceClusters = &relatedCceClustersRequest response, err := client.ListMetricOrEventAlarmRule(request) if err == nil { fmt.Printf("%+v\n", response) } else { fmt.Println(err) } } |
More
For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.
Status Codes
Status Code |
Description |
---|---|
200 |
OK: The request is successful. |
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.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot