> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sambanova.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# SambaNova エクスポーター

SambaNova エクスポーター (`sambanova_exporter`) は、各 SambaRack ホストモジュールの RDU テレメトリ (プラットフォームの健全性と、タイル・DDR・HBM・PCIe の性能) を公開します。PDU エクスポーターや XRDU エクスポーターと異なり、監視対象のホスト上で動作し、Prometheus が各ホストを直接スクレイプします。

| 項目 | 値 |
| :- | :- |
| ポート | デフォルトは 9101。設定ファイルで `http_port` を設定します。 |
| 実行形態 | 各ホストモジュール上の systemd サービス `sambanova_exporter` |
| インストール元 | SambaNova Runtime と併せて提供される `sambanova-runtime-exporter` パッケージ。Helm チャートはインストールしません。 |
| デフォルト状態 | 無効。パッケージのインストールまたはアップグレード後に、有効化して起動します。 |
| 必要条件 | ホストモジュールが稼働中で、パッケージがインストール済み、かつサービスがアクティブであること。チャートはスクレイプ可能にするだけで、サービスを起動することはできません。 |
| 設定ファイル | `/opt/sambaflow/etc/sambanova_exporter.conf` (パッケージが書き込みます) |

## サービスのインストールと起動

全体の流れの中での手順については、[監視のインストールのステップ 1](https://docs.sambanova.ai/docs/ja/v2.2.6/sambastack/hardware-admin/sambarack-manager/monitoring/monitoring-install.md#ステップ-1-全ホストでの-sambanova-エクスポーターの有効化) をご参照ください。特権ユーザーとして、各ホストモジュールで以下を実行します。

```bash theme={}
yum install -y sambanova-runtime-exporter
systemctl enable sambanova_exporter
systemctl start sambanova_exporter
```

動作を確認します。サービスが `active` を報告し、メトリクスエンドポイントが `200` を返す必要があります。

```bash theme={}
systemctl is-active sambanova_exporter
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:9101/metrics
```

停止して無効化するには、以下を実行します。

```bash theme={}
systemctl stop sambanova_exporter
systemctl disable sambanova_exporter
```

別の設定ファイルを使用するには、`systemctl edit sambanova_exporter.service` を実行して環境変数 `SAMBANOVA_EXPORTER_CONFIG_FILE` を設定します。コマンドラインオプション `-c <file>` はこの環境変数より優先されます。指定したファイルが見つからない場合、エクスポーターはそれを無視します。ファイルは存在するものの読み取りまたは解析ができない場合、エクスポーターは失敗します。

## チャートによる公開の仕組み

チャートはエクスポーター自体をデプロイしません。ホスト側のポートをスクレイプ可能にします。

* ホストネットワーク上のプレースホルダ DaemonSet により、Kubernetes Service に RDU ノードごとに 1 つのエンドポイントが追加されます。その Readiness Probe はホスト側サービスの状態に追随するため、停止したエクスポーターはエンドポイント一覧から外れます。
* `ServiceMonitor` がこの Service をスクレイプし、エクスポーター自身は公開しない 2 つのラベルを追加します。`node` はノード名から、`rack` は宣言した `rackMap` の値から付与されます。ラックは自動検出できないため、`rackMap` を設定しない場合、系列 (series) には `node` は付きますが `rack` は付きません。

```yaml theme={}
sambanova-exporter:
  enabled: true
  serviceMonitor:
    enabled: true
    interval: 15s
    rackMap:
      <node-name>: "<rack-id>"
```

チャートはプレースホルダ DaemonSet をデフォルトでデプロイしますが、`serviceMonitor.enabled` のデフォルトは `false` です。これを `true` に設定しないと、Prometheus は RDU メトリクスをスクレイプしません。

## コレクター

各コレクターは個別に有効化・無効化できます。デフォルトではすべて有効で、HBM コレクターは HBM を搭載するプラットフォームでのみ起動します。

| コレクター | 公開内容 | 有効化設定 |
| :- | :- | :- |
| プラットフォーム | プラットフォーム情報、タイムスタンプ、障害 (fault)、エラー | `enable_platform_collector` |
| タイル | タイルの周波数、各状態の時間割合、所有プロセス | `enable_tile_collector` |
| DDR | DDR チャネルのリクエストレートとバイトレート | `enable_ddr_collector` |
| HBM | HBM チャネルグループのリクエストレートとバイトレート | `enable_hbm_collector` |
| PCIe | PCIe のリクエストレートとバイトレート | `enable_pcie_collector` |

## メトリクス

### プラットフォームコレクター

以下の表でラベルが「なし」の系列は、プラットフォームごとに 1 エントリを持ちます。

| メトリクス | ラベル | 説明 |
| :- | :- | :- |
| `sambanova_platform_info` | `platform_name`、`runtime_version`、`samba_runtime_version`、`bmc_version`、`rduc_version`、`pef_version`、`snml_version` | プラットフォームの識別情報とコンポーネントのバージョン。常に `1` です。 |
| `sambanova_platform_boot_timestamp_seconds` | なし | システムが起動した時刻 (Unix エポックからの秒数) |
| `sambanova_platform_snd_active_timestamp_seconds` | なし | `snd.service` が最後にアクティブになった時刻。まだ一度もアクティブになっていない場合は `0.0`、判定できない場合は `-1.0`。 |
| `sambanova_platform_snd_inactive_timestamp_seconds` | なし | `snd.service` が最後に非アクティブになった時刻。まだ一度も非アクティブになっていない場合は `0.0`、判定できない場合は `-1.0`。 |
| `sambanova_platform_fault_count` | なし | SambaNova システム管理が報告したコンポーネントの障害数 |
| `sambanova_platform_error_count` | なし | SambaNova システム管理が報告したコンポーネントのエラー数 |
| `sambanova_platform_data_timestamp_seconds` | なし | 最後に成功した監視サンプルの時刻 |
| `sambanova_platform_collect_seconds` | なし | 直近の収集に要した秒数 |

> [!NOTE]
>
> `sambanova_platform_error_count` が非ゼロであることは正常です。値そのものではなく、増加の速さに注目してください。

### タイルコレクター

ラベル: `xrdu`、`rdu`、`tile`。

| メトリクス | 説明 |
| :- | :- |
| `sambanova_tile_frequency_mhz` | タイルのクロック周波数 |
| `sambanova_tile_idle_percent` | タイルがアイドルだった時間の割合 |
| `sambanova_tile_pload_percent` | Program Load 状態だった時間の割合 |
| `sambanova_tile_exec_percent` | Execute 状態だった時間の割合 |
| `sambanova_tile_aload_percent` | Argument Load 状態だった時間の割合 |
| `sambanova_tile_pid` | タイルが割り当てられている場合、制御プロセスのプロセス ID |

プラットフォームごとに 1 エントリを持つ系列:

| メトリクス | 説明 |
| :- | :- |
| `sambanova_tile_offline_total` | 直近のサンプル時に、存在してオンラインの状態になかった、または応答しなかった監視対象タイルの数 |
| `sambanova_tile_data_timestamp_seconds` | 最後に成功したサンプルの時刻 |
| `sambanova_tile_collect_seconds` | 直近の収集に要した秒数 |

> [!TIP]
>
> ラック全体の RDU 使用率を求めるには、100 からアイドル率の平均を引き、センチネル値を除外します: `100 - avg by (rack) (sambanova_tile_idle_percent != -1)`

### DDR コレクター

ラベル: `xrdu`、`rdu`、`ddrch`。

| メトリクス | 説明 |
| :- | :- |
| `sambanova_ddrch_rd_requests` | DDR チャネルの 1 秒あたりの読み取りリクエスト数 |
| `sambanova_ddrch_wr_requests` | DDR チャネルの 1 秒あたりの書き込みリクエスト数 |
| `sambanova_ddrch_rdB_bytes` | DDR チャネルの 1 秒あたりの読み取りバイト数 |
| `sambanova_ddrch_wrB_bytes` | DDR チャネルの 1 秒あたりの書き込みバイト数 |

プラットフォームごとに 1 エントリを持つ系列:

| メトリクス | 説明 |
| :- | :- |
| `sambanova_ddrch_offline_total` | 直近のサンプル時に、存在してオンラインの状態になかった、または応答しなかった監視対象コンポーネントの数 |
| `sambanova_ddr_data_timestamp_seconds` | 最後に成功したサンプルの時刻 |
| `sambanova_ddr_collect_seconds` | 直近の収集に要した秒数 |

スループットメトリクスは、オフラインだったコンポーネントに対して `-1.0` を報告します。[センチネル値](#センチネル値) をご参照ください。

### HBM コレクター

HBM を搭載するプラットフォームで利用できます。ラベル: `xrdu`、`rdu`、`hbm`、`hbmch_grp`。

| メトリクス | 説明 |
| :- | :- |
| `sambanova_hbmch_grp_rd_requests` | HBM チャネルグループの 1 秒あたりの読み取りリクエスト数 |
| `sambanova_hbmch_grp_wr_requests` | HBM チャネルグループの 1 秒あたりの書き込みリクエスト数 |
| `sambanova_hbmch_grp_rdB_bytes` | HBM チャネルグループの 1 秒あたりの読み取りバイト数 |
| `sambanova_hbmch_grp_wrB_bytes` | HBM チャネルグループの 1 秒あたりの書き込みバイト数 |

プラットフォームごとに 1 エントリを持つ系列:

| メトリクス | 説明 |
| :- | :- |
| `sambanova_hbmch_grp_offline_total` | 直近のサンプル時に、存在してオンラインの状態になかった、または応答しなかった監視対象コンポーネントの数 |
| `sambanova_hbm_data_timestamp_seconds` | 最後に成功したサンプルの時刻 |
| `sambanova_hbm_collect_seconds` | 直近の収集に要した秒数 |

スループットメトリクスは、オフラインだったコンポーネントに対して `-1.0` を報告します。[センチネル値](#センチネル値) をご参照ください。

### PCIe コレクター

ラベル: `xrdu`、`rdu`、`pcie`。`D2R` と `R2D` は、操作を開始する側を表します。`D2R` はローカル RDU (デバイス) からリモートの RDU またはホストへのリクエスト、`R2D` はリモートのホストまたは RDU からローカル RDU へのリクエストです。

| データの方向 | メトリクス | 説明 |
| :- | :- | :- |
| リモートからローカル RDU へ | `sambanova_pcie_d2r_rd_requests` | D2R の 1 秒あたりの読み取りリクエスト数 |
| | `sambanova_pcie_d2r_rdB_bytes` | D2R の 1 秒あたりの読み取りバイト数 |
| | `sambanova_pcie_r2d_wr_requests` | R2D の 1 秒あたりの書き込みリクエスト数 |
| | `sambanova_pcie_r2d_wrB_bytes` | R2D の 1 秒あたりの書き込みバイト数 |
| ローカル RDU からリモートへ | `sambanova_pcie_d2r_wr_requests` | D2R の 1 秒あたりの書き込みリクエスト数 |
| | `sambanova_pcie_d2r_wrB_bytes` | D2R の 1 秒あたりの書き込みバイト数 |
| | `sambanova_pcie_r2d_rd_requests` | R2D の 1 秒あたりの読み取りリクエスト数 |
| | `sambanova_pcie_r2d_rdB_bytes` | R2D の 1 秒あたりの読み取りバイト数 |

プラットフォームごとに 1 エントリを持つ系列:

| メトリクス | 説明 |
| :- | :- |
| `sambanova_pcie_offline_total` | 直近のサンプル時に、存在してオンラインの状態になかった、または応答しなかった監視対象コンポーネントの数 |
| `sambanova_pcie_data_timestamp_seconds` | 最後に成功したサンプルの時刻 |
| `sambanova_pcie_collect_seconds` | 直近の収集に要した秒数 |

スループットメトリクスは、オフラインだったコンポーネントに対して `-1.0` を報告します。[センチネル値](#センチネル値) をご参照ください。

## ラベル

| ラベル | 値 | 説明 |
| :- | :- | :- |
| `xrdu` | `XRDU_0` 〜 `XRDU_7` | ホスト自身が付与する XRDU のインデックス (PCIe の列挙順)。`xrdu_*` 系列の `xrdu` ラベルとは別物です。[XRDU エクスポーター](https://docs.sambanova.ai/docs/ja/v2.2.6/sambastack/hardware-admin/sambarack-manager/monitoring/exporter-xrdu.md#ラベル) をご参照ください。 |
| `rdu` | インデックス | XRDU 内の RDU 番号 |
| `tile` | インデックス | RDU 内のタイル |
| `ddrch` | インデックス | DDR チャネル |
| `hbm`、`hbmch_grp` | インデックス | HBM スタックとチャネルグループ |
| `pcie` | インデックス | PCIe インターフェース |
| `platform_name`、`*_version` | 識別文字列 | `sambanova_platform_info` のみに付きます |
| `node` | Kubernetes ノード名 | チャートの ServiceMonitor が付与します |
| `rack` | 設定したラック ID | チャートの ServiceMonitor が `rackMap` から付与します。`rackMap` を設定しない場合は付きません。 |
| `instance` | `IP:9101` | Prometheus が付与します。ホスト名のラベルはないため、IP とマシンの対応付けには `sambanova_platform_info` を使用してください。 |

## センチネル値

すべてのスループットメトリクスとタイルメトリクス (`sambanova_tile_pid` を除く) は、直近のサンプル時に存在してオンラインの状態になかった、または応答しなかった XRDU・RDU・コンポーネントに対して、センチネル値 (sentinel value) として `-1.0` を報告します。`avg` は `-1.0` を含めて計算し、`min` は `-1.0` を返すため、すべての集計で必ず除外してください。

```promql theme={}
avg by (node) (sambanova_tile_exec_percent != -1)
```

`sambanova_tile_pid` は、直近のサンプル時にプロセスへ割り当てられていたタイルのみを列挙します。

## 設定

設定ファイルは INI 形式です。`[section]` ヘッダーの後に `option = value` の行が続きます。セクション名は大文字と小文字を区別しますが、オプション名と値は区別しません。値を空のままにすると、デフォルト値が使用されます。

### `[sambanova_exporter]`

| オプション | デフォルト値 | 説明 |
| :- | :- | :- |
| `log_level` | `info` | `debug`、`info`、`warning`、`error` のいずれか。コレクター側で上書きできるグローバルデフォルトです。設定ファイルの読み取り中に出力されるメッセージは、常に `info` を使用します。 |
| `http_port` | `9101` | エクスポーターの HTTP サーバーのポート |
| `update_interval` | `10` | コレクターの更新間隔 (秒)。最小値は `1`。スクレイプは常に最新の更新結果を返します。 |
| `include_rdus` | すべて | 監視対象とする XRDU・RDU コンポーネント。`exclude_rdus` と同時には指定できません。 |
| `exclude_rdus` | なし | 監視対象から外す XRDU・RDU コンポーネント。`include_rdus` と同時には指定できません。 |
| `enable_<name>_collector` | `true` | `platform`、`tile`、`ddr`、`pcie`、`hbm` に対応 |

`include_rdus` と `exclude_rdus` には、`xrdu/rdu` のペアをカンマ区切りで指定します。範囲指定と `*` も使用できます。たとえば `include_rdus = 0-2/*,3/0` は、XRDU 0〜2 のすべての RDU と、XRDU 3 の RDU 0 を監視します。`exclude_rdus = 2/1,3/*` は、XRDU 2 の RDU 1 と、XRDU 3 のすべての RDU を監視対象から外します。オフライン数のカウントは、監視対象の RDU のみが対象です。

### コレクターセクション

`[platform_collector]`、`[tile_collector]`、`[ddr_collector]`、`[hbm_collector]`、`[pcie_collector]` の各セクションは `log_level` を受け付けます。プラットフォームコレクターを除く各セクションは、さらに `update_interval`、`include_rdus`、`exclude_rdus` も受け付け、そのコレクターに限ってグローバル値を上書きします。

`[tile_collector]` では、さらに以下も指定できます。

| オプション | デフォルト値 | 説明 |
| :- | :- | :- |
| `state_frequency` | `19` | タイル監視スレッドがタイル状態をサンプリングする 1 秒あたりの回数。最小値は `1`。割合は `state_frequency * update_interval` 回のサンプルに基づいて計算されます。 |

### 設定例

```ini theme={}
[sambanova_exporter]
log_level = info
http_port = 9101
update_interval = 10
exclude_rdus = 3/*
enable_pcie_collector = false

[tile_collector]
state_frequency = 19
```

## 次のステップ

* [監視のインストール](https://docs.sambanova.ai/docs/ja/v2.2.6/sambastack/hardware-admin/sambarack-manager/monitoring/monitoring-install.md)
* [リファレンスダッシュボード](https://docs.sambanova.ai/docs/ja/v2.2.6/sambastack/hardware-admin/sambarack-manager/monitoring/monitoring-reference-dashboards.md)
* [トラブルシューティング](https://docs.sambanova.ai/docs/ja/v2.2.6/sambastack/hardware-admin/sambarack-manager/monitoring/monitoring-troubleshooting.md)
