TPU VM をモニタリングする

このガイドでは、Cloud Monitoring を使用して TPU VM をモニタリングする方法について説明します。Cloud Monitoring は、TPU とそのホスト VM から指標とログを自動的に収集します。これらのデータを使用して、TPU と Compute Engine の状態をモニタリングできます。

指標を使用すると、CPU 使用率、ネットワーク使用量、TensorCore のアイドル期間など、時間の経過に伴う数値を追跡できます。ログは特定の時点でのイベントをキャプチャします。ログエントリは、独自のコード、Google Cloud サービス、サードパーティ アプリケーション、Google Cloud インフラストラクチャによって作成されます。ログベースの指標を作成して、ログエントリに存在するデータから指標を生成することもできます。指標値またはログエントリに基づいてアラート ポリシーを設定することもできます。

TPU をモニタリングするには、キャパシティ プランナー(プレビュー)も使用できます。キャパシティ プランナーを使用すると、プロジェクト、フォルダ、組織の TPU の使用状況と予測データを表示できます。このデータは 24 時間ごとに更新され、使用状況の傾向を分析して、今後の容量ニーズを計画するために使用できます。詳細については、キャパシティ プランナーの概要をご覧ください。

TPU 指標にアクセスする

Compute Engine は、TPU ランタイム指標と TPU VM インフラストラクチャ指標の 2 種類の TPU 指標を生成します。指標は次の 2 つの方法で取得できます。

  • TPU Monitoring ライブラリ: TPU Monitoring ライブラリを使用して、LibTPU SDK から TPU ランタイム指標を取得します。これにより、アプリケーションはゲスト環境内からリアルタイムのテレメトリーを取得できます。詳細については、TPU Monitoring Library をご覧ください。

  • AI テレメトリー コレクタ: AI テレメトリー コレクタを介して、ランタイム指標と VM インフラストラクチャ指標を取得します。AI Telemetry Collector は TPU VM 内で実行され、Cloud Monitoring または独自の Prometheus ベースのモニタリング パイプラインを介して指標にアクセスできます。詳細については、AI Telemetry Collector をご覧ください。

TPU 指標

Cloud TPU のGoogle Cloud 指標は、Compute Engine VM と Cloud TPU ランタイムによって自動的に生成されます。次の表の指標は、Compute Engine VM によって生成されます。Compute Engine によって生成される指標の完全なリストについては、 Compute Engine の指標をご覧ください。

次の表の指標タイプの文字列には、compute.googleapis.com/ という接頭辞を付ける必要があります。この接頭辞は、表中の項目では省略されています。ラベルをクエリする場合は、metric.labels 接頭辞を使用します(例: metric.labels.LABEL="VALUE")。

一般提供(GA)

指標タイプリリース ステージ (リソース階層レベル)
表示名
種類、タイプ、単位
モニタリング対象リソース
説明
ラベル
instance/tpu/active_chips GA  (プロジェクト)
アクティブな TPU チップ数
GAUGE、INT64、1
gce_instance
現在アクティブに使用されている(アイドル状態ではない)チップの数。
accelerator_type: アクセラレータのタイプと世代。
reservation_id: 物理マシンの予約の ID。
provisioning_model: 関連付けられたプロビジョニング モデル。
protection_tier: 関連付けられた保護モデル。
block_id: VM をホストするクラスタ内のブロックの ID。
subblock_id: VM をホストするサブブロックの ID。
is_exr: (BOOL) チップが拡張予約の一部かどうかを示します。
instance/tpu/scheduled_chips GA  (プロジェクト)
スケジュールされた TPU チップの数
GAUGE、INT64、1
gce_instance
HEALTHY で、メンテナンスのために無効になっていない VM に割り当てられているチップの現在の数。
accelerator_type: アクセラレータのタイプと世代。
reservation_id: 物理マシンの予約の ID。
provisioning_model: 関連付けられたプロビジョニング モデル。
protection_tier: 関連付けられた保護モデル。
block_id: VM をホストするクラスタ内のブロックの ID。
subblock_id: VM をホストするサブブロックの ID。
is_exr: (BOOL) チップが拡張予約の一部かどうかを示します。
tpu/slice/capacity/available_chips GA  (プロジェクト)
使用可能な TPU チップ数
GAUGE、INT64、1
compute.googleapis.com/AcceleratorSlice
現在アクティブに使用可能で、すぐに使用できる拡張予約の TPU チップの数。60 秒ごとにサンプリングされます。サンプリング後、データは最長 360 秒間表示されません。
accelerator_type: アクセラレータのタイプと世代。
reservation_id: 物理マシンの予約の ID。
block_id: スライスに関連付けられたブロック ID。
subblock_id: スライスに関連付けられたサブブロック ID。
provisioning_model: 関連付けられたプロビジョニング モデル。
protection_tier: 関連付けられた保護モデル。
tpu/slice/capacity/committed_chips GA  (プロジェクト)
購入した TPU チップの数
GAUGE、INT64、1
compute.googleapis.com/AcceleratorSlice
拡張予約で購入された TPU チップの現在の数。60 秒ごとにサンプリングされます。サンプリング後、データは最長 360 秒間表示されません。
accelerator_type: アクセラレータのタイプと世代。
reservation_id: 物理マシンの予約の ID。
block_id: スライスに関連付けられたブロック ID。
subblock_id: スライスに関連付けられたサブブロック ID。
provisioning_model: 関連付けられたプロビジョニング モデル。
protection_tier: 関連付けられた保護モデル。

