首页 > 解决方案 > Azure Kusto 时间序列

问题描述

我们在使用 Azure Kusto 中的时间图表时遇到了一些问题。在此图表中,我们随时间对 http 异常进行了分组。

问题是图表仍然报告不存在异常的时间点的最后一次看到的值。见红色标记。在这种特定情况下,我们看到图表在 5:28 报告了 /poll 端点上的 3.23k 异常。虽然当时实际上没有这样的错误。

在此处输入图像描述

查询看起来像这样

AppServiceHTTPLogs
| where TimeGenerated > ago(1d)
| where ScStatus >= 500
| summarize count() by tostring(CsUriStem), bin(TimeGenerated, 30m)
| render timechart

使用柱形图可以解决问题,但这会带来不那么清晰的代价。还有其他选择吗?

我们可以以某种方式使缺失值默认为 0 吗?

标签: azureazure-data-explorerkql

解决方案


您应该能够使用 make-series 运算符填充默认零:

https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/make-seriesoperator

AppServiceHTTPLogs
| where TimeGenerated > ago(1d)
| where ScStatus >= 500
| make-series count() on TimeGenerated from ago(1d) to now() step 30min by tostring(CsUriStem)
| render timechart

一些 UX 客户端不知道如何表示系列数据 - 在这种情况下,您可以使用 mv-expand 对其进行扩展:

AppServiceHTTPLogs
| where TimeGenerated > ago(1d)
| where ScStatus >= 500
| make-series count() on TimeGenerated from ago(1d) to now() step 30min by tostring(CsUriStem)
| mv-expand count_ to typeof(long)
| render timechart

推荐阅读