使用异常值检测 API

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

您用于创建和管理异常值提醒以及收集异常值指标的大多数 API 与您用于已更正提醒的 API 相同。对于已更正提醒和异常值提醒,以下提醒 API 的工作原理相同:

但是,一些 API 具有用于支持异常值提醒的其他属性,包括:

  • 接收提醒 - 列出所有提醒,包括已修正提醒和异常提醒。
  • 创建提醒 - 创建已修正或异常的提醒。
  • 更新提醒 - 更新已修正或异常的提醒定义。

设置 $ACCESS_TOKEN

下方显示的所有 API 调用都将您的凭据传递到名为 $ACCESS_TOKEN 的环境变量中。按照获取 OAuth 2.0 访问令牌中的说明,将 $ACCESS_TOKEN 设置为您的 OAuth 2.0 访问令牌。如需了解这些示例中使用的 cURL 选项,请参阅使用 cURL

获取提醒

默认情况下,获取提醒 API 会返回有关所有已定义提醒的信息。此 API 现在接受查询参数,可用于过滤结果:

  • enabled - 如果 true 指定仅返回已启用的提醒。默认值为 false
  • alertType - 指定要返回的提醒类型。允许的值为 runtime,默认值为 cert
  • alertSubType - 指定要返回的提醒子类型。未设置默认值,表示返回所有提醒子类型。指定 anomaly 以返回异常值提醒。

例如,使用以下 API 调用仅返回名为 myorg 的组织的已启用提醒:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg&enabled=true'

以下调用仅返回异常值提醒,包括已启用和已停用的提醒:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg&alertType=runtime&alertSubType=anomaly'

创建或更新异常值提醒

使用相同的 API 创建更新异常值提醒,如同当前针对已更正提醒执行的操作那样。用于创建或更新异常值提醒的 API 调用正文与已更正提醒所用的正文相同,但进行了以下更改:

  • 您必须添加以下新属性才能指定提醒属于异常值提醒:

    "alertType": "runtime"
    "alertSubType": "anomaly"

    这些属性的默认值为:

    "alertType": "runtime"
    "alertSubType": "fixed"
  • conditions 数组中:

    • metrics 属性仅接受以下值:

      • count - 引发 HTTP 错误计数提醒。
      • totalLatency - 引发延迟时间提醒。
    • threshold 属性接受字符串而不是数字。支持的值包括:slightmoderatesevere
    • 不支持 durationSecondscomparator 属性。
  • conditions 数组的 dimensions 元素中:

    • 您必须将 proxy 属性的值设置为 ALL
    • statusCode 属性仅支持 4xx, 503, 504, and 5xx 的值。
    • 不支持 developerAppcollectionfaultCodeCategoryfaultCodeSubCategoryfaultCodeName 属性。
  • 异常值提醒不支持 reportEnabled 属性。

以下示例 API 调用创建了一个异常值提醒,当对于任何地区的生产环境中的所有 API 代理,以适中速率出现 5xx 状态代码时,就会触发此异常值提醒。触发该提醒时,系统会向指定的电子邮件地址发送通知:

curl 'https://apimonitoring.enterprise.apigee.com/alerts' \
 -X POST \
 -H 'Accept: application/json, text/plain, */*' -H "Content-Type: application/json" \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -d '{
     "organization":"myorg",
     "name":"5xx Anomaly Alert",
     "description":"My 5xx alert",
     "environment":"prod",
     "enabled":true,
     "alertType": "runtime",
     "alertSubType": "anomaly",
     "conditions":[
     {
        "description":"",
        "dimensions":{
            "org":"myorg",
            "env":"prod",
            "proxy":"ALL",
            "region":"ANY",
            "statusCode":"5xx"
        },
        "metric":"count",
        "threshold": "moderate"
     }
     ],
     "notifications":[{
         "channel":"email",
         "destination":"ops@acme.com"
     }],
     "playbook":"http://acme.com/myplaybook.html",
     "throttleIntervalSeconds":3600
    }'

将事件 API 与异常值搭配使用

使用 /metrics/events API 获取组织中指定时间间隔的所有事件。事件列表包括 Edge 检测到的异常值以及任何触发的提醒。提醒可以包括已更正提醒和异常值提醒。

默认情况下,该 API 会返回过去一小时的所有事件。使用 fromto 查询参数指定不同的时长。fromto 查询参数值可供指定不同的时长。

例如,以下 API 调用会返回组织 myorg 中过去 12 小时的所有事件:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://apimonitoring.enterprise.apigee.com/metrics/events?org=myorg&from=-12h&to=now"

按照获取 OAuth 2.0 访问令牌中的说明,将 $ACCESS_TOKEN 设置为您的 OAuth 2.0 访问令牌。如需了解此示例中使用的 cURL 选项,请参阅使用 cURL

下一次调用将返回过去 24 小时内具有适中阈值的所有异常值事件:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://apimonitoring.enterprise.apigee.com/metrics/events?org=myorg&type=anomaly&threshold=moderate&from=-24h&to=now"

此 API 仅需要 org 查询参数。除了 /metrics/events 的 API 文档中描述的查询参数之外,此 API 还支持以下选项,以支持异常值检测:

名称 说明 默认
threshold

按指定的阈值过滤事件:slightmoderatesevere

只当您设置了 type=anomaly 时才允许。

所有严重程度
type 按指定类型过滤事件:alertanomaly。以逗号分隔列表的形式指定多个值。 所有类型