教程:监视已发布的 API

适用于:所有 API 管理层级

通过 Azure Monitor,可直观显示、查询、路由和存档来自 Azure API 管理服务的指标或日志并对其执行操作。

在本教程中,你将了解如何执行以下操作:

  • 查看 API 的指标
  • 设置警报规则
  • 查看活动日志
  • 启用和查看资源日志

注意

API 管理支持使用各种附加工具来观察 API,包括内置分析以及与 Application Insights 的集成。 了解详细信息

先决条件

查看 API 的指标

API 管理每分钟发出一次指标,几乎可让你实时了解 API 的状态和运行状况。 下面是最常用的指标。 有关所有可用指标的列表,请参阅支持的指标

  • 容量 - 帮助做出有关升级/降级 API 管理服务的决策。 指标每分钟发出,在报告时反映估计的网关容量。 指标范围为 0-100,是根据 CPU 和内存等网关资源的利用率和其他因素计算的。

  • 请求 - 帮助分析通过 API 管理服务的 API 流量。 指标每分钟发出一次,并报告带有维度的网关请求数。 按响应代码、位置、主机名和错误筛选请求。

重要

已停用以下指标:网关请求总数、成功的网关请求数、未经授权的网关请求数、失败的网关请求数、其他网关请求数。 请迁移到提供等效功能的请求指标。

API 管理概述中“指标”的屏幕截图

访问指标:

  1. Azure 门户,导航到 API 管理实例。 在“概述”页中的“监视”选项卡上查看 API 的关键指标。

  2. 若要详细调查指标,请在左侧菜单中选择“指标”。

    门户上“监视”菜单中的“指标”项的屏幕截图。

  3. 从下拉列表中选择所需的指标。 例如,“请求”。

  4. 该图显示 API 调用总数。 调整时间范围以重点关注感兴趣的时段。

  5. 可以使用请求指标的维度来筛选图表。 例如,依次选择“添加筛选器”和“后端响应代码类别”,然后输入值 500。 该图表显示 API 后端中失败的请求数。

设置警报规则

可以基于指标和活动日志接收警报。 在 Azure Monitor 中,配置警报规则以便在触发该规则时执行某个操作。 常见操作包括:

  • 发送电子邮件通知
  • 调用 Webhook
  • 调用 Azure 逻辑应用

若要基于请求指标配置示例警报规则,请执行以下操作:

  1. Azure 门户,导航到 API 管理实例。

  2. 在左侧菜单中选择“警报”。

    门户上“监视”菜单中的“警报”选项的屏幕截图。

  3. 选择“+ 创建”>“警报规则”。

  4. 在“选择信号”窗口中的“条件”选项卡上:

    1. 在“信号类型”中,选择“指标” 。
    2. 在“信号名称”中,选择“请求” 。
    3. 在“警报逻辑”中指定一个阈值,即在发生多少次后应触发警报。
    4. 在“按维度拆分”的“维度名称”中,选择“网关响应代码类别” 。
    5. 在“维度值”中,选择“4xx”,表示“请求未经授权”或“请求无效”等客户端错误 。 如果未显示维度值,请选择“添加自定义值”,然后输入 4xx。
    6. 在“何时评估”中,接受默认设置,或选择其他设置来配置规则的运行频率。 选择“下一步” 。

    在门户中配置警报逻辑的屏幕截图。

  5. 在“操作”选项卡上,选择或创建一个或多个操作组,以通知用户发生了警报并执行操作。 例如,创建一个新操作组以向 admin@contoso.com 发送通知电子邮件。 有关详细步骤,请参阅在 Azure 门户中创建和管理器操作组

    在门户中为新操作组配置通知的屏幕截图。

  6. 在“创建警报规则”的“详细信息”选项卡上,输入警报规则的名称和说明,然后选择严重性级别。

  7. (可选)配置剩余设置。 然后,在“查看 + 创建”选项卡上选择“创建”。

  8. 现在,在没有 API 密钥的情况下调用会议 API 来测试警报规则。 例如:

    curl GET https://apim-hello-world.azure-api.cn/conference/speakers HTTP/1.1 
    

    根据评估期触发警报,并将电子邮件发送到 admin@contoso.com。

    警报还会显示在 API 管理实例的“警报”页。

    门户中的警报的屏幕截图。

活动日志

活动日志提供对 API 管理服务上的操作的见解。 通过活动日志,可确定对 API 管理服务执行的任何写入操作 (PUT、POST、DELETE) 的“操作内容、操作人员和操作时间”。

注意