ベータ版

指標タイプリリース ステージ (リソース階層レベル)
表示名
種類、タイプ、単位
モニタリング対象リソース
説明
ラベル
instance/tpu/accelerator/duty_cycle ベータ版  (プロジェクト)
アクセラレータのデューティ サイクル
GAUGE、DOUBLE、%
gce_instance
サンプル期間中にアクセラレータがアクティブに処理していた時間の割合。値の範囲は 0 ~ 100 です。
accelerator_id: アクセラレータのデバイス ID。
instance/tpu/accelerator/memory_bandwidth_utilization ベータ版  (プロジェクト)
アクセラレータのメモリ帯域幅使用率
GAUGE、DOUBLE、%
gce_instance
使用されているアクセラレータ メモリ帯域幅の現在の割合。サンプル期間で使用されたメモリ帯域幅を、同じサンプル期間でサポートされる最大帯域幅で割って計算されます。
accelerator_id: アクセラレータのデバイス ID。
instance/tpu/accelerator/memory_total ベータ版  (プロジェクト)
アクセラレータの合計メモリ
GAUGE、INT64、By
gce_instance
現在割り当てられているアクセラレータの合計メモリ量(バイト単位)。
accelerator_id: アクセラレータのデバイス ID。
instance/tpu/accelerator/memory_used ベータ版  (プロジェクト)
使用されているアクセラレータ メモリ
GAUGE、INT64、By
gce_instance
現在使用されているアクセラレータの合計メモリ量(バイト単位)。
accelerator_id: アクセラレータのデバイス ID。
instance/tpu/accelerator/tensorcore_utilization ベータ版  (プロジェクト)
アクセラレータ TensorCore 使用率
GAUGE、DOUBLE、%
gce_instance
使用されている TensorCore の現在の割合。サンプル期間に実行された Tensorcore オペレーションを、同じサンプル期間にサポートされている Tensorcore オペレーションの数で割って計算されます。
accelerator_id: アクセラレータのデバイス ID。
instance/tpu/chip_state ベータ版  (プロジェクト)
TPU チップの状態数
GAUGE、INT64、1
gce_instance
正常、異常、不明などのさまざまな状態の TPU チップの数。
state: チップの状態。
accelerator_type: アクセラレータのタイプと世代。
block_id: VM をホストするクラスタ内のブロックの ID。
subblock_id: VM をホストするサブブロックの ID。
reservation_id: 物理マシンの予約の ID。
is_exr: (BOOL) チップが拡張予約の一部かどうかを示します。
instance/tpu/infra_health ベータ版  (プロジェクト)
TPU インスタンスの健全性
GAUGE、INT64、1
gce_instance
TPU インスタンスの全体的な健全性ステータスを示します。指標ラベルは、TPU ハードウェアとシステムの健全性に主に焦点を当て、TPU インスタンスのパフォーマンス低下や異常に関する特定の健全性ステータスと問題の原因を特定するのに役立ちます。ヘルス ステータスの変更がこの指標に反映されるまでに数分かかることがあります。60 秒ごとにサンプリングされます。サンプリング後、データは最長 420 秒間表示されません。
health_status: TPU インスタンスの全体的な健全性。有効な値: HEALTHY(想定どおりに動作)、UNHEALTHY(重大な問題が検出された)、DEGRADED(パフォーマンスに影響する問題)、UNKNOWN(ステータスを特定できない)。
unhealthy_category: VM のステータスが異常である理由。このラベルは、指標の値が Unhealthy の場合にのみ入力されます。
machine_type: インスタンスのマシンタイプ(例: ct6e-standard-4t-tpu)。
machine_id: VM をホストする物理マシンの ID。
block_id: VM をホストするクラスタ内のブロックの ID。
cluster_id: VM をホストするクラスタの ID。
reservation_id: 物理マシンの予約の ID。
subblock_id: VM をホストするサブブロックの ID。
instance/tpu/runtime/uptime ベータ版  (プロジェクト)
ランタイムの稼働時間
GAUGE、INT64、s
gce_instance
ML ジョブによるランタイム ライブラリ(libtpu.so)の初期化以降の ML ランタイムの稼働時間。この期間中、ランタイム ライブラリは ML ジョブで使用する TPU デバイスをブロックします。
ml_framework_name: ML フレームワークの名前。
ml_framework_version: ML フレームワークのバージョン。
instance/tpu/utilized_chips ベータ版  (プロジェクト)
使用された TPU チップ
GAUGE、DOUBLE、1
gce_instance
現在のアグリゲート使用容量。アクティブなチップの有効数として表されます。これは、すべてのアクティブなチップの小数使用率(0.0 ~ 1.0)の合計に相当します。
accelerator_type: アクセラレータのタイプと世代。
reservation_id: 物理マシンの予約の ID。
provisioning_model: 関連付けられたプロビジョニング モデル。
protection_tier: 関連付けられた保護モデル。
block_id: VM をホストするクラスタ内のブロックの ID。
subblock_id: VM をホストするサブブロックの ID。
is_exr: (BOOL) チップが拡張予約の一部かどうかを示します。
tpu/multislice/accelerator/device_to_host_transfer_latencies ベータ版  (プロジェクト)
デバイスからホストへの転送レイテンシ
CUMULATIVE、DISTRIBUTION、us
gce_instance
データチャンクごとのデバイスからホストへの転送レイテンシの累積分布。レイテンシは、ホストに転送するデータのリクエストが発行されたときに始まり、データ転送が完了したという確認応答を受信したときに終わります。
buffer_size: バッファサイズ。
tpu/multislice/accelerator/host_to_device_transfer_latencies ベータ版  (プロジェクト)
ホストからデバイスへの転送レイテンシ
CUMULATIVE、DISTRIBUTION、us
gce_instance
マルチスライス トラフィックのデータチャンクごとの、ホストからデバイスへの転送レイテンシの累積分布。レイテンシは、デバイスに転送するデータのリクエストが発行されたときに始まり、データの転送が完了したという確認応答を受信したときに終わります。
buffer_size: バッファサイズ。
tpu/multislice/network/collective_end_to_end_latencies ベータ版  (プロジェクト)
集合エンドツーエンド レイテンシ
CUMULATIVE、DISTRIBUTION、us
gce_instance
マルチスライス トラフィックのエンドツーエンドの全体的なレイテンシの累積分布。レイテンシは、グループのリクエストが発行されると開始し、データの転送が完了したことを示す確認応答を受信すると終了します。
input_size: コレクティブ オペレーションの入力サイズ。
collective_type: コレクティブ オペレーションのタイプ。
tpu/multislice/network/dcn_transfer_latencies ベータ版  (プロジェクト)
DCN 転送レイテンシ
CUMULATIVE、DISTRIBUTION、us
gce_instance
マルチスライス トラフィックのネットワーク転送レイテンシの累積分布。レイテンシは、DCN 経由で転送されるデータのリクエストが発行されたときに開始され、データの転送が完了したことを示す確認応答が受信されたときに終了します。
buffer_size: バッファサイズ。
type: タイプ。
tpu/multislice/network/grpc_client_call_latencies ベータ版  (プロジェクト)
gRPC クライアント呼び出しのレイテンシ
CUMULATIVE、DISTRIBUTION、us
gce_instance
呼び出し元の観点から gRPC ライブラリが RPC を完了するまでにかかるネットワーク転送レイテンシの累積分布。
buffer_size: バッファサイズ。
tpu/multislice/network/grpc_server_call_latencies ベータ版  (プロジェクト)
gRPC サーバー呼び出しのレイテンシ
CUMULATIVE、DISTRIBUTION、us
gce_instance
gRPC サーバーがトランスポートの観点から RPC を完了するまでのネットワーク転送レイテンシの累積分布。
buffer_size: バッファサイズ。
tpu/multislice/network/grpc_tcp_delivery_rates ベータ版  (プロジェクト)
gRPC TCP 配信率
CUMULATIVE、DISTRIBUTION、Mb/s
gce_instance
TCP 接続のデータ転送速度の累積分布。各サンプルは、特定の TCP 接続における、直近の TCP ACK 間隔での平均データ転送速度の最新値です。データ転送レートのサンプルは、Linux TCP カーネルから 20 秒ごとに取得されるため、TCP 接続ごとに 60 秒間隔で約 3 つのサンプルが作成されることが想定されます。
tpu/multislice/network/grpc_tcp_min_round_trip_times ベータ版  (プロジェクト)
gRPC TCP の最小ラウンドトリップ時間
CUMULATIVE、DISTRIBUTION、us
gce_instance
TCP 接続あたりの最小ネットワーク転送レイテンシの累積分布。
tpu/multislice/network/grpc_tcp_packets_retransmitted_count ベータ版  (プロジェクト)
gRPC TCP パケットの再送信数
CUMULATIVE、INT64、1
gce_instance
再送信されたパケットの合計数。
tpu/multislice/network/grpc_tcp_packets_sent_count ベータ版  (プロジェクト)
gRPC TCP パケット送信数
CUMULATIVE、INT64、1
gce_instance
TCP が送信するパケットの合計数。
instance/tpu/accelerator/core_temperature ベータ版  (プロジェクト)
コア温度
GAUGE、DOUBLE、Cel
gce_instance
TPU のコア温度。
accelerator_id: アクセラレータのデバイス ID。有効な値は 0、1、2、3 です。
instance/tpu/accelerator/core_throttling_indicator ベータ版  (プロジェクト)
コア スロットリング インジケーター
GAUGE、DOUBLE、1
gce_instance
TPU コアあたりの合計クロック サイクル数に対する、1 秒あたりにスキップされたクロック サイクル数。
accelerator_id: アクセラレータのデバイス ID。有効な値は 0、1、2、3 です。
instance/tpu/accelerator/hbm_power_draw ベータ版  (プロジェクト)
HBM の消費電力
GAUGE、DOUBLE、W
gce_instance
HBM モジュールの電力の合計(ワット(W))。
accelerator_id: アクセラレータのデバイス ID。有効な値は 0、1、2、3 です。
instance/tpu/accelerator/hbm_temperature ベータ版  (プロジェクト)
HBM 温度
GAUGE、DOUBLE、Cel
gce_instance
TPU の高帯域幅メモリ(HBM)の温度。
accelerator_id: アクセラレータのデバイス ID。有効な値は 0、1、2、3 です。
hbm_id: 高帯域幅メモリ(HBM)モジュール識別子。通常は、hbm_0 などの上位の値のみが含まれます。
instance/tpu/accelerator/hbm_uncorrectable_count ベータ版  (プロジェクト)
HBM 修正不能数
CUMULATIVE、INT64、1
gce_instance
HBM での訂正不能なエラーの数(致命的)。
accelerator_id: アクセラレータのデバイス ID。有効な値は 0、1、2、3 です。
instance/tpu/accelerator/mxu_temperature ベータ版  (プロジェクト)
MXU 温度
GAUGE、DOUBLE、Cel
gce_instance
TPU の行列乗算ユニット(MXU)の温度。
accelerator_id: アクセラレータのデバイス ID。有効な値は 0、1、2、3 です。
die_id: アクセラレータのスロット インデックス。通常は、die_0 などの最上位の値のみが含まれます。
GAUGE、INT64、1
gce_instance
ICI リンクのアップ状態とダウン状態の間の状態変化の頻度。
accelerator_id: アクセラレータのデバイス ID。有効な値は 0、1、2、3 です。
GAUGE、INT64、1
gce_instance
ICI リンクの健全性を表す数値インジケーター(0 ~ 10)。値が大きいほど、リンクの不安定さのレベルが高くなります。軽微で一時的なフラッピング(1 ~ 5)から、パフォーマンスの持続的な低下(6 ~ 9)まであります。値が 10 の場合は、アクティブなワークロードを自動的に強制排除する致命的なリンク障害を表します。
port_id: ポート ID。
instance/tpu/accelerator/network/ici_packets_received_count ベータ版 ℁(プロジェクト)
受信した ICI パケット数
CUMULATIVE、INT64、1
gce_instance
TPU アクセラレータがチップ間相互接続(ICI)リンクを介して受信したパケットの合計数。
accelerator_id: アクセラレータのデバイス ID。有効な値は 0、1、2、3 です。
instance/tpu/accelerator/network/ici_packets_sent_count ベータ版  (プロジェクト)
ICI 送信パケット数
CUMULATIVE、INT64、1
gce_instance
TPU アクセラレータがチップ間相互接続(ICI)リンクを介して送信したパケットの合計数。
accelerator_id: アクセラレータのデバイス ID。有効な値は 0、1、2、3 です。
instance/tpu/accelerator/pcie_fatal_error_count ベータ版  (プロジェクト)
PCIe 致命的エラー数
CUMULATIVE、INT64、1
gce_instance
PCIe インターフェースで発生した致命的な PCIe エラーの数。
accelerator_id: アクセラレータのデバイス ID。有効な値は 0、1、2、3 です。
instance/tpu/accelerator/pcie_nonfatal_error_count ベータ版  (プロジェクト)
PCIe の致命的でないエラーの数
CUMULATIVE、INT64、1
gce_instance
PCIe インターフェースで発生した致命的でない PCIe エラーの数。
accelerator_id: アクセラレータのデバイス ID。有効な値は 0、1、2、3 です。
instance/tpu/accelerator/power_draw ベータ版  (プロジェクト)
消費電力
GAUGE、DOUBLE、W
gce_instance
アクセラレータの消費電力(ワット(W))。
accelerator_id: アクセラレータのデバイス ID。有効な値は 0、1、2、3 です。
instance/tpu/accelerator/tray_power BETA  (プロジェクト)
トレイの電力
GAUGE、DOUBLE、W
gce_instance
TPU トレイで消費される総電力。
accelerator_id: アクセラレータのデバイス ID。有効な値は 0、1、2、3 です。
instance/tpu/accelerator/tray_temperature ベータ版  (プロジェクト)
トレイの温度
GAUGE、DOUBLE、Cel
gce_instance
TPU のトレイ温度。
accelerator_id: アクセラレータのデバイス ID。有効な値は 0、1、2、3 です。
instance/tpu/failure_prediction_status ベータ版  (プロジェクト)
TPU の劣化ステータス
GAUGE、INT64、1
gce_instance
この指標は、Google 独自のアルゴリズムで予測された、TPU マシンが今後 5 時間以内に劣化状態に入る確率を示します。この指標の値ラベルは、NO_DEGRADATION_PREDICTED、DEGRADATION_PREDICTED、POSSIBLE_DEGRADATION_PREDICTED です。60 秒ごとにサンプリングされます。サンプリング後、データは最長 540 秒間表示されません。
cluster_id: VM をホストするクラスタの難読化されたクラスタ ID。
block_id: VM をホストするクラスタ内の難読化されたブロック ID。
subblock_id: VM をホストしている難読化されたサブブロック ID。
machine_id: VM をホストしている難読化されたマシン名。
reservation_id: 予約 ID。
Value: 独自のアルゴリズムで予測された、今後 5 時間以内に TPU マシンがデグレード状態になるステータス。有効な値は「NO_DEGRADATION_PREDICTED」、「DEGRADATION_PREDICTED」、「POSSIBLE_DEGRADATION_PREDICTED」です。
tpu/capacity/available_chips ベータ版  (プロジェクト)
使用可能な TPU チップ数
GAUGE、INT64、1
compute.googleapis.com/Location
使用可能で、すぐに使用できる TPU チップの現在の数。
accelerator_type: アクセラレータのタイプと世代。
reservation_id: 物理マシンの予約の ID。
provisioning_model: 関連付けられたプロビジョニング モデル。
protection_tier: 関連付けられた保護モデル。
is_exr: TPU チップが拡張予約の一部かどうかを示します。
tpu/capacity/committed_chips ベータ版  (プロジェクト)
購入した TPU チップの数
GAUGE、INT64、1
compute.googleapis.com/Location
購入した TPU チップの現在の数。
accelerator_type: アクセラレータのタイプと世代。
reservation_id: 物理マシンの予約の ID。
provisioning_model: 関連付けられたプロビジョニング モデル。
protection_tier: 関連付けられた保護モデル。
is_exr: TPU チップが拡張予約の一部かどうかを示します。
tpu/network/nic_packets_dropped_count_rx ベータ版  (プロジェクト)
NIC でドロップされたパケット数(受信)
CUMULATIVE、INT64、1
gce_instance
ホスト NIC によってドロップされた受信パケットの合計数。これには、一致するルートがないパケットなど、NIC が意図的にドロップするパケットが含まれます。
nic_id: NIC ID。
tpu/network/nic_packets_dropped_count_tx ベータ版  (プロジェクト)
NIC パケットのドロップ数(送信)
CUMULATIVE、INT64、1
gce_instance
ホスト NIC によってドロップされた送信パケットの合計数。これには、一致するルートがないパケットなど、NIC が意図的にドロップするパケットが含まれます。そのため、ワークロードが実行されていない場合でも、ゼロ以外の小さなレートは正常です。
nic_id: NIC ID。
tpu/network/nic_packets_received_count ベータ版  (プロジェクト)
NIC 受信パケット数
CUMULATIVE、INT64、1
gce_instance
ホスト NIC が受信したパケットの合計数。これには、ワークロード トラフィックだけでなく、すべてのホスト トラフィックが含まれるため、ワークロードが実行されていない場合でもカウントは増加し続けます。
nic_id: NIC ID。
tpu/network/nic_packets_sent_count ベータ版  (プロジェクト)
NIC 送信パケット数
CUMULATIVE、INT64、1
gce_instance
ホスト NIC によって送信されたパケットの合計数。これには、ワークロード トラフィックだけでなく、すべてのホスト トラフィックが含まれるため、ワークロードが実行されていない場合でもカウントは増加し続けます。
nic_id: NIC ID。

