设置提醒和通知

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

提醒条件定义特定的状态代码(例如 404/502/2xx/4xx/5xx)、延迟时间和故障代码阈值;一旦超出该阈值,界面就会触发视觉提醒,并通过各种渠道(例如电子邮件、Slack、PagerDuty 或网络钩子)发送通知。您可以在环境、API 代理、目标服务或地区级别设置提醒。提醒触发后,您将通过在添加提醒和通知时定义的方法接收通知。

例如,对于部署在生产环境中的订单生产 API 代理,当 5xx 错误率持续 5 分钟超过 23% 时,您可能需要触发提醒并向运维团队发送通知。

下图显示了提醒在界面中的显示方式:

下文提供了触发提醒时您可能会收到的电子邮件通知示例。

在提醒通知的正文中,点击以下链接了解详情:

  • 查看详细信息,查看更多详情,包括提醒设置以及过去一小时内各个条件的活动。
  • 提醒定义,查看提醒的定义。
  • 提醒历史记录,查看有关特定提醒的详细信息。
  • 查看手册,查看建议的操作(如果提供)。
  • 查看 API 分析报告,查看提醒条件的自定义报告。

以下各部分介绍了如何设置和管理提醒和通知。

关于提醒类型

使用 API Monitoring 的初始版本,您可以创建基于模式的规则,这些规则指定何时根据一组预定义的条件发出提醒。这些类型的提醒称为“固定”提醒,是 API Monitoring 初始版本支持的唯一一种提醒类型。

例如,您可以在以下情况下发出固定提醒:

  • [目标 mytarget1] 的 [5xx 的错误率] [大于] [10%] 且持续 [10 分钟]
  • [地区 us-east-1] 的 [ 2xx 错误的计数 ] [小于] [50] 且持续 [5 分钟]
  • [代理 myproxy1] 的 [p90 延迟时间] [大于] [750ms] 且持续 [10 分钟]

19.11.13 安全报告 Beta 版增加了新的提醒类型:

  • 总流量(Beta 版)提醒。 一种提醒类型,允许您在流量在某个时间范围内的变化幅度达到指定百分比时发出提醒。
  • 异常(Beta 版)提醒。 一种提醒类型,Edge 会检测流量和性能问题,您无需自行确定这些问题。然后,您可以就这些异常值发出提醒。
  • TLS 到期(Beta 版)提醒。一种提醒类型,允许您在 TLS 证书快要过期时发出通知。

由于 API Monitoring 现在支持多种类型的提醒,因此“创建提醒”对话框现在显示了用于选择提醒类型的选项:

“创建提醒”对话框现在包含多个提醒类型

查看提醒设置

如需查看当前定义的提醒设置,请在 Edge 界面中点击分析 > 提醒规则

此时会显示“提醒”页面,如下图所示:

提醒电子邮件

如图中所示,您可以通过“提醒”页面执行以下操作:

查看已为贵组织触发的提醒的历史记录

如需查看过去 24 小时内为贵组织触发的提醒的历史记录,请点击 Edge 界面中的分析 > 提醒规则,然后点击历史记录标签页。

此时会显示“提醒历史记录”页面。

提醒历史记录

点击提醒的名称可在调查信息中心中查看提醒的详细信息。您可以通过搜索整个或部分提醒名称来过滤列表。

添加提醒和通知

另请参阅建议的提醒

