seon
|
f8e0aa9122
|
feat: alert dedupe, proposal state API, HITL mirrors API approvals, Jev recovering reads the alert condition
第 4 回キャンペーン(2026-10-08)の 3 つの穴を塞ぐ。
- ハーネス: 同じアラート名が ALERT_DEDUPE_S(既定 300 秒)以内に再着したら
/diagnose を送らず note(dedupe) に記録する。Grafana は Pod ごとに 1 件ずつ
出し 30 秒後にグループを再送するため、1 障害が診断 4 件・提案 4 件になっていた。
全件 resolved になれば窓をリセットする。
- ハーネス: GET /proposals/{token} で承認・実行状態を返す。
- hitl: 60 秒ごとに未決の提案をハーネスへ照会し、API で承認された件は
メッセージを「ハーネス API で承認」に書き換えてタイマーを外す。期限切れ処理の
直前にも同じ照会を行う。
- AI: Jev 選別の now に alert_condition_now / alert_condition_clear /
recovered_now を追加し、recovering は recovered_now を読む。SLO に触れない
障害(replay 停止、メモリ圧迫)で 0.98 を返していた。now の p95 と 5xx 比率に
route フィルタを付け、判定と同じ式にそろえる。
|
2026-10-09 08:33:41 +09:00 |
|
seon
|
8836b37927
|
fix(harness): do not hold recovery on layer-1 signature alerts
alerts_ok は第 2 層(signature なし)のアラートだけを見る。第 1 層のシグネチャ
アラートはプラットフォームが復旧を担う情報であり、Grafana の解決が 8 分遅れると
MTTR に乗ってしまうため除外する。
|
2026-10-08 21:27:34 +09:00 |
|
seon
|
cd8fbdddab
|
feat(harness): hold recovery while a Grafana alert is firing, add legacy:busy host resolution
キャンペーン第 2 回のグレーゾーン 3 件を受けた変更。SLO 3 系列に現れない症状
(レプリケーション一時停止、メモリ圧迫)でも、受信中のアラートが解決するまで
recovered を出さないよう、AlertRouter が firing 中のアラートを保持し judge が
alerts_ok を条件に加える。legacy:busy は直近 2 分で最も多くリクエストを受けた
MIG インスタンス(Mimir topk)を指し、run+シナリオ単位でキャッシュして revert が
同じインスタンスに当たるようにする(ILB のハッシュで api の接続が 1 台に偏る)。
|
2026-10-08 19:20:35 +09:00 |
|
seon
|
de076a79e4
|
fix(harness): JSON-safe SLO state, unscored AI errors, mark recorded-only proposals executed
|
2026-09-24 02:22:29 +09:00 |
|
seon
|
5daf13b669
|
feat: add harness runner (scenario executor, alert receiver, action executor, judge, revert)
|
2026-09-24 02:06:08 +09:00 |
|