GPUの監視
Instana のUIでGPUのメトリクスを監視できます。 GPUmetricsを監視するには、 NVIDIA GPU Operatorをインストールし、 Instana Distribution of OpenTelemetry Collector( IDOT )やオープンソースの OpenTelemetry Collectorなどの OpenTelemetry-based データコレクターを設定してください。
NVIDIA GPU Operator
GPU環境に NVIDIA GPU Operatorをインストールすることで、GPUメトリクスの管理や収集が可能になります。 必要に応じて、 NVIDIA ドライバー(CUDAを有効にするため)、GPU用の Kubernetes デバイスプラグイン、および NVIDIA コンテナツールキットなどのコンポーネントを有効にしてください。 詳細については、 NVIDIA GPU Operator を参照してください。
helm install gpu-operator \
--repo https://helm.ngc.nvidia.com/nvidia \
--namespace gpu-operator \
--create-namespace \
-set driver.enabled=false \
-set toolkit.enabled=false \
-set devicePlugin.enabled=false \
-set mig.strategy=single \
gpu-operator
NVIDIA のGPUオペレーターは、デフォルトで NVIDIA Data Center GPU Manager(DCGM)をインストールします。 DCGM Exporterは、 NVIDIA 用DCGMツールであり、ユーザーがGPUメトリクスを収集してワークロードの挙動を把握したり、クラスタ内のGPUを監視したりできるようにするものです。
DCGM Exporterは、監視ソリューション向けに、 HTTP エンドポイント(/metrics)でGPUメトリクスを公開します。 詳細については、 「DCGM Exporter」 を参照してください。
Instana DCGMエクスポーターを通じてMIG(マルチインスタンスGPU)をサポートし、パーティション化されたGPUの使用状況を可視化します。 MIGインスタンスごとに個別にメトリクスを収集できるため、共有環境においてGPUリソースをより効果的に監視・割り当てることができます。
OpenTelemetry-based データ収集担当者
「 OpenTelemetry 」コレクターを使用することで、GPUの OpenTelemetry データを「 Instana 」エージェントまたは「 Instana 」バックエンドに転送できます。
- Instana OpenTelemetry Collector( IDOT )のディストリビューション: IDOT は、GPUの監視設定を簡素化する、あらかじめ設定済みで最適化されたディストリビューションです。 詳細については、 IDOT および「 OpenTelemetry 」プロジェクトをご覧ください。
- オープンソースの OpenTelemetry コレクター: OpenTelemetry コレクターは、 OpenTelemetry エコシステムのコアコンポーネントであり、テレメトリデータの収集と処理のためのベンダーに依存しない機能を提供します。また、 IDOT が利用できない環境や、 exportFor のカスタム展開においても利用可能です。 詳細については、 「 OpenTelemetry Collector」 を参照してください。
Instana 以下のモデルに対応し、GPUデータを収集します:
- エージェントモデル:このパターンでは、GPUデータはまず Instana エージェントに送信され、エージェントがデータの集約を支援した上で、 Instana バックエンドに送信します。
- エージェントレスモデル:このパターンでは、GPUデータはエージェントを経由せずに、 Instana バックエンドに直接送信されます。
テレメトリデータを Instana エージェントに転送する(エージェントパターン)
- 以下のスニペットは、 OpenTelemetry コレクターがprotocolを使用して、テレメトリデータをローカルの
OTLP/gRPCInstana ホストエージェントに転送するための典型的な設定を示しています。次のように、 config.yaml などの ` YAML ` ファイルを作成します
receivers: otlp: protocols: grpc: prometheus/nvidia-dcgm: config: scrape_configs: - job_name: 'nvidia-dcgm' scrape_interval: 10s static_configs: - targets: - "$(DCGM_EXPORTOR_ENDPOINT)" processors: batch: resource: attributes: - key: server.address from_attribute: net.host.name action: insert - key: server.port from_attribute: net.host.port action: insert - key: service.name value: nvidia-dcgm action: update - key: INSTANA_PLUGIN value: dcgm action: insert exporters: otlp: endpoint: "$(INSTANA_AGENT_HOST):4317" tls: insecure: true service: pipelines: metrics/nvidia-dcgm: receivers: [prometheus/nvidia-dcgm] processors: [batch, resource] exporters: [otlp]注: Data Center GPU Manager(DCGM)は、GPUの監視および管理を行うための NVIDIA ツールです。 このエクスポーターは、 Prometheus によるスクレイピング用にGPUメトリクスを公開します。 DCGM_EXPORTER_ENDPOINT は、DCGM エクスポーターが実行されるエンドポイントを表します。 例えば、DCGMの値は 127.0.0.1:9400 です。以下の例は、
OTLP/HTTPプロトコルを使用してテレメトリデータをローカルの Instana ホストエージェントに転送するための、 OpenTelemetry コレクターの一般的な設定を示しています。exporters: otlphttp: endpoint: "http://$(INSTANA_AGENT_HOST):4318" tls: insecure: true- DCGM Exporterのエンドポイントを使用して、フィールド
DCGM_EXPORTOR_ENDPOINTを設定します。 - 接続先の Instana エージェントのIPアドレスまたはホスト名を
INSTANA_AGENT_HOSTこのフィールドに入力してください。 - Instana OTLP の標準ポート番号を使用します。例えば、4317は
OTLP/gRPC、4318はOTLP/HTTP、などです。
- DCGM Exporterのエンドポイントを使用して、フィールド
- ファイル
config.yaml内のすべての設定変更が完了したら、次のコマンドを実行して OpenTelemetry コレクターを使用してください:
docker run -d -p 4317:4317 -v $(pwd)/config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:latest
テレメトリデータを Instana バックエンドに転送する(エージェントレス方式)
OpenTelemetry Collector を使用して OpenTelemetry のデータを Instana バックエンドに転送するには、以下の手順を実行してください:
前のセクションで作成した ` config.yaml ` のような ` YAML ` ファイルを作成します。 Instana のエージェントエンドポイントを
endpoint、 Instana のバックエンドエンドポイントに変更してください。 OpenTelemetry のデータが送信される際、バックエンドコンポーネントotlp-acceptorの特別なエンドポイントが使用されます。 Instana のバックエンドでは、検証のために Instana のエージェントキーが必要です。 Instana バックエンドでは、リソース属性としてhost.iddevice.id、faas.id、またはが必要となります。exporters: otlp: endpoint: INSTANA_OTLP_GRPC_BACKEND:4317 headers: x-instana-key: xxxxxxx x-instana-host: xxxx注:
- Instana
otlp-acceptorバックエンドのコンポーネントの正しいドメイン名を、このINSTANA_OTLP_GRPC_BACKENDフィールドに設定してください。 Instana バックエンドのエンドポイントに関する詳細については、 「Self-Hosted Instana バックエンド otlp-acceptor のエンドポイント」 またはotlp-acceptor「 SaaS Instana バックエンド otlp-acceptor のエンドポイント」 を参照してください - Instana バックエンドをターゲットにするため、 Instana
x-instana-keyエージェントのエージェントキーをフィールドに設定します。 エージェントキーを確認するには、 Instana UIのナビゲーションバーで [More] > [Agents] をクリックし、次に [Install Agents ] > [ Windows ] をクリックします。 - アプリケーションまたはシステムに、
faas.id、またはdevice.idリソースhost.id属性が定義されていない場合は、ホスト ID をx-instana-hostフィールドに設定してください。 - Instana OTLP の標準ポート番号を使用します。例えば、4317は
OTLP/gRPC、4318はOTLP/HTTP、などです。 ポート443もサポートされていますOTLP/HTTP。
- Instana
- ファイル
config.yaml内のすべての設定変更が完了したら、次のコマンドを実行して OpenTelemetry コレクターを使用してください:
docker run -d -p 4317:4317 -v $(pwd)/config.yaml:/etc/otelcol-contrib/config.yaml otel/opentelemetry-collector-contrib:latest
メトリックの表示
OpenTelemetry ( OTel )データコレクターをインストールすると、 Instana のUIでGPUのメトリクスを確認できるようになります。
- 「 Instana 」のUIを開き、「 Infrastructure 」をクリックします。 次に、 「インフラストラクチャの分析」 をクリックします。
- エンティティのタイプ一覧から 「OTEL Dcgm」 を選択してください。
- 「 OTEL Dcgm 」エンティティ・タイプのインスタンスをクリックすると、関連するダッシュボードが開きます。
GPUメトリック
| メトリック | 説明 |
|---|---|
| DCGM_FI_DEV_GPU_TEMP | GPUの温度(摂氏) |
| DCGM_FI_DEV_POWER_USAGE | 消費電力(ワット) |
| DCGM_FI_DEV_GPU_UTIL | GPU使用率(%) |
| DCGM_FI_DEV_MEM_COPY_UTIL | メモリコピーエンジンの使用率 |
| DCGM_FI_DEV_FB_USED | 使用済みのフレームバッファメモリ |
| DCGM_FI_DEV_FB_FREE | 空きフレームバッファメモリ |
| DCGM_FI_DEV_SM_CLOCK | ストリーミング・マルチプロセッサのクロック周波数 |
| DCGM_FI_DEV_MEM_CLOCK GPU | メモリクロック周波数 |