如需添加提醒和通知,请执行以下操作:

  1. 在 Edge 界面中,依次点击分析 > 提醒规则
  2. 点击 +提醒
  3. 输入以下有关提醒的常规信息:
    字段 说明
    提醒名称 提醒的名称。使用能描述触发器且对您有意义的名称。该名称不能超过 128 个字符。
    提醒类型 选择固定。如需详细了解提醒类型,请参阅关于提醒类型
    说明 提醒的说明。
    环境 从下拉列表中选择环境。
    状态 切换以启用或停用提醒。
  4. 定义将触发提醒的第一个条件的指标、阈值和维度。
    条件字段 说明
    指标

    选择以下指标之一:

    • 状态代码:从列表中选择一个状态代码,例如 401、404、2xx、4xx 或 5xx HTTP。

      注意

      • 通过该 API,您可以设置更广泛的状态代码。使用 API 指定 200-299、400-599 之间的状态代码以及 2xx、4xx 或 5xx 的通配符值。请参阅创建提醒
      • 对于速率限制提醒(HTTP 状态代码 429),请将指标设置为 Spike Arrest 故障代码。
      • 您可以使用 AssignMessage 政策重写来自代理错误或目标错误的 HTTP 响应代码。API Monitoring 会忽略任何重写的代码,并记录实际的 HTTP 响应代码。
    • 延迟时间:从下拉列表中选择延迟时间值。 具体而言:p50(第 50 百分位)、p90(第 90 百分位)、p95(第 95 百分位)或 p99(第99 百分位)。例如,选择 p95 可设置一个提醒,当第 95 百分位的响应延迟时间大于您在下面设置的阈值时触发。
    • 故障代码:从列表中选择类别、子类别和故障代码。或者,在类别或子类别中选择以下项之一:

      • 全部 - 此类别/子类别中所有故障代码的总和必须满足指标标准。
      • 任何 - 此类别/子类别中的单个故障代码必须满足指标标准。

      如需了解详情,请参阅故障代码参考

    • 总流量(Beta 版):选择增加或减少流量。 如需了解详情,请参阅流量(Beta 版)提醒

    阈值

    为所选指标配置阈值:

    • 状态代码:将阈值设置为一段时间内的速率、计数或每秒事务数 (TPS)。
    • 延迟时间:选择阈值作为一段时间内的总或目标延迟时间(以毫秒为单位)。在这种情况下,如果指定的百分位观察到的延迟时间(如果存在流量,每分钟都会更新)超过某一指定时长的阈值,则会触发提醒。也就是说,阈值条件不会在整个持续时间内聚合。
    • 故障代码:将阈值设置为一段时间内的速率、计数或每秒事务数 (TPS)。
    维度 点击 +添加维度并指定维度详细信息,以返回 API 代理、目标服务或开发者应用以及地区等结果。

    如果将特定维度设为:

    • 全部 - 维度中的所有实体必须符合指标条件。 您不能选择全部指标作为延迟时间类型的指标。
    • 任何 - 仅适用于地区。维度中的实体必须满足任何单地区的指标标准。
      注意:对于 API 代理或目标服务,请选择“集合”以支持“任何功能”。
    • 集合 - 从列表中选择集合以指定一组 API 代理或目标服务。在本例中,集合中的所有实体都必须满足标准。

    如果您将维度设置为目标,则可以选择目标服务或由 ServiceCallout 政策指定的服务。ServiceCallout 政策的目标显示为带有“sc://”前缀的值。例如“sc://my.endpoint.net”。

  5. 点击显示条件数据,以显示前一小时内关于条件的数据。
    当错误率超过提醒条件阈值时,它在图表中就会显示为红色。
    显示条件数据

    点击隐藏条件数据以隐藏数据。

  6. 点击 + 添加条件以添加其他条件,然后重复第 4 步和第 5 步。

    注意:如果指定多个条件,则当所有条件都得到满足时,就会触发提醒。

  7. 如果要根据配置的提醒条件创建自定义报告,请点击根据提醒条件创建一个 API 分析报告。如果您不是组织管理员,则此选项会灰显。

    有关详情,请参阅通过提醒创建自定义报告

    注意:您可以在保存提醒后修改自定义报告,如管理自定义报告中所述。

  8. 点击 + 通知 即可添加提醒通知。
    通知详情 说明
    Channel 选择要使用的通知渠道并指定目标位置:Email、Slack、PagerDuty 或网络钩子。
    目标 根据选定的渠道类型指定目的位置:
    • 电子邮件 - 电子邮件地址,例如 joe@company.com
    • Slack - Slack 频道网址,例如 https://hooks.slack.com/services/T00000000/B00000000/XXXXX
    • PagerDuty - PagerDuty 代码,例如 abcd1234efgh56789
    • 网络钩子 - 网址,例如 https://apigee.com/test-webhook。如需了解发送到网址的对象,请参阅网络钩子对象格式

      在网络钩子网址中传递任何凭据信息。例如:https://apigee.com/test-webhook?auth_token=1234_abcd

      您可以指定一个端点的网址,该端点可解析网络钩子对象以对其进行修改或处理的。例如,您可以指定某个 API 的网址(例如 Edge API),或能够处理该对象的任何其他端点的网址。

      注意:您只能为每条通知指定一个目的地。要为同一渠道类型指定多个目的位置,请添加其他通知。

  9. 要添加其他通知,请重复第 8 步。
  10. 如果您添加了通知,请设置以下字段:
    字段 说明
    Playbook (可选)自由格式文本字段,提供提醒触发时如何进行解决的简短操作建议。您还可以指定指向内部 Wiki 或社区页面的链接,并在其中引用最佳做法。此字段中的信息将包含在通知中。此字段中的内容不能超过 1500 个字符。
    Throttle 发送通知的频率。从下拉列表中选择一个值。有效值包括:15 分钟、30 分钟和 1 小时。
  11. 点击保存

