You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过REST API获取Azure API Management用户API访问统计数据

Azure APIM 获取用户API访问统计的实现方案

Azure API Management 提供原生管理REST API可直接实现用户维度的API调用统计,无需依赖log-to-eventhub功能。

核心可用接口

  • 聚合统计优先使用Reports - List By Request接口
    这是APIM内置的报表类接口,支持直接按筛选条件返回聚合后的统计结果,不需要拉取全量请求明细做二次计算,查询性能更高。你可以通过请求参数直接指定统计规则:
    • 筛选规则:通过$filter参数指定目标用户ID、统计时间范围,过滤出指定用户的所有请求记录
    • 聚合规则:通过$apply参数指定按API ID分组,同时聚合计算三个核心指标:总调用次数、响应码200-399区间的成功请求数、响应码400及以上的失败请求数
  • 单条访问明细拉取使用Diagnostics - List By Service接口
    如果你需要逐笔请求的访问明细(比如排查具体失败请求的参数、报错信息),可以调用该诊断接口,单条请求记录包含调用用户标识、匹配的API信息、响应状态码、请求耗时、请求IP等全量字段,拉取后可自行做任意维度的统计计算。

调用注意事项

  • 两个接口均属于APIM管理平面接口,认证支持Azure AD令牌、服务主体认证,调用前需要给调用身份授予APIM实例的API Management Service Reader及以上权限
  • 接口可查询的数据留存周期和APIM定价层匹配,开发者、基础、标准、高级层默认留存90天的网关日志,超期数据无法通过该接口查询,如需长周期统计建议按天拉取数据存入自有存储
  • 成功/失败请求的判定逻辑可以直接写在聚合参数里,不需要拉取数据后自行判断:成功请求判定条件为responseCode ge 200 and responseCode lt 400,失败请求判定条件为responseCode ge 400

调用示例

以下是统计指定用户2024年1月各API调用情况的请求模板:

GET https://management.azure.com/subscriptions/{你的订阅ID}/resourceGroups/{资源组名称}/providers/Microsoft.ApiManagement/service/{APIM服务名称}/reports/byRequest?api-version=2022-08-01
&$filter=userId eq '/users/{目标用户ID}' and timestamp ge datetime'2024-01-01' and timestamp le datetime'2024-01-31'
&$apply=groupby((apiId), aggregate($count as totalCalls, responseCode ge 200 and responseCode lt 400 with sum as successCount, responseCode ge 400 with sum as failCount))

请求返回的结果中,每个条目对应用户调用过的一个API,直接包含你需要的总调用次数、成功数、失败数三个核心指标。

内容的提问来源于stack exchange,提问作者iluv_dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 12:54:19