创建基于 SQL 的可视化
- 选择一个要用于运行查询的 ClickHouse 连接。
- 也可以选择一个 Source —— 这样就能通过
$__filters宏将仪表板级过滤器应用到图表。 - 在编辑器中编写 SQL 查询,使用查询参数和宏与仪表板的时间范围及过滤器集成。
- 点击 play 按钮预览结果,然后点击 Save。
查询参数
{paramName:Type}。
可用参数
表格、饼图和数值图表:
宏
$__ 开头,并会在查询发送到 ClickHouse 之前完成替换。
时间边界宏
时间过滤宏
WHERE 子句片段,用于按仪表板的时间范围过滤某一列。
$__timeFilter(TimestampTime) 的展开示例:
时间间隔宏
SELECT 和 GROUP BY 子句。仅适用于 折线图 和 Stacked-bar 可视化。
$__timeInterval(TimestampTime) 的展开示例:
仪表板过滤器宏
当在图表中选择了 Source 且仪表板过滤器已启用时,
$__filters 会展开为对应的 SQL WHERE 条件。未选择 Source 或未应用任何过滤器时,它会展开为 (1=1),因此始终可以安全地将其包含在 WHERE 子句中。
查询结果的绘制方式
折线图和堆叠条形图
饼图
数值图表
表格图表
示例
需要系统表访问权限如果要在 play-clickstack.clickhouse.com 上运行以下示例,您需要指定
otel_v2.otel_logs 或 otel_v2.otel_traces。折线图 — 按服务划分的日志计数随时间变化
ts(DateTime) 用作 x 轴时间戳。count(numeric) 作为序列值进行绘制。ServiceName(string) 为每个服务生成一条单独的折线。
折线图 — 使用宏
堆叠条形图 — 按严重级别统计的错误数
表格图表 — 最慢的 10 个端点
饼图——按服务统计的请求分布
request_count(数值) 决定每个扇区的大小。ServiceName(字符串) 用于标注每个扇区。
数值图表——错误总数
total_errors。
注意事项
- 基于 SQL 的可视化会在启用
readonly模式的情况下执行——仅允许SELECT查询。 - 基于 SQL 的可视化必须且只能包含一条 SQL 查询,不支持多条查询。
- SQL 编辑器会为查询参数和宏提供自动补全建议。
- 必须先选择一个 source,才能将 仪表板 过滤器应用到基于 SQL 的可视化中。该 source 应与所查询的表一致,以确保过滤准确。