网络钩子对象格式

如果您将某个 Webhook 网址指定为提醒通知的目标,则发送到该网址的对象将采用以下格式:
{
  "alertInstanceId": "event-id",
  "alertName": "name",
  "org": "org-name",
  "description": "alert-description",
  "alertId": "alert-id",
  "alertTime": "alert-timestamp",
  "thresholdViolations":{"Count0": "Duration=threshold-duration Region=region Status Code=2xx Proxy=proxy Violation=violation-description"
  },
  "thresholdViolationsFormatted": [
    {
      "metric": "count",
      "duration": "threshold-duration",
      "proxy": "proxy",
      "region": "region",
      "statusCode": "2xx",
      "violation": "violation-description"
    }
  ],
  "playbook": "playbook-link"
}

thresholdViolationsthresholdViolationsFormatted 属性包含有关提醒的详细信息。thresholdViolations 属性包含单个带有详细信息的字符串,而 thresholdViolationsFormatted 则包含一个描述提醒的对象。通常,使用 thresholdViolationsFormatted 属性是因为解码更简单。

上面的示例显示了当您将提醒指标配置为基于 HTTP 2xx 状态代码(如 statusCode 所示)触发时,固定提醒的这些属性的内容。

这些属性的内容取决于提醒的类型,比如固定或异常,以及提醒的特定配置。例如,如果基于故障代码创建固定提醒,则 thresholdViolationsFormatted 属性会包含 faultCode 属性,而不是 statusCode 属性。

下表显示了不同提醒类型的 thresholdViolationsFormatted 属性的所有可能属性:

提醒类型 可能的 thresholdViolationsFormated 内容
修复
metric, proxy, target, developerApp,
region, statusCode, faultCodeCategory, faultCodeSubCategory,
faultCode, percentile, comparisonType, thresholdValue,
triggerValue, duration, violation
总流量
metric, proxy, target, developerApp,
region, comparisonType, thresholdValue, triggerValue,
duration, violation
异常
metric, proxy, target, region,
statusCode, faultCode, percentile, sensitivity,
violation
TLS 到期
envName, certificateName, thresholdValue, violation

根据提醒创建自定义报告

如需根据提醒创建自定义报告,请执行以下操作:

  1. 创建提醒时,请点击根据提醒条件创建 API 分析报告,如添加提醒和通知中所述。

    保存提醒后,界面会显示以下消息:

    Alert alertName saved successfully. To customize the report generated, click here.

    点击该消息,在新标签页中打开报告,相关字段已预先填充。默认情况下,自定义报告的名称为:API Monitoring Generated alertName

  2. 根据需要编辑自定义报告,然后点击保存
  3. 在列表中点击报告的名称,然后运行自定义报告

如需管理基于提醒条件创建的自定义报告,请执行以下操作:

  1. 在 Edge 界面中点击分析 > 提醒规则
  2. 点击设置标签。
  3. 在“报告”列中,点击与要管理的提醒相关联的自定义报告。

    自定义报告页面显示在新标签中。如果“报告”列为空,则表示尚未创建自定义报告。如果需要,您可以修改提醒以添加自定义报告。

  4. 根据需要编辑自定义报告,然后点击保存
  5. 在列表中点击报告的名称,然后运行自定义报告

