Skip to main content
ClickStack は、生の SQL クエリに基づく可視化をサポートしています。これにより、ダッシュボード レベルの時間範囲、フィルター、チャートの描画と連携しながら、クエリ ロジックを完全に制御できます。 SQL ベースの可視化は、組み込みの Chart Explorer では対応しきれないことを行いたい場合に有用です。たとえば、テーブルを結合したり、chart builder ではサポートされていない複雑な集計を作成したりする場合です。

SQL ベースの可視化の作成

SQL ベースの可視化を作成するには、ダッシュボードのタイルエディタを開き、SQL タブを選択します。 その後、次の手順で進めます。
  1. クエリの実行先となる ClickHouse 接続 を選択します。
  2. 必要に応じて ログソース を選択します。これにより、$__filters マクロを介してダッシュボードレベルのフィルタをグラフに適用できるようになります。
  3. エディタで SQL クエリを記述し、クエリパラメータとマクロを使ってダッシュボードの時間範囲やフィルタと連携させます。
  4. play ボタンをクリックして結果をプレビューし、Save をクリックします。

クエリパラメータ

クエリパラメータ を使用すると、SQL からダッシュボードの現在の時間範囲と粒度を参照できます。構文には、ClickHouse のパラメータ化クエリ構文 {paramName:Type} を使用します。

利用可能なパラメータ

使用できるパラメータは、チャートの種類によって異なります。 折れ線グラフ チャートおよび 積み上げ棒グラフ チャート: Table、Pie、および Number チャート:

マクロ

マクロは、よく使われる ClickHouse SQL の式に展開されるショートカットです。$__ というプレフィックスが付き、クエリが ClickHouse に送信される前に置換されます。

時間境界マクロ

これらのマクロは、ダッシュボードの開始時刻または終了時刻を表す ClickHouse の式を返します。引数はありません。

時間フィルターマクロ

これらのマクロは、カラムをダッシュボードの時間範囲で絞り込む WHERE 句のフラグメントを生成します。 $__timeFilter(TimestampTime)展開例:

時間インターバルマクロ

これらのマクロは、タイムスタンプのカラムをダッシュボードの粒度に合わせたインターバルにまとめます。通常は、時系列チャートの SELECT 句および GROUP BY 句で使用します。利用できるのは、折れ線グラフ と Stacked-bar の可視化のみです。 $__timeInterval(TimestampTime)展開例:

ダッシュボードフィルタ用マクロ

グラフでログソースが選択されており、ダッシュボードフィルタが有効な場合、$__filters は対応する SQL の WHERE 条件に展開されます。ログソースが選択されていない場合、またはフィルタが適用されていない場合は、(1=1) に展開されるため、WHERE 句に含めても常に安全です。

クエリ結果の表示方法

ClickStack は、カラムの型に基づいて、クエリ結果のカラムをグラフ要素に自動的に対応付けます。対応付けのルールは、グラフの種類によって異なります。

折れ線グラフと積み上げ棒グラフ

円グラフ

Number チャート

テーブルチャート

すべての結果カラムが、そのままテーブルのカラムとして表示されます。

必要な system table へのアクセス権以下の例を play-clickstack.clickhouse.com 上で実行する場合は、otel_v2.otel_logs または otel_v2.otel_traces を指定する必要があります。

折れ線グラフ — サービス別の時間ごとのログ件数

このクエリは、ダッシュボードの粒度に合わせた時間間隔で区切り、サービスごとのログイベント数を集計します。
  • ts (DateTime) は、x軸のタイムスタンプとして使用されます。
  • count (数値) は、系列の値としてプロットされます。
  • ServiceName (文字列) は、サービスごとに別々の線として表示されます。

折れ線グラフ — マクロを使う場合

簡潔にするため、マクロを使って同じクエリを記述すると次のようになります。

積み上げ棒グラフ — 重大度別エラー数

テーブルチャート — 応答が最も遅いエンドポイント上位10件

円グラフ — サービス別リクエスト分布

  • request_count (数値) は各スライスの大きさを決定します。
  • ServiceName (文字列) は各スライスのラベルを表します。

Number チャート — エラーの総数

最初の行の数値 total_errors が表示されます。

注記

  • SQL ベースの可視化は readonly モードを有効にして実行されるため、SELECT クエリのみ実行できます。
  • SQL ベースの可視化では、SQL クエリは必ず 1 つだけ指定する必要があります。複数クエリには対応していません。
  • SQL エディタでは、クエリパラメータとマクロの両方でオートコンプリート候補が表示されます。
  • SQL ベースの可視化にダッシュボードフィルタを適用するには、ログソースを選択する必要があります。正しくフィルタリングするには、ログソースをクエリ対象のテーブルに一致させる必要があります。
最終更新日 2026年7月3日