azure - 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 吗?
解决方案
您应该能够使用 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
推荐阅读
- regex - 替换 $variable 在while循环中改变每次迭代
- yocto - 如何在 Yocto 中禁用每个配方的 sstate-cache
- php - SoapServer 无法打开流:无法分配请求的地址
- r - r - 将不同的输出组合在 1 行中
- mysql - 如何使用 V-Form、Node.JS 和 Vue / Vuetify 将上传的图像保存在数据库中并稍后再次读取它们?
- sql - 如何更改在多行中具有相同数字的两个表上的数字序列?
- r - 反转调查项目的 R 函数产生 NULL
- uml - 将 ER 转换为 UML
- php - 在商店和存档页面上的产品价格后添加 php 代码
- reactjs - 以 y-MM-dd reactjs 的形式获取日期格式作为输出