アルファ版

指標タイプリリース ステージ (リソース階層レベル)
表示名
種類、タイプ、単位
モニタリング対象リソース
説明
ラベル
quota/tpus_per_tpu_family/exceeded アルファ版  (プロジェクト)
TPU ファミリーあたりの TPU 数の割り当て超過エラー
DELTA、INT64、1
compute.googleapis.com/Location
割り当て指標 compute.googleapis.com/tpus_per_tpu_family の上限超過の試行回数。サンプリング後、データは最長 150 秒間表示されません。
limit_name: 上限名。
tpu_family: TPU ファミリーのカスタム ディメンション。
quota/tpus_per_tpu_family/limit ALPHA  (プロジェクト)
TPU ファミリーあたりの TPU 数。割り当て上限
GAUGE、INT64、1
compute.googleapis.com/Location
割り当て指標 compute.googleapis.com/tpus_per_tpu_family の現在の上限。60 秒ごとにサンプリングされます。サンプリング後、データは最長 150 秒間表示されません。
limit_name: 上限名。
tpu_family: TPU ファミリーのカスタム ディメンション。
quota/tpus_per_tpu_family/usage ALPHA  (プロジェクト)
TPU ファミリーあたりの TPU 数。割り当て使用量
GAUGE、INT64、1
compute.googleapis.com/Location
割り当て指標 compute.googleapis.com/tpus_per_tpu_family の現在の使用量。サンプリング後、データは最長 150 秒間表示されません。
limit_name: 上限名。
tpu_family: TPU ファミリーのカスタム ディメンション。

