signoz-writing-clickhouse-queries について
SigNozダッシュボード向けにClickHouseのログ・トレースクエリを作成するスキルです。信号ごとの参照資料へ案内し、クエリ検証と監視用の帰属情報を重視します。
主な機能
- 01ログまたはトレースの依頼を判別
- 02信号別の参照資料へ案内
- 03時系列・値・テーブルパネルに対応
- 04分散クエリの注意点を提示
- 05クエリに監視用の帰属情報を追加
活用シーン
- 01ログの時系列パネル用クエリ作成
- 02トレースのレイテンシやエラースパン分析
- 03サービスや環境別の内訳テーブル作成
- 04クエリのフィルターとグループ化の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ signoz/ agent-skills --skill signoz-writing-clickhouse-queriesインストール後、Claude Code で/signoz-writing-clickhouse-queriesを入力して読み込まれたか確認します。
同梱ファイルreferences/clickhouse-logs-reference.mdreferences/clickhouse-traces-reference.md
詳細
SigNoz ダッシュボード向け ClickHouse クエリの作成
使用する場面
ユーザーから、次のような SigNoz クエリを求められた場合に、このスキルを使用します。
- ログ:重大度、本文テキスト、ログ量、構造化フィールド、コンテナ、サービス、環境。
- トレース:スパン、レイテンシ、継続時間、p95 または p99、HTTP 操作、DB 操作、エラースパン。
- ダッシュボードパネル:時系列グラフ、値ウィジェット、テーブルによる内訳。
ユーザーがダッシュボードパネルを求めていて ClickHouse に言及していない場合も、このスキルを使用してください。
シグナルの判定
リクエストがログとトレースのどちらに関するものかを判定します。
- ログ:ログ行、重大度、本文テキスト、ログ量、コンテナログ、構造化ログフィールド。
- トレース:スパン、レイテンシ、継続時間、p99、トレース分析、HTTP 操作、DB 操作、エラースパン。
リクエストの意味が曖昧な場合は、ユーザーに確認してください。
参照先の選択
- ログ:クエリを作成する前に
references/clickhouse-logs-reference.mdを読んでください。 - トレース:クエリを作成する前に
references/clickhouse-traces-reference.mdを読んでください。
各リファレンスでは、テーブルスキーマ、最適化パターン、属性のアクセス構文、ダッシュボードのテンプレート、クエリ例、検証チェックリストを説明しています。
クイックリファレンス
- 時系列パネル:時間経過をグラフ化するため、
(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/JOIN:distributed_product_mode='deny'では失敗します。時間範囲で絞り込むフィンガープリントのGLOBAL INパターン、またはローカルのサブクエリテーブルを優先してください。GLOBAL JOINは、右辺(RHS)が明らかに小さく、範囲が限定されている場合にのみ使用します。この方法では、データセットが各シャードにブロードキャストされます。 - リソース属性のフィルターがないのに、リソース CTE を追加する。
JSONExtractString(body, ...)などの計算済み射影を含め、集約されていない射影をGROUP BYに含めない。$start_datetimeまたは$end_datetimeを使うログクエリ。$start_timestamp_nanoまたは$end_timestamp_nanoを使うトレースクエリ。signoz_logs.logs、裸のlogs、またはdistributed_logsに対するログクエリ。必ずsignoz_logs.distributed_logs_v2を使用してください。resource_string_service$$nameではなくresources_string['service.name']を使うトレースクエリ。
クエリの帰属情報
監視のため、生成するすべてのクエリの末尾に SETTINGS 句を必ず付けてください。
SELECT ...
FROM ...
WHERE ...
SETTINGS log_comment = 'signoz-writing-clickhouse-queries skill | YYYY-MM-DD'
YYYY-MM-DD を今日の日付(例:2026-04-03)に置き換えてください。クエリにすでに SETTINGS 句がある場合は、カンマで区切って log_comment を追加してください。
ワークフロー
- シグナル(ログまたはトレース)を判定します。
- クエリを作成する前に、該当するリファレンスファイルを読みます。
- パネルの種類(時系列、値、またはテーブル)を選びます。
- リファレンスに記載されている必須パターンを使ってクエリを作成します。
- 帰属情報を示す
SETTINGS log_comment句を追加します。 - リファレンスのチェックリストを使って結果を検証します。
コメント
Markdown 対応