2

我通过 App Insights 中的异常的 issueId 对这个查询进行了计数:

// exception count by problem ID
let start=datetime("2018-01-09T14:17:00.000Z");
let end=datetime("2018-01-10T14:17:00.000Z");
let timeGrain=5m;
let dataset=exceptions
// additional filters can be applied here
| where timestamp >= ago(24h)
| where client_Type == "PC" ;
dataset
| project problemId, cloud_RoleName, itemCount, details 
| summarize count_=sum(itemCount) by problemId, cloud_RoleName, stacktrace_ = (tostring(details))
// calculate exception count for all exceptions
| union(dataset
| summarize count_=sum(itemCount)
| extend problemId="Overall")
| order by count_ desc

我还想包括堆栈跟踪,但我只想获取一组“问题 ID”的第一个“详细信息”列。有任何想法吗?谢谢

4

2 回答 2

2

我认为汇总没有 first() 运算符,但any()如果您只想为每个组提供一个(随机)值,则可以使用该运算符。

喜欢

 | summarize count_=sum(itemCount), any(details) by problemId, ...

“第一”通常意味着组内的某种顺序,所以我不确定是否有一种简单的方法可以做到这一点,而不会使查询变得更加复杂。

请参阅:https://docs.loganalytics.io/docs/Language-Reference/Aggregation-functions/any()

于 2018-01-10T20:25:52.277 回答
1

arg_min()arg_max()可以解决问题。第一个参数是对组进行排序的字段。第二个和后续参数是要返回的字段。

https://docs.microsoft.com/en-us/azure/kusto/query/arg-min-aggfunction

于 2019-02-27T11:14:40.500 回答