你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:监视已发布的 API
通过 Azure Monitor,可直观显示、查询、路由和存档来自 Azure API 管理服务的指标或日志并对其执行操作。
在本教程中,你将了解如何执行以下操作:
- 查看 API 的指标
- 设置警报规则
- 查看活动日志
- 启用和查看资源日志
你还可以使用 API 管理的内置分析来监视 API 的使用和性能。
先决条件
- 了解 Azure API 管理术语。
- 完成以下快速入门:创建一个 Azure API 管理实例。
- 此外,请完成以下教程:导入并发布第一个 API。
可用性
重要
此功能在 API 管理的“高级”、“标准”、“基本”和“开发人员”层中可用 。
查看 API 的指标
API 管理每分钟发出一次指标,几乎可让你实时了解 API 的状态和运行状况。 以下是两个最常用的指标。 有关所有可用指标的列表,请参阅支持的指标。
- 容量 - 帮助做出有关升级/降级 APIM 服务的决策。 指标每分钟发出,在报告时反映网关容量。 指标范围为 0-100,是根据 CPU 和内存利用率等网关资源计算的。
- 请求 - 帮助分析通过 API 管理服务的 API 流量。 指标每分钟发出一次,并报告带有维度的网关请求数。 按响应代码、位置、主机名和错误筛选请求。
重要
以下指标已于 2019 年 5 月弃用,并将于 2023 年 8 月停用:网关请求总数、成功的网关请求数、未经授权的网关请求数、失败的网关请求数、其他网关请求数。 请迁移到提供等效功能的请求指标。
访问指标:
在 Azure 门户,导航到 API 管理实例。 在“概述”页中,查看 API 的关键指标。
若要详细了解指标,请在靠近页面底部的菜单中选择“指标”。
从下拉列表中选择所需的指标。 例如,“请求”。
该图显示 API 调用总数。
可以使用请求指标的维度来筛选图表。 例如,依次选择“添加筛选器”和“后端响应代码类别”,然后输入值 500 。 该图表显示 API 后端中失败的请求数。
设置警报规则
可以基于指标和活动日志接收警报。 通过 Azure Monitor 可配置警报,使警报触发时执行以下操作:
- 发送电子邮件通知
- 调用 Webhook
- 调用 Azure 逻辑应用
若要基于请求指标配置示例警报规则,请执行以下操作:
在 Azure 门户,导航到 API 管理实例。
在靠近页面底部的菜单栏中选择“警报”。
选择“+ 新建警报规则”。
在“创建警报规则”窗口中,选择“条件” 。
在“配置信号逻辑”窗口中:
- 在“信号类型”中,选择“指标” 。
- 在“信号名称”中,选择“请求” 。
- 在“按维度拆分”的“维度名称”中,选择“网关响应代码类别” 。
- 在“维度值”中,选择“4xx”,表示“请求未经授权”或“请求无效”等客户端错误 。
- 在“警报逻辑”中,指定触发警报的“阈值”。
- 在“评估依据”中,指定“聚合粒度”和“评估频率”,然后选择“完成”。
选择现有的操作组或创建新组。 在以下示例中,将新建操作组。 通知电子邮件将发送到 admin@contoso.com。
输入警报规则的名称和说明,然后选择严重级别。
选择“创建警报规则”。
现在,在没有 API 密钥的情况下调用会议 API 来测试警报规则。 例如:
curl GET https://apim-hello-world.azure-api.net/conference/speakers HTTP/1.1根据评估期触发警报,并将电子邮件发送到 admin@contoso.com。
警报还会显示在 API 管理实例的“警报”页。
活动日志
活动日志提供对 API 管理服务上的操作的见解。 通过活动日志,可确定对 API 管理服务执行的任何写入操作 (PUT、POST、DELETE) 的“操作内容、操作人员和操作时间”。
注意
活动日志不包括读取 (GET) 操作或者通过 Azure 门户或原始管理 API 执行的操作。
可在 API 管理服务中访问活动日志,或在 Azure Monitor 中访问所有 Azure 资源的日志。
若要查看活动日志,请执行以下操作:
在 Azure 门户,导航到 API 管理实例。
选择“活动日志”。
选择所需的筛选范围,然后选择“应用”。
资源日志
资源日志提供了大量有关操作和错误的信息,这些信息对于审核和故障排除非常重要。 资源日志不同于活动日志。 活动日志提供对 Azure 资源上的操作的见解。 资源日志提供对资源运行的操作的见解。
若要配置资源日志,请执行以下操作:
在 Azure 门户,导航到 API 管理实例。
选择“诊断设置”。
选择“+ 添加诊断设置”。
选择要收集的日志或指标。
可以将资源日志与指标一起存档到存储帐户,将其流式传输到事件中心,或者将其发送到 Log Analytics 工作区。
有关详细信息,请参阅创建诊断设置以将平台日志和指标发送到不同的目标。
在 Azure Monitor 中查看诊断数据
如果在 Log Analytics 工作区中启用 GatewayLogs 或指标的收集,则数据可能需要几分钟才能在 Azure Monitor 中显示。 若要查看数据,请执行以下操作:
在 Azure 门户,导航到 API 管理实例。
在靠近页面底部的菜单中选择“日志”。
运行查询以查看数据。 可以运行提供的多个示例查询,也可以运行自己的查询。 例如,以下查询检索 GatewayLogs 表中最近 24 小时的数据:
ApiManagementGatewayLogs
| where TimeGenerated > ago(1d)
有关使用资源日志进行 API 管理的详细信息,请参阅:
以下 JSON 表示 GatewayLogs 中成功的 API 请求的示例条目。 有关详细信息,请参阅架构参考。
{
"Level": 4,
"isRequestSuccess": true,
"time": "2020-10-14T17:xx:xx.xx",
"operationName": "Microsoft.ApiManagement/GatewayLogs",
"category": "GatewayLogs",
"durationMs": 152,
"callerIpAddress": "xx.xx.xxx.xx",
"correlationId": "3f06647e-xxxx-xxxx-xxxx-530eb9f15261",
"location": "East US",
"properties": {
"method": "GET",
"url": "https://apim-hello-world.azure-api.net/conference/speakers",
"backendResponseCode": 200,
"responseCode": 200,
"responseSize": 41583,
"cache": "none",
"backendTime": 87,
"requestSize": 526,
"apiId": "demo-conference-api",
"operationId": "GetSpeakers",
"apimSubscriptionId": "master",
"clientTime": 65,
"clientProtocol": "HTTP/1.1",
"backendProtocol": "HTTP/1.1",
"apiRevision": "1",
"clientTlsVersion": "1.2",
"backendMethod": "GET",
"backendUrl": "https://conferenceapi.azurewebsites.net/speakers"
},
"resourceId": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group>/PROVIDERS/MICROSOFT.APIMANAGEMENT/SERVICE/APIM-HELLO-WORLD"
}
后续步骤
在本教程中,你了解了如何执行以下操作:
- 查看 API 的指标
- 设置警报规则
- 查看活动日志
- 启用和查看资源日志
转到下一教程: