调用 ImportAppAlertRules 创建应用报警规则。

说明 此报警规则导入接口仅适合于应用监控和前端监控报警规则,包括默认生成的应用监控、前端监控报警规则。不适用于自定义监控报警规则、Prometheus 监控报警规则、默认紧急报警规则等。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
ContactGroupIds String [123, 234]

报警联系人分组 ID,格式为 JsonArrayStr。

Pids String ["atc889zkcf@d8deedfa9bfxxxx", "acd129bfcf@d5daebfa6cdxxxx"]

常见报警规则关联的 ARMS 应用 ID(即 PID),格式为 JsonArrayListStr。

RegionId String cn-hangzhou

应用报警规则关联的应用所属地域的 ID。

TemplateAlertId String 324324234

报警模板 ID。TemplateAlertId 和 TemplageAlertConfig 必须至少填写一个。如果两个参数都填写,则 TemplateAlertId 优先。

IsAutoStart Boolean true

生成报警规则后是否自动启动报警规则。true 表示生成报警规则后启动报警规则,false 表示生成报警规则后不启动报警规则,默认为 false

TemplageAlertConfig String [{"contactGroupIds":"258","alertType":5,"alarmContext":{"subTitle":"","content":"报警名称:$报警名称\n筛选条件: $筛选\n报警时间: $报警时间\n报警内容: $报警内容\n注意:该报警未收到恢复邮件之前,正在持续报警中,24小时后会再次提醒您!"},"alertLevel":"WARN","metricParam":{"appId":"7579","pid":"arms-console:arms-consolehost","type":"TXN","dimensions":[{"type":"DISABLED","key":"rpc"}]},"alertWay":["DING_ROBOT"],"alertRule":{"rules":[{"measure":"appstat.txn.rt","alias":"调用响应时间_ms","aggregates":"AVG","nValue":1,"value":1,"operator":"CURRENT_GTE"}],"operator":"|"},"title":"这是个导入配置报警模板","config":"{\"continuous\":false,\"dataRevision\":2,\"ownerId\":\"1098370038733503\"}","notice":{"noticeStartTime":1480521600000,"startTime":1480521600000,"endTime":1480607940000,"noticeEndTime":1480607940000},"status":"NON"}]

ARMS 报警规则的配置 JSON 串。TemplateAlertId 和 TemplageAlertConfig 必须至少填写一个。如果两个参数都填写,则 TemplateAlertId 优先。关于此字段的详细说明参见关于参数 TemplageAlertConfig 的补充说明

ProxyUserId String 12341234

内部参数

关于参数 TemplageAlertConfig 的补充说明

首先,在 ARMS 控制台的报警管理 > 报警策略管理页面,创建一个应用监控报警作为模板。然后在报警规则页签上选择此报警模板,并单击左下角的批量导出报警,即可生成报警模板 JSON 串。


[
  {

    "contactGroupIds": "381",                         // 报警通知发送的联系人分组 ID,以“,”分隔。报警模板中忽略,导入时会映射对应值。
    "alertType": 5,                                   // 目前支持4 为前端监控报警,5 为应用监控报警。
    "alarmContext": {                                 // 报警通知内容模板。
      "subTitle": "",
      "content": "报警名称:$报警名称\n筛选条件: $筛选\n报警时间: $报警时间\n报警内容: $报警内容\n注意:该报警未收到恢复邮件之前,正在持续报警中,24小时后会再次提醒您!"
    },
    "alertLevel": "WARN",                             // 报警等级:FATAL、ERROR、WARN。
    "metricParam": {
      "appId": "70901",                               // 报警关联的应用 appId。模板报警配置中可随意填写,导入时会映射对应值。
      "pid": "atc889zkcf@d8deedfa9bf1520",            // 报警关联的应用 pid。模板报警配置中可随意填写,导入时会映射对应值。
      "type": "TXN",                                  // 报警指标类型,详见下一节。
      "dimensions": [                                 // 报警关联的维度,详见下一节。
        {
          "type": "STATIC",
          "value": "\/hello_test_api_address\/test1",
          "key": "rpc"
        }
      ]
    },
    "alertWay": [                                       // 报警发送通知方式:SMS(开启短信)、MAIL(开启邮件通知)、DING_ROBOT(开启钉钉机器人通知)。
      "SMS",
      "MAIL",
      "DING_ROBOT"
    ],
    "alertRule": {
      "rules": [                                          // 报警判断规则列表
        {
          "measure": "appstat.txn.rt",                    // 报警规则请求指标,详见下一节。
          "alias": "入口调用响应时间_ms",                   // 报警规则请求指标展示字段,报警模板无需填此字段。
          "aggregates": "AVG",                            // 数据请求后聚合算子。AVG 为取平均,SUM 为取和,MIN 为取最小值,MAX 为取最大值。
          "nValue": 1,                                    // 报警规则每分钟轮询请求几分钟的数据。
          "value": 1,                                     // 报警规则判断阈值。
          "operator": "CURRENT_GTE"                       // CURRENT_GTE:大于等于;CURRENT_LTE:小于等于;PREVIOUS_UP:环比上升;PREVIOUS_DOWN:环比下降;HOH_UP:与上小时同比上升;HOH_DOWN:与上小时同比下降;DOD_UP:与昨日同比上升 %;DOD_DOWN:与昨日同比下降 %。
        }
      ],
      "operator": "&"                                     // 表示多个判断条件的组合方式。& 为与逻辑,| 为或逻辑。
    },
    "title": "报警模板报警名",                              // 模板报警名称。导入后,会生成“{title}-对应用名”作为新报警名称。
    "config": "{\"continuous\":false,\"dataRevision\":2,\"ownerId\":\”123412341234\"}",          // continuous 为 true 表示连续报警,continuous 为 false 表示以 24 小时为静默期的静默报警策略。dataRevision 字段为数据修订策略,0 为补零、1 为补1、2 为空值不处理。
    "notice": {                                                                                  // unix timstamp ms 时间戳,noticeStartTime 与 noticeEndTime 时间戳代表通知时间范围,startTime 与 endTime 代表报警生效时间范围,timestamp 转换为时间戳代表当天时间点,如 1565964097071 对应 2019-08-16 22:01:37,代表 22:01:37 时间点。
      "noticeStartTime": 1480521600000,
      "startTime": 1480521600000,
      "endTime": 1480607940000,
      "noticeEndTime": 1480607940000
    },
    "status": "NON”                                        // 报警当前启动装填。报警模板中忽略此字段,导入时会映射对应值。
  }
]

每个报警属于一个类型,由 metricParam.type 字段控制。每类报警都能设置一种维度(Dimension)作为筛选条件。每类报警都可以配置多个报警规则(alertRule),每个 alertRule 可以配置多个属于此 type 类型的数据请求指标进行计算。

Dimensions.type 有三种选项:

  • STATIC: 固定匹配此维度值需要填 dimensions.value。
  • ALL:遍历所有维度值,如此接口所有接口名的指标依次判断,哪个接口触发阈值引起报警,会在报警内容中体现接口名,此时不需要填 dimensions.value。
  • DISABLE:聚合所有维度值为一个值(求和),此时不需要填 dimensions.value。

报警类型 metricParam.type

此类报警维度 dimensions.key

此类报警数据请求指标 alertRule.rules.measure

TXN(应用监控入口调用量)

rpc(接口名称)

appstat.txn.rt(入口调用响应时间_ms)、appstat.txn.count(入口调用次数)、appstat.txn.errcount(入口调用错误次数)

TXN_TYPE(应用监控调用类型统计)

rpcType(接口调用类型)(如HTTP、DUBBO)

appstat.inbound.rt(应用提供服务调用响应时间_ms)、appstat.inbound.count(应用提供服务调用次数)、appstat.inbound.error(应用提供服务调用错误数)、appstat.outbound.rt(应用依赖服务调用响应时间_ms)、appstat.outbound.count(应用依赖服务调用次数)、appstat.outbound.error(应用依赖服务调用错误数)

DB(数据库指标)

endpoint(数据库名称)

appstat.database.rt(数据库调用响应时间_ms)、appstat.database.count(数据库调用次数)、appstat.database.errcount(数据库调用错误次数)

JVM(JVM 监控)

rootIp(机器 IP)

appstat.jvm.heap_used(JVM 堆内总内存量_byte)、appstat.jvm.GcPsScavengeCount(JVM 垃圾回收次数)、appstat.jvm.GcPsMarkSweepCount(JVM 标记清除次数)、appstat.jvm.GcG1OldGenCount(JVM_Old 区 G1GC 次数)、appstat.jvm.GcG1YoungGenCount(JVM_Young 区 G1GC 次数)、appstat.jvm.gc.YoungGcCountInstant(JVM_YoungGC 次数)、appstat.jvm.gc.OldGcCountInstant(JVM_FullGC 次数)、appstat.jvm.gc.YoungGcTimeInstant(JVM_YoungGC 耗时_ms)、appstat.jvm.gc.OldGcTimeInstant(JVM_FullGC 耗时_ms)、appstat.jvm.ThreadCount(JVM_线程总数)、appstat.jvm.non_heap_used(JVM 非堆总使用内存量_byte)、appstat.jvm.non_heap_max(JVM 非堆内存最大值_byte)、appstat.jvm.non_heap_init(JVM 非堆内存初始值_byte)、appstat.jvm.non_heap_committed(JVM 非堆内存提交值_byte)

HOST(主机监控)

rootIp(机器 IP)

appstat.jvm.SystemCpuUser(节点机用户使用 CPU_百分比)、appstat.jvm.SystemMemFree(节点机空闲内存_byte)、appstat.jvm.SystemDiskFree(节点机空闲磁盘_byte)、appstat.jvm.SystemNetInErrs(节点机接收错误报文数)、appstat.jvm.SystemNetOutErrs(节点机发送错误报文数)、appstat.jvm.SystemLoad(节点机系统负载)

EXCPTION(异常接口调用)

rpc(接口名称)

appstat.exception.rt(应用异常接口调用响应时间_ms)、appstat.exception.count(应用异常接口调用次数)

返回数据

名称 类型 示例值 描述
RequestId String A5EC8221-08F2-4C95-9AF1-49FD998Cxxxx

请求 ID

Data String 399363

返回值

示例

请求示例

http(s)://[Endpoint]/?ContactGroupIds=1234
&Pids=["xxx@xxxxxx", "xxx@xxxxxx2"]
&RegionId=cn-hangzhou
&TemplateAlertId=324324234
&<公共请求参数>

正常返回示例

XML 格式

<Data>[1217430]</Data>
<RequestId>9CF78EE0-90E2-4BC3-AA95-227378F913AC</RequestId>

JSON 格式

{
  "Data": "[1217430]",
  "RequestId": "9CF78EE0-90E2-4BC3-AA95-227378F913AC"
}

错误码

访问错误中心查看更多错误码。