Querying Metric or Event Alarm Rules
Function
This API is used to query 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.
Action
Access Level
Resource Type (*: required)
Condition Key
Alias
Dependencies
aom:alarmRule:list
List
-
-
-
-
URI
GET /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. |
|
Parameter |
Mandatory |
Type |
Description |
|---|---|---|---|
|
name |
No |
String |
Alarm rule name. |
|
limit |
No |
String |
Number of records that can be returned. |
|
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. For details, see Obtaining a Token. |
|
Content-Type |
No |
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.
|
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. For details, see Obtaining an 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 |
(Deprecated) Whether to bind an alarm rule template. |
|
alarm_rule_template_id |
String |
(Deprecated) ID of the alarm rule template. |
|
Parameter |
Type |
Description |
|---|---|---|
|
no_data_timeframe |
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 |
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.)
Enumeration values:
|
|
notify_no_data |
Boolean |
Whether to take action when no data is reported. true: Enable the function. false: Disable the function. |
|
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. Value range: 1–3. (If recovery_timeframe is specified, this parameter is mandatory.) |
|
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 |
Integer |
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. Options:
|
|
cmdb |
CmdbInfo object |
CMDB information. |
|
query_match |
String |
Query filter criteria. |
|
query_param |
Object |
Query parameter. |
|
aom_monitor_level |
String |
Monitoring layer. |
|
aggregate_type |
String |
Aggregation method.
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 |
(Deprecated) Whether to bind an alarm rule template. |
|
alarm_rule_template_id |
String |
(Deprecated) ID of the alarm rule template. |
|
Parameter |
Type |
Description |
|---|---|---|
|
event_name |
String |
Event name. |
|
trigger_type |
String |
Trigger mode.
Enumeration values:
|
|
aggregation_window |
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 |
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 |
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 |
String |
Event alarm notification frequency. If trigger_type is set to immediately, the value of this parameter is -1.
|
|
Parameter |
Type |
Description |
|---|---|---|
|
notification_type |
String |
Notification type.
Enumeration values:
|
|
route_group_enable |
Boolean |
Whether to enable the alarm grouping rule.
If both notify_triggered and notify_resolved are set to false, route_group_enable must be set to false. Enumeration values:
|
|
route_group_rule |
String |
Alarm grouping rule name.
|
|
notification_enable |
Boolean |
Whether to enable the alarm notification rule.
If both notify_triggered and notify_resolved are set to false, notification_enable must be set to false. |
|
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. |
|
error_msg |
String |
Error message. |
|
error_type |
String |
Error type. |
|
trace_id |
String |
Request ID. |
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 |
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"); String projectId = "{project_id}"; ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); AomClient client = AomClient.newBuilder() .withCredential(auth) .withRegion(AomRegion.valueOf("<YOUR REGION>")) .build(); ListMetricOrEventAlarmRuleRequest request = new ListMetricOrEventAlarmRuleRequest(); 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 |
# 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"] projectId = "{project_id}" credentials = BasicCredentials(ak, sk, projectId) client = AomClient.new_builder() \ .with_credentials(credentials) \ .with_region(AomRegion.value_of("<YOUR REGION>")) \ .build() try: request = ListMetricOrEventAlarmRuleRequest() 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 |
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") projectId := "{project_id}" auth := basic.NewCredentialsBuilder(). WithAk(ak). WithSk(sk). WithProjectId(projectId). Build() client := aom.NewAomClient( aom.AomClientBuilder(). WithRegion(region.ValueOf("<YOUR REGION>")). WithCredential(auth). Build()) request := &model.ListMetricOrEventAlarmRuleRequest{} 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