azure 日志警报透视后如何在 kusto 查询中索引列

Posted

技术标签:

【中文标题】azure 日志警报透视后如何在 kusto 查询中索引列【英文标题】:How to index a column in kusto query after pivot for azure log alerts 【发布时间】:2021-01-14 19:37:30 【问题描述】:

我在 Azure 中将以下 kusto 查询用作日志查询

traces
| where message contains "SWSE"
| extend d=parse_json(message)
| extend Info=tostring(d.message)
| where Info startswith "Borrow Token" or Info startswith "Return Token" 
| extend  tAction = tostring( split(Info,' ',0)[0])
| summarize count_=count() by tAction, timebox=bin(timestamp, 10m)
| evaluate pivot(tAction,sum(count_))
| extend  diff = abs(Borrow-Return)
| where diff>2

导致

但是,此行在导入日志警报时被标记为错误,而不是在针对 Azure 日志运行时。

| extend  diff = abs(Borrow-Return)

出现错误:

The request had some invalid properties

还有其他方法可以引用这些列吗?

【问题讨论】:

【参考方案1】:

pivot() 插件的输出架构不是确定性的,取决于输入数据 - 如果您期望的列实际上不存在于输出架构中,您可能需要使用 column_ifexists()

文档:https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/columnifexists

例如:

| extend diff = abs(column_ifexists("Borrow", 0) - column_ifexists("Return", 0))

【讨论】:

以上是关于azure 日志警报透视后如何在 kusto 查询中索引列的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Kusto.Explorer 查询我的 Application Insights 日志(分析)?

Kusto - 如何在 Azure Application Insight 中查找导致 524/5xx 错误的操作/异常?

Kusto / Azure Application Insights - 如何将数据与前几周的同一天进行比较?

使用 azure 命令行工具根据自定义日志创建警报

Azure Log Analytics - SQL 托管实例日志

在 Kusto 查询中显示 JSON 属性 - 特定子网