按API的名称分组,但忽略参数 - 应用程序洞察
问题描述:
我正在使用应用程序洞察来监视应用程序中的API使用情况。我正在尝试生成一份报告,列出过去2个月内调用特定API的次数。这里是我的查询按API的名称分组,但忽略参数 - 应用程序洞察
requests
| where timestamp >= ago(24*60h)
| summarize count() by name
| order by count_ desc
的问题是,该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_
的另一种方法(如果API面小)是通过嵌套IIF运营商来提取值。