Kusto 查询渲染函数忽略指定的 Y 范围

Posted

技术标签:

【中文标题】Kusto 查询渲染函数忽略指定的 Y 范围【英文标题】:Kusto queries render function ignores specified Y range 【发布时间】:2019-07-15 11:06:23 【问题描述】:

我在使用分析工具时遇到问题,特别是 Application Insights 中的分析以及 Log Analytics 工作区中的日志分析。无论查询或图表类型如何,当我向渲染函数指定 with(ymin=x, ymax=y) 值时,这些值都会被忽略。

查询示例:

Heartbeat
| summarize heartbeatPerHour = count() by bin_at(TimeGenerated, 1m, ago(30d)), Computer
| extend availablePerHour = iff(heartbeatPerHour > 0, true, false)
| summarize totalAvailableHours = countif(availablePerHour == true) by Computer 
| extend availabilityRate = totalAvailableHours*100.0/(1440 * 30)
| extend MeetsSLA = availabilityRate > 99.9
| project Computer, availabilityRate 
| render barchart with(title="Last 30 Days Availability (DEMO)", ymin=0, ymax=100)

在这种特殊情况下,预期值介于 2-3% 的正常运行时间之间,因为系统只记录了一天,而查询却涵盖了一个月。然而,结果图的范围是 0-3,而不是请求的 0-100。我似乎不需要关闭“自动范围”选项;包括MS的文档在内的所有帐户都应该可以正常工作,但事实并非如此。示例结果:

Screen cap of query with rendered graph

我已尝试使用来自 App Insights 和 Log Analytics 工作区的查询进行此操作。我在多个浏览器上都试过了。

是我做错了什么,还是我应该与 MS 讨论的系统故障?

【问题讨论】:

渲染操作员文档 (docs.microsoft.com/en-us/azure/kusto/query/renderoperator) 中的顶部注释提到“用户代理可能不会按照指示渲染结果,这取决于它们对所需渲染指令的支持。”。可能 Log Analytics 不支持这些属性。如果你在这里问,你可能会有更好的运气:techcommunity.microsoft.com/t5/Azure-Log-Analytics/bd-p/… 谢谢!如果有任何结果,我会试一试并更新它。 只是跟进。科技界没有太多的答案。我可以让图表给我想要的范围,但前提是我人为地在所需的下限附近包含数据。我怀疑图表库只是完全忽略了这些设置。 @RobbBromley 如何添加人工值?我有一个只有值 1、2 的查询,但图表中的 y 轴从 1 开始,直到 2(1、1.2、1.4、1.6、1.8、2)。我希望它从 0 开始,可以是 0、1、2 或 0、0.5、1、1.5。 @RobbBromley,你还有这个问题吗? 【参考方案1】:

出于某种原因,即使您有足够的屏幕空间,Microsoft 也会在子菜单中隐藏大多数人想要的功能。您可以通过以下方式更改轴范围和其他内容:

    创建指标图表并单击以对其进行编辑(但在您退出编辑视图之后,因为这是合乎逻辑的)

如您所见,我们有一个可用性超过 100% 的图表。不过我们可以改变这一点。

    点击三点和图表设置。

    更改最大值,图表将立即更新

【讨论】:

以上是关于Kusto 查询渲染函数忽略指定的 Y 范围的主要内容,如果未能解决你的问题,请参考以下文章

R语言ggplot2可视化:使用scale_y_continous函数自定义指定Y轴的坐标范围以及对应的数值将坐标轴的数值设置为需要的数据类型(整型浮点型)

mysql查询指定月份范围内,每个月的指定id下的数据量

MySQL指定模糊查询范围 或 获取或者查询数据库字段的特定几位

如何定义matlab里面绘图的x,y轴的范围

oracle列出指定范围内的时间点

pandas使用query函数查询dataframe中某一个数据列在指定数据范围的数据行(rows where value is between two values in dataframe)