メインコンテンツへスキップ
メインコンテンツへスキップ

ClickStack を用いた可視化とダッシュボード

ClickStack はイベントの可視化をサポートしており、ClickStack UI (HyperDX) にはチャート機能が組み込まれています。これらのチャートはダッシュボードに追加し、他のユーザーと共有できます。

可視化は、トレース、メトリクス、ログ、または任意のユーザー定義のワイドイベントスキーマに基づいて作成できます。

可視化の作成

HyperDX の Chart Explorer インターフェイスを使用すると、メトリクス、トレース、ログを時間経過とともに可視化でき、データ分析用の簡易な可視化をすばやく作成できます。このインターフェイスは、ダッシュボード作成時にも再利用されます。以下のセクションでは、Chart Explorer を使用して可視化を作成する手順を説明します。

各可視化は、まず データソース を選択し、その後に メトリクス を指定し、必要に応じて フィルター式GROUP BY フィールドを設定するところから始まります。概念的には、HyperDX における可視化は、内部的には SQL の GROUP BY クエリとして表現されます。ユーザーは、選択したディメンションに対して集計するメトリクスを定義します。

AI を活用したチャート生成

ClickStack は、text-to-chart 機能を使用して、自然言語のプロンプトからチャートを作成することもサポートしています。表示したい内容を記述すると、ClickStack が自動的に可視化を生成します。

たとえば、サービス名ごとのエラー数 (count()) をグラフ化することができます。

以下の例では、ガイド「Remote Demo Dataset」で説明している、sql.clickhouse.com で利用可能なリモートデータセットを使用します。play-clickstack.clickhouse.com にアクセスすることで、これらの例を再現することもできます。

Chart Explorer に移動する

左側のメニューから 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
Simple visualization

SQL の WHERE 句または Lucene 構文を使用してイベントをフィルタリングできるほか、イベントを可視化する時間範囲も設定できます。複数系列にも対応しています。

たとえば、フィルター ServiceName:"frontend" を追加して、サービス frontend でフィルタリングします。さらに Add Series をクリックし、エイリアス Count を指定して、時間経過におけるイベント数を表す 2つ目の系列を追加します。

Simple visualization 2
注記

可視化は、メトリクス、トレース、ログなど、任意のデータソースから作成できます。ClickStack はこれらすべてをワイドイベント (wide event) として扱います。任意の 数値列 を時間経過でグラフ化でき、文字列日付数値 列をグルーピングに使用できます。

この統一されたアプローチにより、一貫性があり柔軟なモデルを用いて、さまざまなテレメトリ種別にまたがるダッシュボードを構築できます。

ダッシュボードの作成

ダッシュボードは、関連する可視化をまとめて扱えるようにし、ユーザーがメトリクスを比較したり、パターンを並べて確認したりして、システム内の潜在的な根本原因を特定できるようにします。これらのダッシュボードは、アドホックな調査にも、継続的なモニタリング用として保存して利用することもできます。

グローバルフィルターはダッシュボード単位で適用でき、そのダッシュボード内のすべての可視化に自動的に伝播します。これにより、チャート間で一貫したドリルダウンが可能になり、サービスやテレメトリ種別をまたいだイベントの相関付けが容易になります。

以下では、ログとトレースのデータソースを使用して 2 つの可視化を持つダッシュボードを作成します。これらの手順は、ガイド「Remote Demo Dataset」で説明されているように、play-clickstack.clickhouse.com 上、もしくはローカルから sql.clickhouse.com 上のデータセットに接続することで再現できます。

左側のメニューから Dashboards を選択します。

ダッシュボードを作成する

既定では、ダッシュボードはアドホックな調査を支援するため、一時的なものとして扱われます。

自前の HyperDX インスタンスを使用している場合は、Create New Saved Dashboard をクリックすることで、このダッシュボードを後から保存できるようにできます。読み取り専用環境の play-clickstack.clickhouse.com を使用している場合、このオプションは利用できません。

可視化を作成する – サービスごとの平均リクエスト時間

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) ボタンをクリックします。

ダッシュボード可視化 2

可視化のサイズを変更し、ダッシュボードの幅いっぱいに配置します。

ビジュアルを含むダッシュボード 2

ダッシュボードをフィルタリングする

Lucene または SQL フィルターと時間範囲は、ダッシュボードレベルで適用でき、すべての可視化に自動的に伝播します。

フィルタリングされたダッシュボード

例として、ダッシュボードに Lucene フィルター ServiceName:"frontend" を適用し、時間範囲を直近 3 時間(Last 3 hours)を対象とするように変更します。これにより、可視化が frontend サービスのデータのみを反映していることを確認できます。

ダッシュボードは自動的に保存されます。ダッシュボード名を設定するには、タイトルを選択して編集し、Save Name をクリックします。

ダッシュボードの保存

ダッシュボード - ビジュアライゼーションの編集

ビジュアライゼーションを削除、編集、または複製するには、その上にマウスオーバーして表示されるアクションボタンを使用します。

ダッシュボードの編集

ダッシュボードには左側のメニューからアクセスでき、内蔵の検索機能で特定のダッシュボードをすばやく見つけることができます。

ダッシュボード検索

ダッシュボードのタグ付け

ダッシュボードや保存済み検索にタグを追加して、整理しやすくできます。 タグは、用途に応じて項目を分類したりフィルタリングしたりするための柔軟な手段です。