AI Telemetry Collector

AI Telemetry Collector は、Compute Engine API を使用して作成された TPU の TPU 指標を収集し、compute.googleapis.com Namespace で公開します。これらの指標は、健全性とパフォーマンスを可視化する組み込みのシステム指標です。

AI Telemetry Collector アーキテクチャは、軽量で専用の OpenTelemetry(OTEL)Collector として設計されています。主に 2 つのレシーバーを使用してデータをキャプチャします。

  • TPU ランタイム レシーバー: ML ワークロードがアクティブなときに、TPU ランタイムからランタイム指標とワークロード指標(デューティ サイクルやメモリ使用量など)を直接スクレイピングします。
  • TPU ホスト レシーバー: ワークロードが実行されているかどうかに関係なく、TensorCore 使用率やメモリ帯域幅使用率などのハードウェア使用率指標をデバイスから直接キャプチャします。

AI Telemetry Collector は、プロセッサを使用して必要なリソースタグ(project_id、instance_id、zone など)を自動的に適用し、テレメトリーを Cloud Monitoring に直接安全にエクスポートします。

AI Telemetry Collector は、Google の TPU に最適化された Ubuntu LTS イメージにプリインストールされており、VM の起動時に自動的に実行されます。この設定を使用するには、TPU VM インスタンスまたはインスタンス テンプレートを作成するときに、Google の公式アクセラレータ イメージ プロジェクトとファミリーを指定します。VM が起動すると、AI Telemetry Collector は指標を Cloud Monitoring ダッシュボードに自動的に送信します。

