man*_*adt 1 api azure azure-diagnostics azure-application-insights
我正在使用应用程序洞察来监控应用程序中的 API 使用情况。我正在尝试生成一份报告来列出过去 2 个月内调用特定 API 的次数。这是我的查询
requests
| where timestamp >= ago(24*60h)
| summarize count() by name
| order by count_ desc
Run Code Online (Sandbox Code Playgroud)
问题在于 API 的“名称”也随 URL 附加了参数,因此相同的 API 会在结果集中多次出现,且参数不同(例如 GET api/getTasks/1、GET api/getTasks/ 2)。我尝试查看“请求”架构以检查是否有一个我可以使用的列,其中包含不带参数的 API 名称,但找不到它。有没有一种方法可以按“名称”分组而无需见解参数?请帮忙查询一下。预先非常感谢。
这会切断第二个斜杠之后的所有内容:
requests
| where timestamp > ago(1d)
| extend idx = indexof(name, "/", indexof(name, "api/") + 4)
| extend strippedname = iff(idx >= 0, substring(name, 0, idx), name)
| summarize count() by strippedname
| order by count_
Run Code Online (Sandbox Code Playgroud)
另一种方法(如果 API 表面很小)是通过嵌套 iif 运算符提取值。
| 归档时间: |
|
| 查看次数: |
1377 次 |
| 最近记录: |