【问题标题】:KQL group by with same result as the drag and drop group featureKQL group by 与拖放组功能的结果相同
【发布时间】:2019-07-05 09:42:30
【问题描述】:

在 Azure 门户中使用 Monitor、Log 功能时,您可以通过将列标题拖放到某个框中来对行进行分组,问题是按下保存按钮时不会保存。

如何编写生成相同结果的 KQL?按 Column_Name 进行汇总不会产生相同的结果。

【问题讨论】:

  • 可以添加一些截图吗?

标签: azure azure-diagnostics azure-log-analytics kql


【解决方案1】:

保存功能仅保存查询编辑器内容,不保存结果窗格中的任何内容。我相信使用 pack 和 make-set 运算符可以生成与您正在寻找的内容非常接近的输出(如果我理解正确的话)。请参阅下面按 client_OS 分组的示例以及按名称和计数进行的内部细分

customEvents
| summarize count() by name, client_OS
| extend p =pack('name', name, 'count', count_) 
| summarize names = make_set(p)  by client_OS

【讨论】:

  • 这种工作,虽然使用GUI和Group columns时生成的嵌套深度为3-4层而不是简洁的单层结果。真希望有一种简单的方法可以使用 KQL 在本机显示它。
【解决方案2】:

我相信通过这种方式可以实现最接近您期望的效果:

exceptions
| summarize entries = make_list(pack_all()) by operation_Name

标量函数pack_all从所有可用列创建一个对象,聚合函数make_list返回作为其参数提供的所有值的JSON数组。

编辑: makelist 函数已弃用,请改用 make_list

【讨论】:

  • 这似乎在每个 entries 值最多 127 个结果。
  • @ericOnline 如果您使用make_list 而不是已弃用的makelist,则不会有这样的限制。我已经编辑了我的答案。您可以在official documentation 中阅读更多相关信息。
猜你喜欢
  • 2013-01-05
  • 2015-05-05
  • 1970-01-01
  • 2016-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-17
相关资源
最近更新 更多