カスタム オペレーティング システム イメージをビルドする場合は、ai-telemetry-collector Docker イメージをインストールして実行した後に AI Telemetry Collector を使用できます。詳細については、カスタム OS イメージを使用するをご覧ください。

構成

AI Telemetry Collector は、指標を Cloud Monitoring ダッシュボードに自動的に送信します。追加の構成手順は必要ありません。ただし、Snap パッケージまたは Docker イメージを構成して、外部エクスポート先の追加、指標収集間隔の変更、デバッグ オプションの追加を行うことができます。

デフォルトの構成を新しい構成ファイルに置き換えるか、既存のデフォルト構成に追加の構成ファイルを追加できます。構成を追加すると、まだ存在しないキーが追加され、すでに存在するキーが上書きされます。ただし、配列とリストは追加されないため、新しいリストには既存の値と新しい値の両方を含める必要があります。

次の YAML ファイルは、オープンソースのシステム モニタリングおよびアラート ツールキットである Prometheus に指標を送信するように AI Telemetry Collector を構成します。また、デバッグ オプションも有効になり、コンソールに指標が出力されます。

exporters:
  prometheus:
    endpoint: 0.0.0.0:8889

service:
  pipelines:
    metrics:
      exporters:
      -   prometheus # For more: https://prometheus.io/docs/introduction/overview/
      -   googlecloud # If you do not include this, you'll lose Google Cloud Monitoring
      -   debug # print metrics within the console

