コンテンツにスキップ

AUTO_TECHSUPPORT_FEATURE テーブル

概要

AUTO_TECHSUPPORT (GLOBAL) で定義したイベント駆動 techsupport の挙動を、FEATURE (docker) 単位でオーバーライドするテーブル1coredump-compress/techsupport-cleanup パイプラインを実行する coredump_gen_handler (docker-databasemonit 経由) が参照し、対象 docker でクラッシュ (core-dump) が発生したときに当該 feature の staterate_limit_interval を見て techsupport を起動する。

データフロー (自動生成)

flowchart LR
  CDB[("CONFIG_DB<br/>AUTO_TECHSUPPORT_FEATURE")]
  DM["coredump_gen_handler"]
  CDB --> DM

凡例

CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。

key 構造

AUTO_TECHSUPPORT_FEATURE|<feature_name>

<feature_name>FEATURE テーブルの name に対応する文字列 (1..255 chars)。YANG では TODO: Leafref once the FEATURE YANG is added コメントが残っており、現状は単純文字列 (leafref 未指定)1

フィールド

フィールド デフォルト 説明
state enabled/disabled (stypes:admin_mode) なし この feature でクラッシュした際の techsupport 起動可否
available_mem_threshold decimal (0.0..99.99) 10.0 メモリ使用率しきい値。0 で無効化
rate_limit_interval uint16 (秒) なし この feature の rate-limit。0 で明示的に無効化

GLOBAL 側にある max_techsupport_limit / max_core_limit / since はここには存在せず、グローバル設定がそのまま適用される。

制約

  • available_mem_thresholddecimal-repr typedef (fraction-digits 2、range 0.0..99.99)
  • list 名は AUTO_TECHSUPPORT_FEATURE_LIST、container 名は AUTO_TECHSUPPORT_FEATURE

購読者

  • coredump_gen_handler (sonic-buildimage/files/scripts/coredump-compress ハンドラ): core-dump イベントで CONFIG_DB を参照し、対応する feature の state/rate_limit_interval を評価して techsupport を起動

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: AUTO_TECHSUPPORT, FEATURE
  • 関連 CLI: config auto-techsupport-feature update <feature> --state ... --rate-limit-interval ...
  • 関連 YANG: sonic-auto_techsupport

例外条件・特殊挙動

条件 挙動
feature エントリが存在しない available_mem_threshold を 0% (デフォルト) とみなし、コンテナメモリチェックをスキップ
available_mem_threshold が float 変換不可 MemoryCheckerException 発生、techsupport 起動せず EXIT_FAILURE
feature 名がコンテナ名と不一致 startswith で前方一致のため、完全一致不要。ただし誤 feature 名だとチェックがスキップされる
AUTO_TECHSUPPORT\|GLOBAL が不在 パッケージインストール時に AUTO_TECHSUPPORT_FEATURE エントリが自動作成されない
state フィールド未設定 パッケージインストール時はデフォルト disabled で登録

値依存挙動マトリクス

state (enum enabled/disabled)

効果 evidence
enabled この feature のコアダンプ発生時に invoke_ts_command_rate_limited を呼び出し techsupport を起動 sonic-utilities/scripts/coredump_gen_handler.py:55
disabled techsupport 起動をスキップ。syslog NOTICE を出力して終了 sonic-utilities/scripts/coredump_gen_handler.py:55-56

フリーフォームフィールド

  • rate_limit_interval (uint16): 0 で無効化、>0 で連続起動を抑制 (秒数)
  • available_mem_threshold (decimal 0.0..99.99): 0.0 でメモリチェック無効

複合条件

  • AUTO_TECHSUPPORT|GLOBALstate=disabled の場合、本 feature エントリの state に関わらず全機能停止 (coredump_gen_handler.py:17)
  • state=enabled でも、AUTO_TECHSUPPORT|GLOBAL.available_mem_threshold と本エントリの available_mem_threshold が両方評価される

関連リファレンス

  • YANG: sonic-auto_techsupport
  • CLI: config auto-techsupport-feature

引用元

関連ページ

運用ヒント

典型値

  • key 形式: AUTO_TECHSUPPORT_FEATURE|<feature> (例 AUTO_TECHSUPPORT_FEATURE|swss)。
  • state: enabled / disabledrate_limit_interval: 600 秒程度が一般的。
  • available_mem_threshold: デフォルト 10.0 (%)。

よくある誤設定

  • 存在しない <feature> 名を指定 (FEATURE テーブルに無い docker 名)。techsupport が起動しない。
  • rate_limit_interval=0 を意図せず設定し、core dump 連発で techsupport が暴走する。

確認コマンド

sonic-db-cli CONFIG_DB keys 'AUTO_TECHSUPPORT_FEATURE|*'
show auto-techsupport feature
ls -lh /var/dump/

  1. src/sonic-yang-models/yang-models/sonic-auto_techsupport.yang (container AUTO_TECHSUPPORT_FEATURE / list AUTO_TECHSUPPORT_FEATURE_LIST). https://github.com/sonic-net/sonic-buildimage/blob/9ea932ec2e18f35e58268ec2e4456b1d4afd65cd/src/sonic-yang-models/yang-models/sonic-auto_techsupport.yang