应用洞察:如何获得 'problemId' 组中的第一个 'details' 列

App insights: how can i get first 'details' column in the 'problemId' group

我在 App Insights 中根据异常的 problemId 对这个查询进行了计数:

// 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

我也想包含堆栈跟踪,但我只想获取一组 'problemId' 的第一个 'details' 列。有任何想法吗?谢谢

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

喜欢

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

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

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

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

的字段

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