启用或停用提醒

如需启用或停用提醒,请执行以下操作:

  1. 在 Edge 界面中点击分析 > 提醒规则
  2. 点击与您要启用或停用的提醒关联的“状态”列中的切换开关。

修改提醒

如需修改提醒,请执行以下操作:

  1. 在 Edge 界面中点击分析 > 提醒规则
  2. 点击要修改的提醒的名称。
  3. 根据需要修改提醒。
  4. 点击保存

删除提醒

如需删除提醒,请执行以下操作:

  1. 在 Edge 界面中点击分析 > 提醒规则
  2. 将光标悬停在要删除的提醒上方,然后点击“操作”菜单中的

Apigee 建议您设置以下提醒,以便在出现常见问题时收到通知。 其中一些提醒特定于 API 的实现情况,并且仅在特定情况下有用。例如,下面显示的几条提醒仅适用于您使用 ServiceCallout 政策JavaCallout 政策时。

提醒 界面示例 API 示例
所有/任何 API 的 5xx 状态代码 为 API 代理设置 5xx 状态代码提醒 使用 API 为 API 代理设置 5xx 状态代码提醒
API 代理的 P95 延迟时间 为 API 代理设置 P95 延迟时间提醒 使用 API 为 API 代理设置 P95 延迟时间提醒
所有 API 代理的 404(找不到应用)状态代码 为所有 API 代理设置 404(找不到应用)状态代码提醒 使用 API 为所有 API 代理设置 404(找不到应用)状态代码提醒
API 的 API 代理计数 为 API 设置 API 代理计数提醒 使用 API 为 API 设置 API 代理计数提醒
目标服务的错误率 设置目标服务的错误率提醒 使用 API 为目标服务设置错误率提醒
ServiceCallout 政策的错误率(如果适用) 为 ServiceCallout 政策设置错误率提醒 使用 API 为 ServiceCallout 政策设置错误率提醒
特定的故障代码,包括:
  • API 协议错误(通常为 4xx)
    • 界面:API 协议 > 全部
    • API:
      "faultCodeCategory":"API Protocol",
      "faultCodeSubCategory":"ALL"
  • 无限别名 HTTP 错误
    • 界面:网关 > 其他 > 网关 HTTPErrorResponseCode
    • API:
      "faultCodeCategory": "Gateway",
      "faultCodeSubCategory": "Others",
      "faultCodeName": "Gateway HTTPErrorResponseCode"
  • Java 服务调出执行错误(如果适用)
    • 界面:执行政策 > JavaCallout > JavaCallout ExecutionFailed
    • API:
      "faultCodeCategory": "Execution Policy",
      "faultCodeSubCategory": "Java Callout",
      "faultCodeName": "JavaCallout ExecutionFailed"
  • 节点脚本执行错误(如果适用)
    • 界面:执行政策 > Node 脚本 > NodeScript ExecutionError
    • API:
      "faultCodeCategory": "Execution Policy",
      "faultCodeSubCategory": "Node Script",
      "faultCodeName": "NodeScript ExecutionError"
  • 配额违规
    • 界面:流量管理政策 > 配额 > 配额违规
    • API:
      "faultCodeCategory": "Traffic Mgmt Policy",
      "faultCodeSubCategory": "Quota",
      "faultCodeName": "Quota Violation"
  • 安全政策错误
    • 界面:安全政策 > 任何
    • API:
      "faultCodeCategory": "Security Policy",
      "faultCodeName": "Any"
  • Sense 错误(如果适用)
    • 界面:Sense > Sense > Sense RiseFault
    • API:
      "faultCodeCategory": "Sense",
      "faultCodeSubCategory": "Sense",
      "faultCodeName": "Sense RaiseFault"
  • 服务调出执行错误(如果适用)
    • 界面:执行政策 > 服务调用 > ServiceCallout ExecutionFailed
    • API:
      "faultCodeCategory": "Execution Policy",
      "faultCodeSubCategory": "Service Callout",
      "faultCodeName": "ServiceCallout ExecutionFailed"
  • 目标错误
    • 界面:网关 > 目标 > 网关 TimeoutWithTargetOrCallout
    • API:
      "faultCodeCategory": "Gateway",
      "faultCodeSubCategory": "Target",
      "faultCodeName": "Gateway TimeoutWithTargetOrCallout"
  • 目标错误,无活动目标
    • 界面:网关 > 目标 > 网关 TargetServerConfiguredInLoadBalancersIsDown
    • API:
      "faultCodeCategory": "Gateway",
      "faultCodeSubCategory": "Target",
      "faultCodeName": "Gateway TargetServerConfiguredInLoadBalancerIsDown
  • 目标错误,意外 EOF
    • 界面:网关 > 目标 > 网关 ExpectedEOFAtTarget
    • API:
      "faultCodeCategory": "Gateway", "faultCodeSubCategory": "Target", "faultCodeName" : "Gateway UnexpectedEOFAtTarget"
  • 虚拟主机错误
    • 界面:网关 > 虚拟主机 > VirtualHost InvalidKeystoreOrTrustStore
    • API:
      "faultCodeCategory": "Gateway",
      "faultCodeSubCategory": "Virtual Host",
      "faultCodeName": "VirtualHost InvalidKeystoreOrTrustStore"
设置政策故障代码提醒 使用 API 设置政策故障代码提醒

为 API 代理设置 5xx 状态代码提醒

下面提供了一个示例,说明如何使用界面设置提醒,对于任何地区,当酒店 API 代理 5xx 状态代码的每秒事务数 (TPS) 超过 100 且持续 10 分钟时,就会触发该提醒。如需了解详情,请参阅添加提醒和通知

如需了解如何使用该 API,请参阅使用 API 为代理设置 5xx 状态代码提醒

为 API 代理设置 P95 延迟时间提醒

下面提供了一个示例,说明如何使用界面设置提醒,对于任何地区,当酒店 API 代理第 95 百分位的总响应延迟时间超过 100 毫秒且持续 5 分钟时,就会触发该提醒。如需了解详情,请参阅添加提醒和通知

如需了解如何使用 API,请参阅使用 API 为 API 代理设置 P95 延迟时间提醒

为所有 API 代理设置 404(找不到应用)提醒

下面提供了一个示例,说明如何使用界面设置提醒,对于任何地区,当所有 API 代理的 404 状态代码百分比超过 5% 且持续 5 分钟时,就会触发该提醒。如需了解详情,请参阅添加提醒和通知

如需了解如何使用 API,请参阅使用 API 为所有 API 代理设置 404(找不到应用)提醒

为 API 设置 API 代理计数提醒

下面提供了一个示例,说明如何使用界面设置提醒,对于任何地区,当 API 5xx 代码计数超过 200 且持续 5 分钟时,就会触发该提醒。在此示例中,API 被捕获到“关键 API 代理”集合中。如需了解详情,请参阅以下主题:

如需了解如何使用 API,请参阅使用 API 为 API 设置 API 代理计数提醒

设置目标服务的错误率提醒

下面提供了一个示例,说明如何使用界面设置提醒,对于任何地区,当目标服务的 500 代码速率超过 10%且持续 1 小时时,则触发该提醒。在此示例中,目标服务被捕获到“关键目标”集合中。如需了解详情,请参阅以下主题:

如需了解如何使用 API,请参阅使用 API 设置目标服务的错误率提醒

为 ServiceCallout 政策设置错误率提醒

下面提供了一个示例,说明如何使用界面设置提醒,对于任何地区,当由 ServiceCallout 政策指定的服务的 500 代码速率超过 10%且持续 1 小时时,则触发该提醒。如需了解详情,请参阅以下主题:

如需了解如何使用 API,请参阅使用 API 为服务调出政策设置错误率提醒

设置政策故障代码提醒

下面提供了一个示例,说明如何使用界面设置提醒,对于所有 API当 VerifyJWT 政策JWT AlgorithmMismatch 故障代码计数大于 5 且持续 10 分钟,就会触发该提醒。如需了解详情,请参阅以下主题:

如需了解如何使用 API,请参阅使用 API 为政策故障代码设置故障代码提醒