Application Insights 使用报告按“其他”汇总

问题描述 投票:0回答:1

您好,我刚开始使用 App Insights。 我需要帮助确定为什么我的查询将某些用户汇总为“OTHER”(大写)

图表(柱形图或条形图)上可以呈现的项目数量似乎有限制

我记录了一些自定义事件,记录用户何时在基于浏览器的应用程序中执行各种功能,记录用户名、他们的角色和执行的功能以及时间戳

我有这个查询来查看我的用户何时登录,集中到每小时的垃圾箱中。

当我运行 2 天时,效果很好 当我运行 7 天时,它会将一些用户集中在“OTHER”下(全部大写)

如果我渲染到表格,则不会显示“其他” 当我渲染到柱形图或条形图时,出现“其他”

是的,我可以运行它更短的时间,或者放弃用户的细分,但有没有办法提高限制?

let mainTable = union customEvents
    | where datetime_utc_to_local(timestamp,'Pacific/Auckland') > startofday(ago(7d)) // from beginning of yesterday
    | where datetime_utc_to_local(timestamp,'Pacific/Auckland') < startofday(now())  // to beginning of today
    | where isempty(operation_SyntheticSource)   //not Synthetic users
    | where itemType == "customEvent"  //only custom data
    | where customDimensions["FunctionName"]=="Log in"  //only logins
    | extend FunctionName = customDimensions["FunctionName"];
let queryTable = mainTable;
let splitTable =  () {   //splitting table by... (user)
    queryTable
    | extend user_dim = customDimensions["User"]  //get username as dimension
    | extend user_dim = iif(isempty(user_dim), "<undefined>", user_dim) //show "undefined" if user is blank
};
let cohortedTable = splitTable
    | extend byDimension = bin(datetime_utc_to_local(timestamp,'Pacific/Auckland'), 1h)  // 1h group by hourly buckets 30m =30 min 
    | summarize metric = count_distinct(user_Id) by byDimension, user_dim;
cohortedTable
| project byDimension, user_dim, metric //show these in the output
| summarize metric = sum(metric) by user_dim, byDimension
| render columnchart
//| render table
//| render barchart
azure azure-application-insights kql appinsights
1个回答
0
投票

在探索您的问题后,我发现从应用程序洞察中生成的图表可视化日志存在限制,而不是使用行表表示。

默认情况下,它通常维护最多 12 个不同类别的记录可视化,具体取决于可视化类型。如果超过此限制,则分为

"OTHER"
类别。

如果使用行(表)表示,它可以记录尽可能多的结果日志。

并且不能直接增加图表的限制来实现完整的可视化。

或者,作为解决方法,您可以尝试以简短的方式过滤掉用户的信息日志。

您可以使用 KQL 中提供的

top
运算符通过应用从查询返回的过滤器来限制行数,如下所示。

我已经执行了一个示例查询来向您展示它是如何工作的,因为我没有在最近的日志时间戳中跟踪自定义事件。

requests
| top 10 by appId

enter image description here

更改后的查询片段:

let cohortedTable = splitTable()
    | extend byDimension = bin(datetime_utc_to_local(timestamp, 'Pacific/Auckland'), 1h)
    | summarize metric = count_distinct(user_Id) by byDimension, user_dim
    | top 10 by metric; //Modify it according to your requirement
| project byDimension, user_dim, metric
| summarize metric = sum(metric) by user_dim, byDimension
| render columnchart

或者您可以通过减少持续时间来聚合日志信息(例如:

24hr
),而不是长时间显示它。此外,您还可以将用户分组为角色或其他类别,以便于分析。

© www.soinside.com 2019 - 2024. All rights reserved.