メトリクスを可視化する
AIBoosterの性能ダッシュボードは、データの保存先として列指向データベースのClickHouseを、可視化にはGrafanaを採用しています。 ClickHouseが提供する強力なクエリ機能とGrafanaによる可視化パネルを組み合わせることで、収集したテレメトリシグナルを様々な角度から分析できるようになります。
標準ダッシュボードの概要
AIBoosterには、観測した様々なメトリクスを可視化するためのダッシュボードが標準で用意されています。 左メニューから「Dashboards」を選択すると、複数のダッシュボードがあることがわかります。
AIBoosterのダッシュボードは、性能観点(Performance-という名称のもの)とコスト観点 (Cost-という名称のもの)に分けられます。 AIワークロードの性能を改善したい開発者、研究者の方には性能観点のダッシュボードを、インフラコストの追跡やコスト改善を行いたい方向けにはコスト観点のダッシュボードを使用していただくことを想定しています。
また、Detailsという名前を持つダッシュボードは、Overviewダッシュボードからリンクを通して遷移することを前提としています。 Detailsのダッシュボードを直接開くのではなく、Performance Overview、あるいはCost Overviewを起点として、そこから各ダッシュボードへと遷移してください。
Overviewダッシュボードについては、Performance Overviewの詳細とCost Overviewの詳細をご確認ください。
観測する区間を変更する
標準ダッシュボードでは、右上部のドロップダウンリストから観測する時間の区間を変更できます。
ここでは、現在時刻からの相対時間や絶対時間を使用して観測対象の区間を指定できます。 例えば:
- 過去24時間前から現在まで
- 4/1の午前0時から4/7の午後5時まで
また、時系列グラフの可視化パネル上でドラッグ&ドロップを行うことで、観測対象範囲を選択することができます。 これは、あるメトリクスの変化に着目した上で、他のメトリクスの傾向を観察するための手段として有効です。
カスタムパネルの追加例
標準ダッシュボードに加えて、独自のメトリクス可視化パネルを追加することができます。 Performance Details / Hostで説明されているように、AIBoosterは複数のPrometheusエクスポーターからメトリクスを収集しており、これらのデータを使用してカスタムパネルを作成できます。
パネル追加の手順
- Performance Overviewにおいて、既存ダッシュボードの右上の「Edit」→「Add」→ 「Visualization」をクリック
- 必要に応じて「Panel Title」や「query name」、「Visualization」を設定
- Data sourceで「ClickHouse」を選択
- Editor Typeで「SQL Editor」を選択
- 以下のクエリ例を入力し、「Run Query」をクリック
- 必要に応じて「Save dashboard」をクリック
SELECT
toStartOfInterval(TimeUnix, INTERVAL 30 SECOND) AS time_bucket,
avg(Value) as Value
FROM otel_metrics_gauge
WHERE MetricName = 'メトリクス名'
AND TimeUnix BETWEEN $__fromTime AND $__toTime
GROUP BY time_bucket
ORDER BY time_bucket;
利用可能なメトリクス名は各エクスポーターの公式ドキュメントで確認できます:
- Prometheus Node Exporter - システムメトリクス(CPU、メモリ、ディスク、ネットワーク)
- NVIDIA DCGM Exporter - GPUメトリクス(使用率、温度、電力消費、メモリ使用量)
- Intel PCM Exporter - CPUパフォーマンスカウンター
使用例:GPU電力消費パネル
GPU電力消費(Watt)の可視化:
SELECT
toStartOfInterval(TimeUnix, INTERVAL 30 SECOND) AS time_bucket,
avg(Value) as Value
FROM otel_metrics_gauge
WHERE MetricName = 'DCGM_FI_DEV_POWER_USAGE'
AND TimeUnix BETWEEN $__fromTime AND $__toTime
GROUP BY time_bucket
ORDER BY time_bucket;