ClickHouse プラグインでは、あらゆるクエリを実行できます。
単純なクエリにはクエリビルダーが便利ですが、複雑なクエリでは SQL エディタ を使用する必要があります。
クエリビルダー内のすべてのクエリには クエリタイプ があり、少なくとも 1 つのカラムを選択する必要があります。
利用可能なクエリタイプは次のとおりです。
- Table: データをテーブル形式で表示するための、最もシンプルなクエリタイプです。集計関数を含む単純なクエリにも複雑なクエリにも、汎用的に適しています。
- Logs: ログ用のクエリ作成に最適化されています。デフォルトを設定した Explore ビューで最も効果を発揮します。
- Time Series: 時系列クエリの作成に最適です。専用の時刻カラムを選択し、集計関数を追加できます。
- Traces: トレースの検索や表示に最適化されています。デフォルトを設定した Explore ビューで最も効果を発揮します。
- SQL Editor: クエリを完全に制御したい場合は SQL エディタを使用できます。このモードでは、あらゆる SQL クエリを実行できます。
クエリタイプ設定を変更すると、作成するクエリの種類に合わせてクエリビルダーのレイアウトが変わります。
また、クエリタイプによって、データの可視化に使用するパネルも決まります。
最も柔軟なクエリタイプは、テーブルクエリです。これは、シンプルなクエリや集約クエリを扱うために設計された、ほかのクエリビルダー全般を包括するクエリタイプです。
このクエリタイプでは、データがテーブルとして表示されます。
ログのクエリタイプでは、ログデータのクエリに特化したクエリビルダーを利用できます。
クエリビルダーでデフォルトのデータベース/テーブルやカラムをあらかじめ読み込めるように、デフォルト値はデータソースのログ設定で構成できます。
また、OpenTelemetry を有効にすると、スキーマバージョンに応じてカラムを自動選択できます。
Time と Level のフィルターはデフォルトで追加され、さらに Time カラムに対する ORDER BY も追加されます。
これらのフィルターはそれぞれ対応するフィールドに関連付けられており、カラムが変更されると更新されます。
Level フィルターはデフォルトでは SQL に含まれず、IS ANYTHING オプションから変更すると有効になります。
ログのクエリタイプはデータリンクをサポートしています。
このクエリタイプでは、データはログパネルに表示され、上部にはログヒストグラムパネルも表示されます。
クエリで選択した追加カラムは、展開したログの行で確認できます。
時系列クエリタイプは、table と似ていますが、時系列データに重点を置いています。
この 2 つのビューはほぼ同じですが、主な違いは次のとおりです。
- 専用の Time フィールドがあります。
- 集計モードでは、Time フィールドに対する Group By とあわせて、時間間隔マクロが自動的に適用されます。
- 集計モードでは、“カラム” フィールドは表示されません。
- Time フィールドに対して、時間範囲フィルターと Order By が自動的に追加されます。
可視化にデータが表示されていませんか?状況によっては、limit のデフォルト値が 1000 のため、時系列パネルが途中で切れているように見えることがあります。LIMIT 句を 0 に設定して削除してみてください (データセットで許可されている場合) 。
このクエリタイプでは、データが時系列パネルで表示されます。
トレースクエリタイプには、トレースを簡単に検索して表示できるクエリビルダーが用意されています。
これは OpenTelemetry データ向けに設計されていますが、別のスキーマのトレースを表示するためにカラムを選択することもできます。
デフォルトはデータソースのトレース設定で設定でき、クエリビルダーにデフォルトのデータベース/テーブルとカラムを事前に読み込ませることができます。デフォルトが設定されている場合、カラム選択は既定で折りたたまれます。
また、OpenTelemetry を有効にすると、スキーマバージョンに応じてカラムを自動選択できます。
既定のフィルターは、トップレベルの span のみを表示する目的で追加されています。
また、Time カラムと Duration Time カラムに対する ORDER BY も含まれています。
これらのフィルターはそれぞれ対応するフィールドに紐付いており、カラムを変更すると更新されます。
Service Name フィルターは既定では SQL に含まれず、IS ANYTHING オプションから変更した場合に有効になります。
トレースクエリタイプはデータリンクをサポートしています。
このクエリタイプでは、Trace Search モードではデータがテーブルビューで表示され、Trace ID モードではトレースパネルで表示されます。
クエリビルダーでは対応できないような複雑なクエリには、SQL エディタを使用できます。
プレーンな ClickHouse SQL を記述して実行できるため、クエリを完全に制御できます。
SQL エディタは、クエリエディタ上部の “SQL Editor” を選択すると開けます。
このモードでも マクロ関数 を引き続き使用できます。
クエリに最適な可視化を表示するために、クエリタイプを切り替えることもできます。
この切り替えはダッシュボード表示にも影響し、特に時系列データで顕著です。
Grafana の data links
を使うと、新しいクエリへリンクできます。
この機能は、トレースからログへ、またログからトレースへリンクできるように、ClickHouse プラグインで有効化されています。最も効果的に利用するには、data source’s config でログとトレースの両方に対して OpenTelemetry を設定してください。
テーブル内のトレースリンクの例
ログ内のトレースリンクの例
クエリで traceID という名前のカラムを選択すると、データリンクを作成できます。この名前は大文字と小文字を区別せず、“ID” の前にアンダースコアを付けた形式にも対応しています。たとえば、traceId、TraceId、TRACE_ID、tracE_iD はいずれも有効です。
ログ または トレース のクエリで OpenTelemetry が有効になっている場合、トレース ID カラムが自動的に含まれます。
トレース ID カラムを含めると、データに「View Trace」および「View Logs」のリンクが追加されます。
データリンクがあると、指定された trace ID を使って トレース と ログ を開けます。
“View Trace” をクリックすると、trace を表示する分割パネルが開きます。“View Logs” をクリックすると、trace ID で絞り込まれた ログ クエリが開きます。
Explore ビューではなくダッシュボードからリンクをクリックした場合、そのリンクは Explore ビューの新しいタブで開きます。
クエリタイプをまたぐ場合 (ログ から トレース、トレース から ログ) は、ログ と トレース の両方でデフォルトを設定しておく必要があります。同じクエリタイプのリンクを開く場合は、クエリをそのままコピーできるため、デフォルトは不要です。
ログ クエリ (左パネル) から trace (右パネル) を表示する例
マクロは、クエリに動的な SQL を追加するためのシンプルな方法です。
クエリが ClickHouse server に送信される前に、プラグインがマクロを展開して完全な式に置き換えます。
SQL エディタとクエリビルダーのどちらのクエリでも、マクロを使用できます。
マクロはクエリ内のどこでも使用でき、必要に応じて複数回指定できます。
$__timeFilter マクロの使用例を以下に示します。
入力:
最終的なクエリの出力:
この例では、Grafana ダッシュボードの時間範囲が log_time カラムに適用されます。
このプラグインは、中括弧 {} を使う記法にも対応しています。parameters 内でクエリが必要な場合は、この記法を使用してください。
これは、プラグインで使用できるすべてのマクロの一覧です。