可視化の作成
GROUP BY クエリに対応しており、選択した次元に対して集計するメトリクスを定義します。
たとえば、サービス名ごとにグループ化したエラーの件数 (count()) をチャートとして表示できます。
以下の例では、sql.clickhouse.com で利用できるリモートデータセットを使用します。これはガイド「Remote Demo Dataset」で説明されています。また、play-clickstack.clickhouse.com にアクセスして、これらの例を再現することもできます。
Chart Explorer に移動する
左側のメニューからChart Explorer を選択します。可視化を作成する
以下の例では、サービス名ごとの平均リクエスト時間を時系列でチャートとして表示します。これには、メトリクス、カラム (SQL 式を指定することも可能) 、および集計フィールドを指定する必要があります。上部メニューからLine/Bar の可視化タイプを選択し、続いて Traces データセット (play-clickstack.clickhouse.com を使用している場合は Demo Traces) を選択します。次の値を入力してください。- Metric:
Average - Column:
Duration/1000 - Where:
<empty> - Group By:
ServiceName - Alias:
Average Time
WHERE 句または Lucene 構文のいずれかを使ってフィルタでき、イベントを可視化する時間範囲も設定できます。複数の系列にも対応しています。たとえば、フィルタ ServiceName:\"frontend\" を追加して、サービス frontend でフィルタします。さらに、Add Series をクリックして、エイリアス Count を持つ時系列のイベント件数の 2 つ目の系列を追加します。可視化は、メトリクス、トレース、ログなど、任意のデータソースから作成できます。ClickStack はこれらすべてをワイドイベントとして扱います。任意の numeric column を時系列でチャート化でき、string、date、または numeric のカラムをグループ化に使用できます。この統一されたアプローチにより、一貫性があり柔軟なモデルを使って、テレメトリーの種類をまたいだダッシュボードを構築できます。
ダッシュボードの作成
Dashboards を開く
左側のメニューからDashboards を選択します。次に New Dashboard をクリックして、一時的なダッシュボードまたは保存済みのダッシュボードを作成します。可視化を作成する – サービスごとの平均リクエスト時間
Add New Tileを選択して、可視化作成パネルを開きます。上部メニューからLine/Barの可視化タイプを選択し、続いてTraces (play-clickstack.clickhouse.comを使用している場合はDemo Traces) データセットを選択します。次の値を入力して、サービス名ごとの平均リクエスト所要時間を時系列で表示するチャートを作成します。- Chart Name:
Average duration by service - Metric:
Average - Column:
Duration/1000 - Where:
<empty> - Group By:
ServiceName - Alias:
Average Time
Saveをクリックする前に、playボタンをクリックします。可視化のサイズを変更し、ダッシュボードの全幅に広がるようにします。可視化を作成する – サービス別のイベント数の推移
Add New Tileを選択して、可視化作成パネルを開きます。上部メニューからLine/Barの可視化タイプを選択し、続いてLogs (play-clickstack.clickhouse.com を使用している場合はDemo Logs) データセットを選択します。次の値を設定して、サービス名ごとのイベント数の推移を示すチャートを作成します。- Chart Name:
Event count by service - Metric:
Count of Events - Where:
<empty> - Group By:
ServiceName - Alias:
Count of events
Saveをクリックする前に、playボタンをクリックします。可視化のサイズを調整して、ダッシュボードの全幅に広げます。スパン継続時間のヒートマップタイルを追加する
ヒートマップタイルは、各 (time, value) バケットに入るイベント数を色付きのグリッドで表示します。平均値や単一のパーセンタイルだけでなく、時間に伴う分布の形を見たい場合に、ヒートマップは有効です。レイテンシのヒートマップを使うと、二峰性の継続時間パターン、低速側の裾に現れるクラスター、あるいは折れ線グラフでは平均化されて見えなくなる急激な広がりを把握できます。ヒートマップタイルを追加するには:Add New Tileを選択します。- 上部メニューから可視化タイプ
Heatmapを選択します。data source のドロップダウンには、source type がTracesのソースだけが表示されます。ヒートマップには traces ソースでのみ提供される span duration カラムが必要なため、logs、metrics、session ソースは除外されます。 - traces ソースを名前で 1 つ選択します。名前自体は任意で、重要なのは type だけです。
- Value: ソースの
Duration Expression。現在の表示単位に合わせてスケーリングされます (たとえば、各イベントのスパン継続時間をナノ秒からミリ秒に変換するには(Duration)/1e6) - Count:
count()
- chart 名を設定し、
Whereを使って、パフォーマンスを観測したい特定のサービスまたは一連のオペレーションにヒートマップの対象を絞ります。 - 関心のある期間に合わせて時間範囲を調整します。より広い範囲を指定すると、短いウィンドウでは見えにくい分布の変化や二峰性のレイテンシパターンを把握できます。
Run をクリックして chart をプレビューし、次に Save をクリックします。保存したタイルは、ダッシュボード上でヒートマップとして表示されます。任意のセルにホバーすると、バケットの範囲とイベント数を確認できます。イベントデルタにドリルダウンする
表示されたヒートマップタイル内の任意のセルをクリックすると、View in Event Deltas アクションが開きます。これを選択すると、タイルの data source、Where clause、時間範囲が引き継がれた状態で イベントデルタ ビューが開きます。そこから、同じ分布を対話的に調べたり、attribute ごとに切り分けて低速の spans が高速のものと何が違うのかを確認したり、手作業でクエリを組み直すことなく、任意のセルの背後にある個々の spans を調査したりできます。ダッシュボードのフィルター
Lucene または SQL のフィルターは、時間範囲とあわせてダッシュボード レベルで適用でき、すべての可視化に自動的に反映されます。例として、Lucene フィルターServiceName:"frontend" をダッシュボードに適用し、時間範囲を過去 3 時間に変更します。可視化に frontend サービスのデータだけが反映されるようになることを確認してください。ダッシュボードは自動保存されます。ダッシュボード名を設定するには、タイトルを選択して編集し、Save Name をクリックします。ダッシュボード - 可視化の編集
ダッシュボード - 一覧と検索
ダッシュボード - タグ付け
- 整理方法: タグは左側のサイドバーに表示され、ダッシュボードと保存済み検索は割り当てられたタグごとにグループ化されます
- 複数のタグ: 1 つの項目に複数のタグを追加して、より適切に分類できます
- 自動作成: まだ存在しないタグを割り当てると、そのタグは自動的に作成されます
- 簡単な管理: 整理方法に合わせて、タグはいつでも追加または削除できます
カスタムフィルタ
Edit Filters ダイアログを開く
保存済みダッシュボードを開き、ツールバーから Edit Filters を選択します。新しいフィルタを追加する
Add new filter をクリックします。Name を入力し、Data source を選択し、Filter expression (ドロップダウンに表示する値を生成する SQL のカラムまたは式) を入力してフィルタを設定します。Save filter をクリックします。たとえば、トレースデータ用のサービスフィルタを追加するには、Traces データソースで ServiceName をフィルタ式として使用します。“Dropdown values filter” は任意で、ドロップダウンに表示する値を絞り込めます。Filters モーダルには、そのダッシュボードに設定されているすべてのフィルタが表示されます。ここから既存のフィルタを編集または削除したり、追加したりできます。フィルタを使用する
Filters モーダルを閉じます。新しいドロップダウンフィルタが検索バーの下に表示されます。クリックして利用可能な値を確認し、1 つ選択すると、ダッシュボード上のすべての可視化にフィルタが適用されます。(任意) フィルタ値をデフォルトとして保存する
フィルタの選択をダッシュボードのデフォルトとして保持するには、ダッシュボードメニューから Save Query & Filters as Default を選択します。以後、ダッシュボードは選択したフィルタが適用された状態で常に開きます。リセットするには、同じメニューから Remove Default Query & Filters を選択します。カスタムのドロップダウンフィルタは保存済みダッシュボードで利用できます。この機能の実例については、Kubernetes ダッシュボードを参照してください。ここでは、ポッド、デプロイメント、ノード名、ネームスペース、クラスター向けの組み込みドロップダウンフィルタが提供されています。
検索へのドリルダウン
- すべてのイベントを表示 — 選択した時間範囲内のすべてのイベントを表示するSearchページに移動します。
- グループで絞り込む — 特定の系列で絞り込んだSearchページに移動します。
プリセット
ClickHouse ダッシュボード
必要なシステムテーブルへのアクセス権このダッシュボードでは、主要なメトリクスを表示するために ClickHouse の システムテーブル をクエリします。次の権限が必要です。
GRANT SHOW COLUMNS, SELECT(CurrentMetric_MemoryTracking, CurrentMetric_S3Requests, ProfileEvent_OSCPUVirtualTimeMicroseconds, ProfileEvent_OSReadChars, ProfileEvent_OSWriteChars, ProfileEvent_S3GetObject, ProfileEvent_S3ListObjects, ProfileEvent_S3PutObject, ProfileEvent_S3UploadPart, event_time) ON system.metric_logGRANT SHOW COLUMNS, SELECT(active, database, partition, rows, table) ON system.partsGRANT SHOW COLUMNS, SELECT(event_date, event_time, memory_usage, normalized_query_hash, query, query_duration_ms, query_kind, read_rows, tables, type, written_bytes, written_rows) ON system.query_logGRANT SHOW COLUMNS, SELECT(event_date, event_time, hostname, metric, value) ON system.transposed_metric_log