HEARTBEAT テーブル¶
概要¶
システムプロセスの heartbeat 監視 (生存確認) のインターバルとアラート間隔をプロセスごとに設定するテーブル1。
process monitor は登録された name のプロセスから heartbeat_interval ms ごとに生存通知を期待し、alert_interval ms 内に通知がなければアラートを上げる。
データフロー (自動生成)¶
flowchart LR
CDB[("CONFIG_DB<br/>HEARTBEAT")]
DM["process-monitor"]
CDB --> DM
凡例
CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。
key 構造¶
<name>: 1–32 文字。監視対象プロセス名 (例: pmon, swss, syncd 等)。
フィールド¶
| フィールド | 型 | 既定 | 説明 |
|---|---|---|---|
heartbeat_interval |
uint32 | 10000 |
期待される heartbeat 送信間隔 [ms] |
alert_interval |
uint32 | 60000 |
この時間内に heartbeat 不達ならアラート [ms] |
購読者¶
- process monitor デーモン (heartbeat 監視機能を持つ host service)。各プロセスは
STATE_DB等に生存通知を書き、監視側がタイムアウトを検査する
関連 YANG¶
sonic-heartbeat
関連リファレンス¶
- YANG:
sonic-heartbeat
引用元¶
関連ページ¶
運用ヒント¶
典型値¶
- key 形式:
HEARTBEAT|<key>。 interval: 秒単位の hearbeat 間隔。デフォルトはイメージ依存。
よくある誤設定¶
- interval を極端に短くすると CPU 負荷が上がり他デーモン処理が遅延する。
確認コマンド¶
値依存挙動マトリクス¶
このテーブルに strict な enum フィールドはない。interval の特殊値で動作が分岐する。
interval (eventd 側の内部スキーマ、events_wrap.h / eventd.cpp 準拠)¶
| 値 | 挙動 |
|---|---|
-1 |
heartbeat を無効化("A value of -1 implies no heartbeat") |
< -1(-2 以下) |
invalid 扱い。syslog 記録後処理中断 |
0 |
システムデフォルト 2 秒として動作(HEARTBEAT_INTERVAL_SECS = 2) |
| 正値 | 内部 300ms 単位(STATS_HEARTBEAT_MIN)に切り上げ量子化。指定値と実周期がずれる場合がある |
注意: YANG では
heartbeat_interval/alert_intervalは uint32 [ms] 単位。 eventd.cpp 側のintervalとはスキーマが別(秒単位)なので混同に注意。
例外条件・特殊挙動¶
| 条件 | 挙動 |
|---|---|
interval = -1 |
heartbeat を無効化(events_wrap.h L131「A value of -1 implies no heartbeat」) |
interval < -1(-2 以下) |
invalid 扱い。syslog に詳細記録後処理中断(events_wrap.h L136) |
interval = 0 |
システムデフォルト 2 秒として動作(eventd.cpp L43 HEARTBEAT_INTERVAL_SECS = 2) |
| 任意の正値 | 内部は 300ms 単位に切り上げ量子化。指定値と実周期がずれる場合がある(eventd.cpp L145) |
| heartbeat publish 失敗 | SWSS_LOG_ERROR("Failed to publish heartbeat rc=%d") → ハートビート欠落するが eventd は継続 |