活动日志不包括读取 (GET) 操作或者通过 Azure 门户或原始管理 API 执行的操作。

可在 API 管理服务中访问活动日志,或在 Azure Monitor 中访问所有 Azure 资源的日志。

门户中的活动日志的屏幕截图。

若要查看活动日志,请执行以下操作:

  1. Azure 门户,导航到 API 管理实例。

  2. 选择“活动日志”。

    门户上“监视”菜单中的“活动日志”项的屏幕截图。

  3. 选择所需的筛选范围,然后选择“应用”。

资源日志

资源日志(Azure Monitor 日志)提供了大量有关 API 管理操作和错误的信息,这些信息对于审核和故障排除非常重要。 通过诊断设置启用后,日志将收集 API 管理网关接收和处理的有关 API 请求的信息。

注意

消耗层不支持收集资源日志。

若要配置资源日志,请执行以下操作:

  1. Azure 门户,导航到 API 管理实例。

  2. 选择“诊断设置”。

    门户上“监视”菜单中的“诊断设置”项的屏幕截图。

  3. 选择“+ 添加诊断设置”。

  4. 选择要收集的日志或指标。

    将日志和指标发送到的位置有多个选项。 例如,将资源日志与指标一起存档到存储帐户,将其流式传输到事件中心,或者将其发送到 Log Analytics 工作区。

    提示

    如果选择 Log Analytics 工作区,则可以选择将数据存储在特定于资源的 ApiManagementGatewayLogs 表中,或存储在常规 AzureDiagnostics 表中。 我们建议使用特定于资源的表作为支持此选项的日志目标。 了解详细信息

  5. 配置一个或多个日志目标的详细信息后,选择“保存”。

注意

如果 API 管理服务的 MinApiVersion 属性设置为高于 2022-09-01-preview 的任何 API 版本,则添加诊断设置对象可能会导致失败。

有关详细信息,请参阅创建诊断设置以将平台日志和指标发送到不同的目标

在 Azure Monitor 中查看诊断数据

如果在 Log Analytics 工作区中启用日志或指标的收集,则数据可能需要经过几分钟才会显示在 Azure Monitor 中。

若要查看数据,请执行以下操作:

  1. Azure 门户,导航到 API 管理实例。

  2. 在左侧菜单中选择“日志”。

    门户上“监视”菜单中的“日志”项的屏幕截图。

  3. 运行查询以查看数据。 可以运行提供的多个示例查询,也可以运行自己的查询。 例如,以下查询检索 ApiManagementGatewayLogs 表中最近 24 小时的数据:

    ApiManagementGatewayLogs
    | where TimeGenerated > ago(1d) 
    

    在门户中查询 ApiManagementGatewayLogs 表的屏幕截图。

有关使用资源日志进行 API 管理的详细信息,请参阅:

修改 API 日志记录设置

默认情况下,在创建诊断设置以启用资源日志收集时,将为所有 API 启用日志记录并使用默认设置。 可以调整所有 API 的日志记录设置,或者替代单个 API 的设置。 例如,调整采样率或数据详细程度,为标头、请求或响应有效负载启用日志记录,或者为某些 API 禁用日志记录。

有关日志记录设置的详细信息,请参阅诊断日志记录设置参考

若要为所有 API 配置日志记录设置,请执行以下操作:

  1. 在 API 管理实例的左侧菜单中,选择“API”>“所有 API”。
  2. 在顶部栏中选择“设置”选项卡。
  3. 向下滚动到“诊断日志”部分,然后选择“Azure Monitor”选项卡。
  4. 查看设置并根据需要进行更改。 选择“保存”。

若要为特定的 API 配置日志记录设置,请执行以下操作:

  1. 在 API 管理实例的左侧菜单中选择“API”,然后选择 API 的名称。
  2. 在顶部栏中选择“设置”选项卡。
  3. 向下滚动到“诊断日志”部分,然后选择“Azure Monitor”选项卡。
  4. 查看设置并根据需要进行更改。 选择“保存”。

重要

如果启用,则记录的请求或响应有效负载最多可为 8,192 字节。 API 管理还对发送到 Azure Monitor 的诊断日志条目强制实施 32 KB 限制,这包括有效负载和其他属性(如状态代码、标头和时间戳)。 如果属性的组合大小超过 32 KB,API 管理则会删除所有正文和跟踪内容来剪裁条目。

后续步骤

在本教程中,你了解了如何执行以下操作:

  • 查看 API 的指标
  • 设置警报规则
  • 查看活动日志
  • 启用和查看资源日志

转到下一教程: