如何从Kusto(ADX)查询结果生成Markdown
在Kusto中直接生成Markdown用于仪表盘
你可以直接用Kusto的字符串操作与聚合函数构造Markdown格式的输出,无需依赖外部工具。以下是几种常见场景的实现方法:
1. 生成带格式的列表项
通过strcat()拼接Markdown语法,快速生成带强调的列表内容:
// 示例:按请求类型统计并生成Markdown列表 RequestLogs | summarize TotalRequests = count() by RequestType | project MarkdownOutput = strcat("- *", RequestType, "*: ", TotalRequests, " 次请求")
执行后每行结果都是标准的Markdown列表项,请求类型会被斜体强调。
2. 生成完整的Markdown表格
先定义表头,再逐行构造表格内容,最后拼接成完整表格:
// 示例:生成请求统计表格 let TableHeader = "| 请求类型 | 总次数 | 成功率 |\n| --- | --- | --- |\n"; RequestLogs | summarize TotalCount = count(), SuccessRate = round(avg(iff(IsSuccess, 1.0, 0.0)) * 100, 2) by RequestType | project TableRow = strcat("| ", RequestType, " | ", TotalCount, " | ", SuccessRate, "% |") | summarize AllRows = strcat_array(TableRow, "\n") | project MarkdownTable = strcat(TableHeader, AllRows)
这个查询会输出完整的Markdown表格,直接返回给仪表盘工具即可渲染。
3. 生成带标题的报告内容
如果需要生成结构化的报告,可以直接在字符串中加入Markdown标题、加粗等语法:
// 示例:生成一周请求统计报告 let TimeRange = datetime(2024-01-01)..datetime(2024-01-07); RequestLogs | where Timestamp between TimeRange | summarize TotalRequests = count() | project MarkdownReport = strcat( "# 一周请求统计报告\n\n", "统计时间范围: ", TimeRange, "\n\n", "总请求数: **", TotalRequests, "**" )
输出的内容包含一级标题、分段文本和加粗的统计数值,符合标准Markdown格式。
小提示
- 如果内容中包含Markdown特殊字符(如
|、*),需要用反斜杠\转义,比如strcat("| 内容含竖线: \\| 示例 |") - 不同仪表盘工具对Markdown的支持略有差异,建议先输出纯文本验证语法是否正确
内容的提问来源于stack exchange,提问作者Daniel Dror
相关产品推荐
相关产品推荐

