将源数据库名称添加为 Kusto 的行结果中的列

Add source database name as column in row results for Kusto

我的集群中有多个 Kusto 数据库 - 每个数据库代表一个持续集成测试 运行。我经常喜欢在多个数据库中进行搜索,以查看问题发生的范围或问题何时开始发生。

我会这样做:

union (database('2018-08-*').['*InterestingTables']) | where Message has "Danger, Danger, Will Robinson!" | project OccurrenceTime,Message

我得到了一个很好的概览,但无法知道每一行来自哪个数据库。 Message 本身并没有告诉我足够多的信息让我知道两个相邻的行是来自相同的环境还是不同的环境。

有没有办法用附加列来扩展它 and/or table 该行在加入之前来自哪个数据库?

在 Kusto Explorer 中,我正在考虑编写某种函数来逐个枚举数据库,过滤到感兴趣的行,使用当前数据库扩展行,然后将它们合并在一起.我希望有更简单的方法来做到这一点。通过管道思考,似乎在联合完成时为时已晚 - 除非 Kusto 在我尚未找到的元数据中携带该信息。通过 CLI 会容易得多,但我更喜欢在资源管理器中工作的东西。

我想要的有点像 $tablesearch 结果。

我也试过 | extend cursor_current() 看看它是否添加了任何有趣的东西,但这在跨数据库范围内不起作用。

我已经非常详尽地完成了 Query Language/Query Essentials,尽管可能由于...好吧,精疲力竭而错过了它。 :)

您可以使用 "union" statement 中的 withsource 子句获取 table 名称。

union withsource=SourceTable (database('2018-08-*').['*InterestingTables'])
| where Message has "Danger, Danger, Will Robinson!"
| project OccurrenceTime,Message