mcpField
S
signoz-clickhouse-query

signoz-clickhouse-query

github.com/signoz数据与数据库19100 次安装6 天前更新
代码仓库

关于 signoz-clickhouse-query

signoz-clickhouse-query 是用于编写 SigNoz 仪表板 ClickHouse 查询的技能。它指导用户识别日志或追踪信号、选择相应参考资料,并按面板类型构造和验证查询。

主要功能

  1. 01识别日志与追踪请求
  2. 02按信号选择参考资料
  3. 03时序、数值和表格查询模式
  4. 04SigNoz 架构与变量指引
  5. 05使用 SETTINGS 添加查询标记
  6. 06基于参考资料的验证清单

适用场景

  1. 01构建日志仪表板面板
  2. 02查询追踪延迟或错误
  3. 03创建时序、统计值和表格结果
  4. 04检查生成查询中的常见问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/signoz/agent-skills --skill signoz-clickhouse-query

安装后在 Claude Code 中输入/signoz-clickhouse-query确认已加载。

附带文件references/clickhouse-logs-reference.mdreferences/clickhouse-traces-reference.md

详细介绍

为 SigNoz 仪表板编写 ClickHouse 查询

何时使用

当用户提出有关 SigNoz 查询的需求,涉及以下内容时,请使用此技能:

  • 日志:严重程度、正文文本、日志量、结构化字段、容器、 服务或环境。
  • 追踪:跨度、延迟、持续时间、p95 或 p99、HTTP 操作、数据库 操作或错误跨度。
  • 仪表板面板:时间序列图表、数值组件和表格细分。

如果用户要求创建仪表板面板,但没有提到 ClickHouse,也请使用此技能。

信号检测

判断请求涉及日志还是追踪。

  • 日志:日志行、严重程度、正文文本、日志量、容器日志或 结构化日志字段。
  • 追踪:跨度、延迟、持续时间、p99、追踪分析、HTTP 操作、数据库 操作或错误跨度。

如果请求含糊不清,请让用户进一步说明。

参考资料路由

每份参考资料都涵盖表架构、优化模式、属性访问语法、仪表板模板、查询示例和验证清单。

快速参考

  • 时间序列面板:返回 (ts, value) 行,以绘制随时间变化的图表。
  • 数值面板:返回单个 value,用于统计或计数器组件。
  • 表格面板:返回带标签的列,用于分组细分。

按信号划分的关键变量

日志
  • 时间戳类型:纳秒级 UInt64。
  • 时间筛选器:$start_timestamp_nano 和 $end_timestamp_nano。
  • 桶筛选器:$start_timestamp 和 $end_timestamp。
  • 显示转换:fromUnixTimestamp64Nano(timestamp)。
  • 主表:signoz_logs.distributed_logs_v2。
  • 资源表:signoz_logs.distributed_logs_v2_resource。
追踪
  • 时间戳类型:DateTime64(9)。
  • 时间筛选器:$start_datetime 和 $end_datetime。
  • 桶筛选器:$start_timestamp 和 $end_timestamp。
  • 显示转换:直接使用时间戳。
  • 主表:signoz_traces.distributed_signoz_index_v3。
  • 资源表:signoz_traces.distributed_traces_v3_resource。

常见反模式

  • 缺少 ts_bucket_start BETWEEN $start_timestamp - 1800 AND $end_timestamp。
  • 在资源指纹子查询中使用普通的 IN,而不是 GLOBAL IN。
  • 没有资源属性筛选器时仍添加资源 CTE。
  • 日志查询使用 $start_datetime 或 $end_datetime。
  • 追踪查询使用 $start_timestamp_nano 或 $end_timestamp_nano。
  • 追踪查询使用 resources_string['service.name'],而不是 resource_string_service$$name。

查询归属信息

每条生成的查询都必须以用于监控的 SETTINGS 子句结尾:

SELECT ...
FROM ...
WHERE ...
SETTINGS log_comment = 'signoz-clickhouse-query skill | YYYY-MM-DD'

将 YYYY-MM-DD 替换为今天的日期(例如,2026-04-03)。如果查询已有 SETTINGS 子句,请在其中追加 log_comment,并用逗号分隔。

工作流

  1. 检测信号:日志或追踪。
  2. 编写查询前,阅读对应的参考文件。
  3. 选择面板类型:时间序列、数值或表格。
  4. 按照参考资料中的必需模式构建查询。
  5. 追加 SETTINGS log_comment 归属信息子句。
  6. 根据参考资料中的清单验证结果。

评论

支持 Markdown