デフォルトの OS

Google の TPU に最適化された Ubuntu LTS イメージを使用している場合は、次の Snap コマンドを実行して、新しい構成ファイルを既存の構成に追加します。

sudo snap set \
  ai-telemetry-collector \
  extra-flags="--config /home/username/additional-config.yaml"

既存の構成を上書きして置き換える場合は、extra-flags の代わりに config-path フラグを使用します。

sudo snap set \
  ai-telemetry-collector \
  config-path="/home/username/new-config.yaml"

snap set コマンドは、AI Telemetry Collector の自動再起動をトリガーします。コレクタが再起動し、構成が正常に適用されたことを確認するには、次のコマンドを使用してログを表示します。

sudo snap logs -f ai-telemetry-collector

カスタム OS

カスタム OS を使用している場合は、次の Docker コマンドを実行して、新しい構成ファイルを既存の構成に追加します。

# First apply the default configs via `--config=/etc/ai-telemetry-collector/config.yaml`
# Then apply your additional config by volume mount.

docker run --privileged --net=host                                                                   \
  -v <path>/additional-config.yaml:/etc/ai-telemetry-collector/additional-config.yaml \
  ai-telemetry-collector:latest                                                       \
  --config=/etc/ai-telemetry-collector/config.yaml                                    \
  --config=/etc/ai-telemetry-collector/additional-config.yaml

既存の構成を上書きして置き換える場合は、次の Docker コマンドを使用します。

# Mount a volume (your config file) to `/etc/ai-telemetry-collector/config.yaml`
# The binary automatically picks up this file.

docker run --privileged --net=host                                               \
  -v <path>/my-config.yaml:/etc/ai-telemetry-collector/config.yaml   \
  ai-telemetry-collector:latest

監査ログ

Google Cloud サービスは、 Google Cloud リソース内の管理アクティビティとアクセス アクティビティを記録する監査ログを生成します。詳細については、 Compute Engine の監査ロギングをご覧ください。