タグの仕組み

  • 整理: タグは左サイドバーに表示され、ダッシュボードや保存済み検索は割り当てられたタグごとにグループ化されます
  • 複数タグ: より細かく分類できるように、1つのアイテムに1つ以上のタグを追加できます
  • 自動作成: まだ存在しないタグを割り当てた場合、そのタグは自動的に作成されます
  • 簡単な管理: 構成を調整できるように、いつでもタグを追加・削除できます

これにより、関連するアイテムを簡単に見つけられ、コレクションが増えても整理されたワークスペースを維持できます。

保存済み検索でのタグ

複数のタグを選択して、異なるカテゴリにまたがるアイテムを絞り込んで表示することもできます。

ダッシュボードで複数のタグを選択した状態

すべてのダッシュボードで利用できるフリーテキストフィルタに加え、保存済みダッシュボードでは、ClickHouse にクエリして取得したデータから値が入力されるカスタムのドロップダウンフィルタを利用できます。これにより、再利用可能なクリック操作ベースのフィルタコントロールが提供されるため、ダッシュボードの閲覧者は式を手動で記述せずにフィルタリングできます。

利用可能なサービス名を表示するサービスのドロップダウンフィルタ

以下の手順では、"ダッシュボードの作成"セクションで作成したダッシュボードにカスタムフィルタを追加する方法を示します。

Edit Filters ダイアログを開く

保存済みダッシュボードを開き、ツールバーから Edit Filters を選択します。

ダッシュボードのツールバーにある Edit Filters ボタン

新しいフィルタを追加する

Add new filter をクリックします。Name を入力し、Data source を選択して、Filter expression にフィルタ式 (ドロップダウンに表示される一意の値を取得する SQL のカラムまたは式) を入力し、フィルタを設定します。Save filter をクリックします。

たとえば、トレースデータ用のサービスフィルタを追加するには、Traces データソースで ServiceName をフィルタ式として使用します。

Name、Data source、Filter expression の各フィールドがある Add filter ダイアログ

Filters モーダルには、そのダッシュボードに設定されているすべてのフィルタが表示されます。ここから既存のフィルタを編集または削除したり、追加のフィルタを加えたりできます。

設定済みの Services フィルタを表示する Filters モーダル

フィルタを使用する

Filters モーダルを閉じます。新しいドロップダウンフィルタが検索バーの下に表示されます。これをクリックして利用可能な値を確認し、1 つ選択すると、ダッシュボード上のすべてのビジュアライゼーションをフィルタリングできます。

frontend サービスでフィルタリングされたダッシュボード

(任意) フィルタ値をデフォルトとして保存する

選択したフィルタをダッシュボードのデフォルトとして保持するには、ダッシュボードメニューから Save Query & Filters as Default を選択します。以後、そのダッシュボードは選択したフィルタが適用された状態で常に開きます。リセットするには、同じメニューから Remove Default Query & Filters を選択します。

Save Query and Filters as Default オプションを表示するダッシュボードメニュー
注記

カスタムのドロップダウンフィルタは保存済みダッシュボードで利用できます。このパターンの実例については、Kubernetes ダッシュボードを参照してください。ここでは、ポッド、デプロイメント、ノード名、ネームスペース、クラスタ向けの組み込みドロップダウンフィルタが提供されています。

ダッシュボードのタイルでは、検索 ページへのドリルダウンを利用できます。ビジュアライゼーション内のデータポイントをクリックすると、次のオプションを含むコンテキストメニューが開きます。

  • View All Events — 選択した時間範囲内のすべてのイベントを表示する検索ページに移動します。
  • Filter by group — 特定の系列でフィルタリングされた検索ページに移動します。
Drilldown context menu showing View All Events and Filter by group options

これは、ダッシュボードで見つけた特定のスパイクや異常を調査する際に役立ちます。集計ビューから、基になる個々のイベントへすばやく切り替えられます。

プリセット

HyperDX は、標準のダッシュボード付きでデプロイされます。

ClickHouse ダッシュボード

このダッシュボードは、ClickHouse を監視するための可視化を提供します。このダッシュボードに移動するには、左側のメニューからこのダッシュボードを選択します。

ClickHouse ダッシュボード

このダッシュボードでは、SelectsInsertsClickHouse Infrastructure の監視をタブで切り替えて表示します。

必要な system テーブルへのアクセス権

このダッシュボードは、主要なメトリクスを可視化するために ClickHouse の system テーブル を参照します。以下の権限が必要です。

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_log

GRANT SHOW COLUMNS, SELECT(active, database, partition, rows, table) ON system.parts

GRANT 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_log

GRANT SHOW COLUMNS, SELECT(event_date, event_time, hostname, metric, value) ON system.transposed_metric_log

サービスダッシュボード

サービスダッシュボードは、トレースデータに基づいて現在アクティブなサービスを表示します。これには、トレースが収集されており、有効な Traces データソースが構成されている必要があります。

サービス名はトレースデータから自動検出され、HTTP Services、Database、Errors の 3 つのタブに整理された一連の事前構築済みの可視化が提供されます。

可視化は Lucene または SQL の構文を使用してフィルタリングでき、時間範囲を調整して分析対象を絞り込むことができます。

ClickHouse services

Kubernetes ダッシュボード

このダッシュボードでは、OpenTelemetry を通じて収集された Kubernetes イベントを確認・探索できます。高度なフィルタリング機能を備えており、Kubernetes のポッド、デプロイメント、ノード名、ネームスペース、クラスターでの絞り込みに加えて、フリーテキスト検索も実行できます。

Kubernetes のデータは、容易にナビゲーションできるように「Pods」「Nodes」「Namespaces」の 3 つのタブに整理されています。

ClickHouse kubernetes