Skip to content

receiver 運用ハードニング: graceful shutdown・/healthz・起動時の実効設定サマリ #99

Description

@kosako

背景

アーキテクチャレビュー(2026-07-02)の所見 F-2 / F-3。公開デプロイ(EC2 + systemd / ALB 等)の最低要件が揃っていない。

内容

  1. graceful shutdown: 現状 SIGTERM / SIGINT / server.close() のハンドラが一切無い(server/receive.js に 0 件)。再起動時に in-flight リクエストと sqlite 書き込みが中断され得る。SIGTERM → server.close() + store.close() の順で畳む
  2. ヘルスチェック endpoint: GET /healthz(store 疎通込み)を追加。ALB / 監視の liveness を張れるようにする
  3. 起動時の実効設定サマリ: 現状の起動ログは Slack / GitHub の有効無効のみ(server/receive.js:241-248)。設定ミス(0 / 負 / 小数)は positiveIntSetting が黙ってデフォルトに fallback し、どの値が無視されたか警告も出ない。起動時に「実効値サマリ + 無視した設定の警告」を 1 ブロック出力する(トークン等の secret 値は出さない)

受け入れ条件

  • systemd 再起動で in-flight リクエストが正常完了する
  • /healthz が 200 / 異常時に非 200 を返す(認証・rate limit の適用方針も決める)
  • 不正な設定値を与えると起動ログに警告が出る

サイズ: S。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions