逐步演示示例场景

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

通过一个示例场景逐步说明,了解如何排查 API 的 5xx 问题。

# 步骤 说明
1 监控近期 API 流量 查看在过去一小时内产生了流量的所有 API 代理和目标的近期 API 监控数据。深入了解错误率较高的 API 代理或目标。
2 确定 API 监控数据中的趋势 访问过去 3 个月的 API 监控数据的历史视图,以便更全面地了解相关信息。
3 调查 5xx 问题 查看一段时间内相对数量最多的故障代码,以进一步调查 5xx 问题的来源。(通常,5xx 状态代码可以使用一个或多个错误代码进行分类。)
4 设置 5xx 提醒 设置提醒,以便在 5xx 状态代码的数量超过特定阈值时收到通知。
5 生成包含客户详细信息的自定义报告(可选) (可选)生成自定义报告,以标识触发 5xx 错误的客户端的详细信息。

注意:您必须是组织管理员才能生成自定义报告。

6 将 API 代理划分到一个集合中 创建一个集合来对 API 代理进行分组,并为该群组的所有成员设置适当的提醒阈值,以更快地诊断问题。

7 解决 5xx 问题 根据您的调查和诊断结果,采取适当的措施来解决 5xx 问题。

第 1 步:监控最近的 API 流量

如需查看过去一小时内有流量的 API 代理和目标的 API 监控数据,请执行以下操作:

  1. 在 Edge 界面中依次选择分析 > API 监控 > 最近,以访问“最近用过”信息中心。
  2. 请注意在过去一小时内错误率较高的 API 代理和目标。

  3. 点击 API 代理或错误率 (%) 高的目标,在右侧窗格中查看详细信息。请注意,本例中 5xx 错误所占百分比较高。

如需详细了解此步骤,请参阅监控近期 API 流量

第 2 步:确定 API 监控数据中的趋势

如需访问过去三个月内有流量的 API 代理和目标的 API 监控数据历史视图,请执行以下操作:

  1. 在“近期”信息中心的右侧窗格中,依次选择 更多菜单 > 在时间轴中查看,即可访问时间轴信息中心。 或者,您也可以在 Edge 界面中依次点击 Analyze > API Monitoring > Timeline
  2. 查看一段时间内 API 代理或目标的趋势。请注意,趋势在过去 7 天一直一致。

如需详细了解此步骤,请参阅确定 API 监控数据中的趋势

第 3 步:调查 5xx 问题

Apigee 提供了一组故障代码,可帮助您诊断问题。通常,可以使用一个或多个错误代码对 5xx 状态代码进行分类。

如需调查 5xx 问题,请执行以下操作:

  1. 在时间轴信息中心的右侧窗格中,依次选择 更多菜单 > 在调查中查看,即可访问调查信息中心。 或者,您也可以在 Edge 界面中依次点击 Analyze > API Monitoring > Investigate

    借助调查信息中心,您可以比较指标间的关系活动,例如错误代码与时间。
  2. 查看故障代码与时间矩阵,了解过去一小时内的故障代码活动。请注意基于块的颜色阴影,经历了最大相对音量的故障代码。方块越深,相对音量就越高。

    例如,policies.ratelimit.SpikeArrestViolationpolicies.ratelimit.QuotaViolation 错误代码在以下矩阵中显示相对音量较高:故障代码

  3. 点击 policies.ratelimit.SpikeArrestViolation 行中最暗的图块(第一个代码块),即可在右侧窗格中查看更多详细信息。

  4. 请注意,错误来源为 perfBenchmark_invalid_v1 API 代理,且 HTTP 状态代码为 500500 状态代码是违反 Spike Arrest 政策的常见运行时错误代码。

  5. 查看“可疑原因”面板下方的“按开发者应用分发情况”,找出错误率最高的开发者应用。

如需详细了解此步骤,请参阅发现问题

第 4 步:设置 5xx 提醒

根据“调查详细信息”窗格中的所选上下文设置提醒,以便在 5xx 状态代码的数量超出特定阈值时收到通知。

  1. 在“调查”信息中心的右侧窗格中,依次选择 更多菜单 > 创建提醒

  2. 填写提醒对话框中的字段。条件字段会预先填充当前上下文中的数据。例如:

  3. 点击保存

将来,如果 perfBenchmark_invalid_v1 API 代理的 5xx 错误率在 5 分钟内超过 5%,系统就会向指定电子邮件地址发送通知,并在界面中显示视觉提醒。例如:

如需详细了解此步骤,请参阅设置提醒和通知

第 5 步:生成包含客户详细信息的自定义报告(可选)

(可选)生成自定义报告,以标识触发 5xx 错误的客户端的更多详细信息。

“报告”页面上,根据提醒创建的自定义报告会按以下格式命名:API Monitoring Generated: alert-name

  1. 通过以下任一方式设置提醒时创建的自定义报告:

    • 在左侧导航栏中依次选择分析 > 自定义报告 > 报告,以显示“报告”页面。点击列表中的报告名称:API 监控生成:5xx 提醒

    • 点击创建提醒时显示的通知。例如:

  2. 添加以下维度:

    • 开发者应用
    • 客户端 ID
    • 客户端 IP 地址

  3. 如需查看基于错误率较高的特定开发者应用的报告,请添加类似于以下内容的过滤条件:

    and (developer_app eq 'perfBenchmarkApp0')

    注意:在这种情况下,请从维度列表中移除开发者应用。

  4. 点击保存

  5. 生成报告,查看有关触发 5xx 状态代码的开发者应用和客户端的详细信息。

如需详细了解此步骤,请参阅创建自定义报告

第 6 步:将 API 代理划分到一个集合中

创建一个集合来对 API 代理进行分组,并为该群组的所有成员设置适当的提醒阈值,以更快地诊断问题。

  1. 在边缘界面中依次选择分析 > API 监控 > 集合,以显示“集合”信息中心。
  2. 点击 + 收藏集
  3. 选择代理
  4. 从环境下拉列表中选择 prod
  5. 点击下一步
  6. 填写集合对话框中的字段。
  7. 点击保存

接下来,您可以设置提醒(与第 4 步类似),并将维度设为您在上文中指定的集合。

如需详细了解此步骤,请参阅管理集合

第 7 步:解决 5xx 问题

采取适当的措施来解决 5xx 问题。例如,您可以根据诊断信息执行以下任务之一:

  • 使用 Apigee Sense 可以确定请求高峰是否可疑,并决定是否要屏蔽自定义报告中标识的客户端 IP 地址。
  • 添加配额政策,限制开发者应用在特定时间段内可与您的 API 代理建立的连接数。
  • 通过 API 创收,向开发者收取超过一定调用次数的用量。