2017-11-18 110 views
0

我正在使用应用程序洞察来监视应用程序中的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名称。有没有一种方法可以通过“名称”进行分组而不带有参数?请帮助查询。非常感谢提前。

回答

1

这减少第二斜线后一切:

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运营商来提取值。