Skip to content

feat(grafana): ai-ops-quality に v1 是正系列と unknown の理由分類を追加 (BOXP-360) - #972

Merged
boxp merged 2 commits into
mainfrom
codex-task-board/BOXP-360-20261031T000556Z-587aa903-29ea-4b7a-960e-159a97e8111e
Oct 31, 2026
Merged

boxp merged 2 commits into
mainfrom
codex-task-board/BOXP-360-20261031T000556Z-587aa903-29ea-4b7a-960e-159a97e8111e

Conversation

@boxp

@boxp boxp commented Oct 31, 2026

Copy link
Copy Markdown
Owner

概要

BOXP-360。Owner 指摘「Grafana の AI dashboard は unknown が多すぎる」への対応の dashboard 側。arch 側は boxp/arch#14249 (ai_ops_v1_* と ai_ops_sli_unknown_* の export)。

  • 並び替え: 読み方 → 品質 (測れる指標) → 進行 → 観測信頼性 → 未計測の指標と理由。測れる主要指標を先頭に置く。
  • v1 (correction-rules/v1) panel: Owner に見える是正 task 割合 (差戻し率ではない旨を注記)、是正の内訳、内部 gate 再作業 (Owner に届く前) と gate 別内訳、レビュー反復ループ、Review 停滞 (p50/p90/24h 超)。v0 の是正 panel は「v0 比較用」として残す。
  • unknown の理由: ai_ops_sli_unknown_info の表で SLI ごとに 未接続 / 履歴欠損 / 分類不能 / 対象外 を表示し、ai_ops_sli_unknown_detail の表で件数 (拒否 event・読めない run・欠落 marker 等) を出す。Owner 救援率・重複承認率・Ready→ack・token/cost・Hermes 承認 event はこの row に移し、理由カテゴリを description に追記。
  • 観測信頼性: v1 export 状態と v1 snapshot 経過時間を追加。
  • unknown を 0 や成功に置き換えない。すべての stat は series 不在時に noValue 文を出す。snapshot gauge には rate()/increase() を使わない。ticket ID 等の高 cardinality 値は label / title に出さない。

検証

  • jq empty ok、panel id 一意、最大 y+h = 58 (feat(grafana): ai-ops-quality にsubscription利用枠と追加利用状態を追加 (BOXP-372) #969 BOXP-372 が末尾に追加する row (y=59, id 100-108) と競合しない。配列末尾 id 31 は最後のまま)。
  • kustomize build argoproj/prometheus-operator ok。
  • 全 59 query を本番 Prometheus (Grafana datasource proxy) で実行し、すべて status success。ai_ops_v1_* / ai_ops_sli_unknown_* は arch #14249 配備前のため現時点は結果 0 件 (noValue 表示)。
  • 配備で Grafana の provisioning 再読込のみ。Hermes の再起動は無い。

🤖 Generated with Claude Code

- 測れる指標 (品質・進行) を先頭へ、未計測の指標と理由 (4 分類の表と件数) を末尾へ
- correction-rules/v1: Owner に見える是正 / 内部 gate 再作業 / gate 別内訳 / 反復ループ / Review 停滞
- v0 の是正 panel は比較用として残す。unknown は 0 や成功に置き換えない
- 既存 panel の query は維持。新 panel id 40-50、末尾 (id 31) は配列最後のまま (#969 と競合しない)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

ArgoCD Diff Result

Auth path: tailscale

アプリケーション: prometheus-operator の差分

パス: argoproj/prometheus-operator

===== /ConfigMap monitoring/grafana-dashboard-ai-ops-quality ======
31c31
<       "version" : 1,
---
>       "version" : 2,
35c35
<         "title" : "このdashboardの読み方 (definition: ai-ops-event/v0, sli/v1)",
---
>         "title" : "このdashboardの読み方 (definition: ai-ops-event/v0, sli/v1, correction-rules/v1 (v0 比較用))",
44c44
<           "content" : "**目的**: Board/Hermes の運用品質を本文なしの metadata だけで見る (BOXP-360)。暫定 baseline 観測期間: **2026-10-29 〜 2026-11-12 (最長 11-26)**。SLO は未確定で、ここの値は目標ではない。\n\n- **品質/進行の SLI** は runner が `ai_ops_sli.bb` で全履歴から再計算した **snapshot gauge** (既定15分毎)。`rate()`/`increase()`/合計をかけない。母数 (分母) と未評価件数を必ず並べて読む。\n- **unknown**: source 未接続・欠落 event がある SLI は値を出さず「判定不能/未接続」と表示する (0 や合格には数えない)。\n- **counter** (ledger/Hermes の `*_total`) は表示期間内の `increase()` で見る。runner ledger は 2026-10-29 14:33Z、Hermes ledger は同日配備以降のみ。\n- 是正分類は rule による **暫定分類** (correction-rules/v1 候補、原因 unknown を含む)。モデル別ランキングには使わない。lead time は frontmatter 日粒度。\n- 小母数: 率は必ず件数/分母と一緒に読む。p90 や % の過信禁止。"
---
>           "content" : "**目的**: Board/Hermes の運用品質を本文なしの metadata で見る。SLI と v1 は全履歴の snapshot gauge。率は件数と分母を併読する。counter は期間内増分。\n\n- **未接続**: source が無い / 配線されていない。 **履歴欠損**: 入力の欠落・拒否・読めない run により確定できない。\n- **分類不能**: metadata だけでは判別できない。 **対象外**: 取得しない方針。unknown は 0 や成功ではない。\n- v1 の **Owner に見える是正** は Owner 差戻し率ではない。本文を読まないため差戻し・承認後の継続・新 scope は区別しない。"
48c48
<         "title" : "観測信頼性 (まずここを確認)",
---
>         "title" : "観測信頼性",
53c53
<           "y" : 6,
---
>           "y" : 31,
66c66
<           "y" : 7,
---
>           "y" : 32,
68c68
<           "h" : 4
---
>           "h" : 3
131c131
<           "y" : 7,
---
>           "y" : 32,
133c133
<           "h" : 4
---
>           "h" : 3
196,198c196,198
<           "y" : 7,
<           "w" : 5,
<           "h" : 4
---
>           "y" : 32,
>           "w" : 4,
>           "h" : 3
248,251c248,251
<           "x" : 13,
<           "y" : 7,
<           "w" : 5,
<           "h" : 4
---
>           "x" : 12,
>           "y" : 32,
>           "w" : 4,
>           "h" : 3
301,304c301,304
<           "x" : 18,
<           "y" : 7,
<           "w" : 6,
<           "h" : 4
---
>           "x" : 16,
>           "y" : 32,
>           "w" : 4,
>           "h" : 3
356,358c356,358
<           "y" : 11,
<           "w" : 8,
<           "h" : 4
---
>           "y" : 35,
>           "w" : 6,
>           "h" : 3
419,422c419,422
<           "x" : 8,
<           "y" : 11,
<           "w" : 8,
<           "h" : 4
---
>           "x" : 6,
>           "y" : 35,
>           "w" : 6,
>           "h" : 3
503,506c503,506
<           "x" : 16,
<           "y" : 11,
<           "w" : 8,
<           "h" : 4
---
>           "x" : 12,
>           "y" : 35,
>           "w" : 6,
>           "h" : 3
568c568
<           "y" : 15,
---
>           "y" : 38,
570c570
<           "h" : 7
---
>           "h" : 5
641c641
<           "y" : 15,
---
>           "y" : 38,
643c643
<           "h" : 7
---
>           "h" : 5
704c704
<         "title" : "品質",
---
>         "title" : "品質 (測れる指標)",
709c709
<           "y" : 22,
---
>           "y" : 6,
721,722c721,722
<           "x" : 0,
<           "y" : 23,
---
>           "x" : 12,
>           "y" : 10,
724c724
<           "h" : 5
---
>           "h" : 3
738c738
<         "title" : "agent-system 是正を含む task 割合",
---
>         "title" : "agent-system 是正を含む task 割合 (v0 比較用)",
775,776c775,776
<           "x" : 6,
<           "y" : 23,
---
>           "x" : 0,
>           "y" : 13,
778c778
<           "h" : 5
---
>           "h" : 3
812c812
<         "title" : "是正 task 件数 / 分母",
---
>         "title" : "是正 task 件数 / 分母 (v0 比較用)",
849,850c849,850
<           "x" : 12,
<           "y" : 23,
---
>           "x" : 6,
>           "y" : 13,
852c852
<           "h" : 5
---
>           "h" : 3
913,914c913,914
<           "x" : 18,
<           "y" : 23,
---
>           "x" : 12,
>           "y" : 13,
916c916
<           "h" : 5
---
>           "h" : 3
988c988
<           "y" : 28,
---
>           "y" : 16,
990c990
<           "h" : 7
---
>           "h" : 6
1045c1045
<           "y" : 28,
---
>           "y" : 16,
1047c1047
<           "h" : 7
---
>           "h" : 6
1086c1086,1932
<       }, {
---
>       },
>         {
>           "description" : "v1 の Owner 可視是正 (succeeded した review-fix run を持つ task、または Review 後に implement が再開した task) / Review 到達 task。差戻し率ではない。",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 0,
>             "y" : 7,
>             "w" : 6,
>             "h" : 3
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_correction_tasks{job=\"codex-workspace-ai-ops-metrics\",kind=\"owner_visible\"} / ignoring(kind) ai_ops_v1_reached_review_tasks{job=\"codex-workspace-ai-ops-metrics\"} and on() (ai_ops_v1_export_ok{job=\"codex-workspace-ai-ops-metrics\"} == 1)",
>               "legendFormat" : "割合",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "Owner に見える是正 task 割合 (v1)",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "percentunit",
>               "noValue" : "v1 未出力",
>               "mappings" : [],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : []
>           },
>           "id" : 40,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 6,
>             "y" : 7,
>             "w" : 6,
>             "h" : 3
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_correction_tasks{job=\"codex-workspace-ai-ops-metrics\",kind=\"owner_visible_agent_system\"}",
>               "legendFormat" : "agent 起因で Owner 可視",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_correction_tasks{job=\"codex-workspace-ai-ops-metrics\",kind=\"agent_system\"}",
>               "legendFormat" : "agent 起因 全体、内部 gate 含む",
>               "refId" : "B",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_correction_tasks{job=\"codex-workspace-ai-ops-metrics\",kind=\"owner_visible\"}",
>               "legendFormat" : "Owner 可視 全体",
>               "refId" : "C",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_reached_review_tasks{job=\"codex-workspace-ai-ops-metrics\"}",
>               "legendFormat" : "分母: Review 到達 task",
>               "refId" : "D",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "是正の内訳 (v1, task 数)",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "short",
>               "noValue" : "v1 未出力",
>               "mappings" : [],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : []
>           },
>           "id" : 41,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 12,
>             "y" : 7,
>             "w" : 6,
>             "h" : 3
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_gate_rework_runs{job=\"codex-workspace-ai-ops-metrics\",part=\"total\"}",
>               "legendFormat" : "run 数",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_gate_rework_tasks{job=\"codex-workspace-ai-ops-metrics\"}",
>               "legendFormat" : "task 数",
>               "refId" : "B",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_gate_rework_runs{job=\"codex-workspace-ai-ops-metrics\",part=\"pending\"}",
>               "legendFormat" : "後続 run 未開始",
>               "refId" : "C",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "内部 gate 再作業 (v1, Owner に届く前)",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "short",
>               "noValue" : "v1 未出力",
>               "mappings" : [],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : []
>           },
>           "id" : 42,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "gate 別の再作業 run 数。",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 18,
>             "y" : 7,
>             "w" : 6,
>             "h" : 6
>           },
>           "transformations" : [
>             {
>               "id" : "organize",
>               "options" : {
>                 "excludeByName" : {
>                   "__name__" : true,
>                   "job" : true,
>                   "instance" : true,
>                   "pod" : true,
>                   "service" : true,
>                   "namespace" : true,
>                   "endpoint" : true,
>                   "container" : true,
>                   "Time" : true,
>                   "prometheus" : true
>                 },
>                 "renameByName" : {}
>               }
>             }
>           ],
>           "type" : "table",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_gate_rework_runs_by_gate{job=\"codex-workspace-ai-ops-metrics\"}",
>               "legendFormat" : "",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false,
>               "format" : "table"
>             }
>           ],
>           "title" : "gate 再作業の内訳 (gate 別, v1)",
>           "fieldConfig" : {
>             "defaults" : {
>               "noValue" : "未出力",
>               "mappings" : []
>             },
>             "overrides" : []
>           },
>           "id" : 43,
>           "options" : {
>             "showHeader" : true,
>             "cellHeight" : "sm"
>           }
>         },
>         {
>           "description" : "",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 0,
>             "y" : 10,
>             "w" : 6,
>             "h" : 3
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_review_loops{job=\"codex-workspace-ai-ops-metrics\",part=\"series\"}",
>               "legendFormat" : "系列",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_review_loops{job=\"codex-workspace-ai-ops-metrics\",part=\"tasks\"}",
>               "legendFormat" : "task",
>               "refId" : "B",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_review_loops{job=\"codex-workspace-ai-ops-metrics\",part=\"max_length\"}",
>               "legendFormat" : "最長",
>               "refId" : "C",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "レビュー反復ループ (v1, 10 連続以上の gate 失敗)",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "short",
>               "noValue" : "v1 未出力",
>               "mappings" : [],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : []
>           },
>           "id" : 44,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "Review 後に run が再開した task。是正か継続か新 scope か本文を読まないため分類不能。v1 では groom→implement や中断再開を除外している。",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 6,
>             "y" : 10,
>             "w" : 6,
>             "h" : 3
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_correction_tasks{job=\"codex-workspace-ai-ops-metrics\",origin=\"unknown\"}",
>               "legendFormat" : "task 数",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "分類不能の再開 (v0 unknown cause)",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "short",
>               "noValue" : "未出力",
>               "mappings" : [],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : []
>           },
>           "id" : 45,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 18,
>             "y" : 23,
>             "w" : 6,
>             "h" : 4
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_review_wait_hours{job=\"codex-workspace-ai-ops-metrics\",quantile=\"0.5\"}",
>               "legendFormat" : "p50 h",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_review_wait_hours{job=\"codex-workspace-ai-ops-metrics\",quantile=\"0.9\"}",
>               "legendFormat" : "p90 h",
>               "refId" : "B",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_review_wait{job=\"codex-workspace-ai-ops-metrics\",part=\"over_24h\"}",
>               "legendFormat" : "24h 超",
>               "refId" : "C",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_review_wait{job=\"codex-workspace-ai-ops-metrics\",part=\"not_followed\"}",
>               "legendFormat" : "再開なし",
>               "refId" : "D",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "Review 停滞 (v1, review 終了→次 run 開始)",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "short",
>               "noValue" : "v1 未出力",
>               "mappings" : [],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : [
>               {
>                 "matcher" : {
>                   "id" : "byName",
>                   "options" : "p50 h"
>                 },
>                 "properties" : [
>                   {
>                     "id" : "unit",
>                     "value" : "h"
>                   }
>                 ]
>               },
>               {
>                 "matcher" : {
>                   "id" : "byName",
>                   "options" : "p90 h"
>                 },
>                 "properties" : [
>                   {
>                     "id" : "unit",
>                     "value" : "h"
>                   }
>                 ]
>               }
>             ]
>           },
>           "id" : 46,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 20,
>             "y" : 32,
>             "w" : 4,
>             "h" : 3
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_export_ok{job=\"codex-workspace-ai-ops-metrics\"}",
>               "legendFormat" : "export",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "v1 export 状態",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "short",
>               "noValue" : "未配備",
>               "mappings" : [
>                 {
>                   "type" : "value",
>                   "options" : {
>                     "1" : {
>                       "text" : "出力あり",
>                       "color" : "green"
>                     },
>                     "0" : {
>                       "text" : "失敗",
>                       "color" : "red"
>                     }
>                   }
>                 }
>               ],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : []
>           },
>           "id" : 47,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 18,
>             "y" : 35,
>             "w" : 6,
>             "h" : 3
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "time() - ai_ops_v1_generated_timestamp_seconds{job=\"codex-workspace-ai-ops-metrics\"}",
>               "legendFormat" : "経過時間",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "v1 snapshot 経過時間",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "s",
>               "noValue" : "v1 未出力",
>               "mappings" : [],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : []
>           },
>           "id" : 48,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "SLI ごとの未計測理由。",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 0,
>             "y" : 44,
>             "w" : 12,
>             "h" : 6
>           },
>           "transformations" : [
>             {
>               "id" : "organize",
>               "options" : {
>                 "excludeByName" : {
>                   "__name__" : true,
>                   "job" : true,
>                   "instance" : true,
>                   "pod" : true,
>                   "service" : true,
>                   "namespace" : true,
>                   "endpoint" : true,
>                   "container" : true,
>                   "Time" : true,
>                   "prometheus" : true,
>                   "Value" : true
>                 },
>                 "renameByName" : {}
>               }
>             }
>           ],
>           "type" : "table",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_sli_unknown_info{job=\"codex-workspace-ai-ops-metrics\"}",
>               "legendFormat" : "",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false,
>               "format" : "table"
>             }
>           ],
>           "title" : "unknown の理由 (分類)",
>           "fieldConfig" : {
>             "defaults" : {
>               "noValue" : "未出力",
>               "mappings" : []
>             },
>             "overrides" : [
>               {
>                 "matcher" : {
>                   "id" : "byName",
>                   "options" : "category"
>                 },
>                 "properties" : [
>                   {
>                     "id" : "mappings",
>                     "value" : [
>                       {
>                         "type" : "value",
>                         "options" : {
>                           "not_connected" : {
>                             "text" : "未接続 (source が無い / 配線されていない)"
>                           },
>                           "history_missing" : {
>                             "text" : "履歴欠損 (入力の欠落・拒否・読めない run があり確定できない)"
>                           },
>                           "unclassifiable" : {
>                             "text" : "分類不能 (metadata だけでは判別できない)"
>                           },
>                           "out_of_scope" : {
>                             "text" : "対象外 (取得しない方針)"
>                           }
>                         }
>                       }
>                     ]
>                   }
>                 ]
>               }
>             ]
>           },
>           "id" : 49,
>           "options" : {
>             "showHeader" : true,
>             "cellHeight" : "sm"
>           }
>         },
>         {
>           "description" : "欠落・拒否・読めない run などの件数。1 件でもあれば該当 SLI は確定値を出さない。",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 12,
>             "y" : 44,
>             "w" : 12,
>             "h" : 6
>           },
>           "transformations" : [
>             {
>               "id" : "organize",
>               "options" : {
>                 "excludeByName" : {
>                   "__name__" : true,
>                   "job" : true,
>                   "instance" : true,
>                   "pod" : true,
>                   "service" : true,
>                   "namespace" : true,
>                   "endpoint" : true,
>                   "container" : true,
>                   "Time" : true,
>                   "prometheus" : true
>                 },
>                 "renameByName" : {
>                   "Value" : "件数"
>                 }
>               }
>             }
>           ],
>           "type" : "table",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_sli_unknown_detail{job=\"codex-workspace-ai-ops-metrics\"}",
>               "legendFormat" : "",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false,
>               "format" : "table"
>             }
>           ],
>           "title" : "unknown の件数 (詳細)",
>           "fieldConfig" : {
>             "defaults" : {
>               "noValue" : "未出力",
>               "mappings" : []
>             },
>             "overrides" : []
>           },
>           "id" : 50,
>           "options" : {
>             "showHeader" : true,
>             "cellHeight" : "sm"
>           }
>         }, {
1088c1934
<         "title" : "負担 (Owner)",
---
>         "title" : "未計測の指標と理由 (unknown は 0 ではない)",
1093c1939
<           "y" : 35,
---
>           "y" : 43,
1099c1945
<         "description" : "状況催促・同承認繰返し等の救援 event の source が未接続のため現在は unknown",
---
>         "description" : "状況催促・同承認繰返し等の救援 event の source が未接続のため現在は unknown 理由カテゴリ: 未接続。",
1106,1107c1952,1953
<           "y" : 36,
<           "w" : 8,
---
>           "y" : 50,
>           "w" : 6,
1168c2014
<         "description" : "approval_key 付き承認 event の source が未接続のため unknown",
---
>         "description" : "approval_key 付き承認 event の source が未接続のため unknown 理由カテゴリ: 未接続。",
1174,1176c2020,2022
<           "x" : 8,
<           "y" : 36,
<           "w" : 8,
---
>           "x" : 6,
>           "y" : 50,
>           "w" : 6,
1237c2083
<         "description" : "Hermes observer の approval.requested/resolved hook 件数 (0 は hook 未発火で、承認なしの証明ではない)",
---
>         "description" : "Hermes observer の approval.requested/resolved hook 件数 (0 は hook 未発火で、承認なしの証明ではない) Hermes 側の承認 event はこの Prom 系列で直接観測する (SLI 集計入力への join は会話 ID が opaque のため未実施、現在 0 件)。",
1243,1245c2089,2091
<           "x" : 16,
<           "y" : 36,
<           "w" : 8,
---
>           "x" : 12,
>           "y" : 50,
>           "w" : 6,
1297c2143
<           "y" : 40,
---
>           "y" : 22,
1310,1312c2156,2158
<           "y" : 41,
<           "w" : 8,
<           "h" : 7
---
>           "y" : 23,
>           "w" : 6,
>           "h" : 4
1366,1369c2212,2215
<           "x" : 8,
<           "y" : 41,
<           "w" : 8,
<           "h" : 7
---
>           "x" : 6,
>           "y" : 23,
>           "w" : 6,
>           "h" : 4
1449,1452c2295,2298
<           "x" : 16,
<           "y" : 41,
<           "w" : 8,
<           "h" : 7
---
>           "x" : 12,
>           "y" : 23,
>           "w" : 6,
>           "h" : 4
1504c2350
<           "y" : 48,
---
>           "y" : 27,
1506c2352
<           "h" : 7
---
>           "h" : 4
1557c2403
<           "y" : 48,
---
>           "y" : 27,
1559c2405
<           "h" : 7
---
>           "h" : 4
1603c2449
<         "description" : "Ready 遷移時刻 event が無いため unknown",
---
>         "description" : "Ready 遷移時刻 event が無いため unknown 理由カテゴリ: 未接続。",
1609,1611c2455,2457
<           "x" : 0,
<           "y" : 55,
<           "w" : 12,
---
>           "x" : 18,
>           "y" : 50,
>           "w" : 6,
1672c2518
<         "description" : "subscription CLI は token/cost を返さないため unknown (API 単価換算はしない)",
---
>         "description" : "subscription CLI は token/cost を返さないため unknown (API 単価換算はしない) 理由カテゴリ: 対象外。",
1678,1679c2524,2525
<           "x" : 12,
<           "y" : 55,
---
>           "x" : 0,
>           "y" : 54,
ℹ️ 上記の差分が見つかりました

…注記 (BOXP-360)

codex-review 指摘: exporter は読めない run を持つ task を v1 集計から除外し
ai_ops_v1_snapshot{part="unevaluated_tasks"} に別掲するが、dashboard は件数を
表示せず v1 値を確定値として見せていた。未評価件数の stat panel (id 51) を追加し、
v1 の割合/内訳/gate 再作業/反復ループ/Review 停滞 panel の説明に下限であることを注記。
全 60 query を Grafana datasource proxy で実行し status=success を確認。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

ArgoCD Diff Result

Auth path: tailscale

アプリケーション: prometheus-operator の差分

パス: argoproj/prometheus-operator

===== /ConfigMap monitoring/grafana-dashboard-ai-ops-quality ======
31c31
<       "version" : 1,
---
>       "version" : 2,
35c35
<         "title" : "このdashboardの読み方 (definition: ai-ops-event/v0, sli/v1)",
---
>         "title" : "このdashboardの読み方 (definition: ai-ops-event/v0, sli/v1, correction-rules/v1 (v0 比較用))",
44c44
<           "content" : "**目的**: Board/Hermes の運用品質を本文なしの metadata だけで見る (BOXP-360)。暫定 baseline 観測期間: **2026-10-29 〜 2026-11-12 (最長 11-26)**。SLO は未確定で、ここの値は目標ではない。\n\n- **品質/進行の SLI** は runner が `ai_ops_sli.bb` で全履歴から再計算した **snapshot gauge** (既定15分毎)。`rate()`/`increase()`/合計をかけない。母数 (分母) と未評価件数を必ず並べて読む。\n- **unknown**: source 未接続・欠落 event がある SLI は値を出さず「判定不能/未接続」と表示する (0 や合格には数えない)。\n- **counter** (ledger/Hermes の `*_total`) は表示期間内の `increase()` で見る。runner ledger は 2026-10-29 14:33Z、Hermes ledger は同日配備以降のみ。\n- 是正分類は rule による **暫定分類** (correction-rules/v1 候補、原因 unknown を含む)。モデル別ランキングには使わない。lead time は frontmatter 日粒度。\n- 小母数: 率は必ず件数/分母と一緒に読む。p90 や % の過信禁止。"
---
>           "content" : "**目的**: Board/Hermes の運用品質を本文なしの metadata で見る。SLI と v1 は全履歴の snapshot gauge。率は件数と分母を併読する。counter は期間内増分。\n\n- **未接続**: source が無い / 配線されていない。 **履歴欠損**: 入力の欠落・拒否・読めない run により確定できない。\n- **分類不能**: metadata だけでは判別できない。 **対象外**: 取得しない方針。unknown は 0 や成功ではない。\n- v1 の **Owner に見える是正** は Owner 差戻し率ではない。本文を読まないため差戻し・承認後の継続・新 scope は区別しない。"
48c48
<         "title" : "観測信頼性 (まずここを確認)",
---
>         "title" : "観測信頼性",
53c53
<           "y" : 6,
---
>           "y" : 31,
66c66
<           "y" : 7,
---
>           "y" : 32,
68c68
<           "h" : 4
---
>           "h" : 3
131c131
<           "y" : 7,
---
>           "y" : 32,
133c133
<           "h" : 4
---
>           "h" : 3
196,198c196,198
<           "y" : 7,
<           "w" : 5,
<           "h" : 4
---
>           "y" : 32,
>           "w" : 4,
>           "h" : 3
248,251c248,251
<           "x" : 13,
<           "y" : 7,
<           "w" : 5,
<           "h" : 4
---
>           "x" : 12,
>           "y" : 32,
>           "w" : 4,
>           "h" : 3
301,304c301,304
<           "x" : 18,
<           "y" : 7,
<           "w" : 6,
<           "h" : 4
---
>           "x" : 16,
>           "y" : 32,
>           "w" : 4,
>           "h" : 3
356,358c356,358
<           "y" : 11,
<           "w" : 8,
<           "h" : 4
---
>           "y" : 35,
>           "w" : 6,
>           "h" : 3
419,422c419,422
<           "x" : 8,
<           "y" : 11,
<           "w" : 8,
<           "h" : 4
---
>           "x" : 6,
>           "y" : 35,
>           "w" : 6,
>           "h" : 3
503,506c503,506
<           "x" : 16,
<           "y" : 11,
<           "w" : 8,
<           "h" : 4
---
>           "x" : 12,
>           "y" : 35,
>           "w" : 6,
>           "h" : 3
568c568
<           "y" : 15,
---
>           "y" : 38,
570c570
<           "h" : 7
---
>           "h" : 5
641c641
<           "y" : 15,
---
>           "y" : 38,
643c643
<           "h" : 7
---
>           "h" : 5
704c704
<         "title" : "品質",
---
>         "title" : "品質 (測れる指標)",
709c709
<           "y" : 22,
---
>           "y" : 6,
721,722c721,722
<           "x" : 0,
<           "y" : 23,
---
>           "x" : 12,
>           "y" : 10,
724c724
<           "h" : 5
---
>           "h" : 3
738c738
<         "title" : "agent-system 是正を含む task 割合",
---
>         "title" : "agent-system 是正を含む task 割合 (v0 比較用)",
775,776c775,776
<           "x" : 6,
<           "y" : 23,
---
>           "x" : 0,
>           "y" : 13,
778c778
<           "h" : 5
---
>           "h" : 3
812c812
<         "title" : "是正 task 件数 / 分母",
---
>         "title" : "是正 task 件数 / 分母 (v0 比較用)",
849,850c849,850
<           "x" : 12,
<           "y" : 23,
---
>           "x" : 6,
>           "y" : 13,
852c852
<           "h" : 5
---
>           "h" : 3
913,914c913,914
<           "x" : 18,
<           "y" : 23,
---
>           "x" : 12,
>           "y" : 13,
916c916
<           "h" : 5
---
>           "h" : 3
988c988
<           "y" : 28,
---
>           "y" : 16,
990c990
<           "h" : 7
---
>           "h" : 6
1045c1045
<           "y" : 28,
---
>           "y" : 16,
1047c1047
<           "h" : 7
---
>           "h" : 6
1086c1086,1932
<       }, {
---
>       },
>         {
>           "description" : "v1 の Owner 可視是正 (succeeded した review-fix run を持つ task、または Review 後に implement が再開した task) / Review 到達 task。差戻し率ではない。 読めない run を持つ task は除外し『未評価 task (v1)』に別掲。未評価が 1 件以上ならこの値は下限。",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 0,
>             "y" : 7,
>             "w" : 6,
>             "h" : 3
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_correction_tasks{job=\"codex-workspace-ai-ops-metrics\",kind=\"owner_visible\"} / ignoring(kind) ai_ops_v1_reached_review_tasks{job=\"codex-workspace-ai-ops-metrics\"} and on() (ai_ops_v1_export_ok{job=\"codex-workspace-ai-ops-metrics\"} == 1)",
>               "legendFormat" : "割合",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "Owner に見える是正 task 割合 (v1)",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "percentunit",
>               "noValue" : "v1 未出力",
>               "mappings" : [],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : []
>           },
>           "id" : 40,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "Owner 可視是正の内訳 (task 数)。 読めない run を持つ task は除外し『未評価 task (v1)』に別掲。未評価が 1 件以上ならこの値は下限。",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 6,
>             "y" : 7,
>             "w" : 6,
>             "h" : 3
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_correction_tasks{job=\"codex-workspace-ai-ops-metrics\",kind=\"owner_visible_agent_system\"}",
>               "legendFormat" : "agent 起因で Owner 可視",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_correction_tasks{job=\"codex-workspace-ai-ops-metrics\",kind=\"agent_system\"}",
>               "legendFormat" : "agent 起因 全体、内部 gate 含む",
>               "refId" : "B",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_correction_tasks{job=\"codex-workspace-ai-ops-metrics\",kind=\"owner_visible\"}",
>               "legendFormat" : "Owner 可視 全体",
>               "refId" : "C",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_reached_review_tasks{job=\"codex-workspace-ai-ops-metrics\"}",
>               "legendFormat" : "分母: Review 到達 task",
>               "refId" : "D",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "是正の内訳 (v1, task 数)",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "short",
>               "noValue" : "v1 未出力",
>               "mappings" : [],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : []
>           },
>           "id" : 41,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "gate 失敗 run (CI / codex-review 等) とその後の再作業。Owner に届く前の内部再作業で、v0 是正率には含まれない。 読めない run を持つ task は除外し『未評価 task (v1)』に別掲。未評価が 1 件以上ならこの値は下限。",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 12,
>             "y" : 7,
>             "w" : 6,
>             "h" : 3
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_gate_rework_runs{job=\"codex-workspace-ai-ops-metrics\",part=\"total\"}",
>               "legendFormat" : "run 数",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_gate_rework_tasks{job=\"codex-workspace-ai-ops-metrics\"}",
>               "legendFormat" : "task 数",
>               "refId" : "B",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_gate_rework_runs{job=\"codex-workspace-ai-ops-metrics\",part=\"pending\"}",
>               "legendFormat" : "後続 run 未開始",
>               "refId" : "C",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "内部 gate 再作業 (v1, Owner に届く前)",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "short",
>               "noValue" : "v1 未出力",
>               "mappings" : [],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : []
>           },
>           "id" : 42,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "gate 別の再作業 run 数。",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 18,
>             "y" : 7,
>             "w" : 6,
>             "h" : 6
>           },
>           "transformations" : [
>             {
>               "id" : "organize",
>               "options" : {
>                 "excludeByName" : {
>                   "__name__" : true,
>                   "job" : true,
>                   "instance" : true,
>                   "pod" : true,
>                   "service" : true,
>                   "namespace" : true,
>                   "endpoint" : true,
>                   "container" : true,
>                   "Time" : true,
>                   "prometheus" : true
>                 },
>                 "renameByName" : {}
>               }
>             }
>           ],
>           "type" : "table",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_gate_rework_runs_by_gate{job=\"codex-workspace-ai-ops-metrics\"}",
>               "legendFormat" : "",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false,
>               "format" : "table"
>             }
>           ],
>           "title" : "gate 再作業の内訳 (gate 別, v1)",
>           "fieldConfig" : {
>             "defaults" : {
>               "noValue" : "未出力",
>               "mappings" : []
>             },
>             "overrides" : []
>           },
>           "id" : 43,
>           "options" : {
>             "showHeader" : true,
>             "cellHeight" : "sm"
>           }
>         },
>         {
>           "description" : "gate 情報のある retrying が 10 連続以上続いた系列。 読めない run を持つ task は除外し『未評価 task (v1)』に別掲。未評価が 1 件以上ならこの値は下限。",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 0,
>             "y" : 10,
>             "w" : 6,
>             "h" : 3
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_review_loops{job=\"codex-workspace-ai-ops-metrics\",part=\"series\"}",
>               "legendFormat" : "系列",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_review_loops{job=\"codex-workspace-ai-ops-metrics\",part=\"tasks\"}",
>               "legendFormat" : "task",
>               "refId" : "B",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_review_loops{job=\"codex-workspace-ai-ops-metrics\",part=\"max_length\"}",
>               "legendFormat" : "最長",
>               "refId" : "C",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "レビュー反復ループ (v1, 10 連続以上の gate 失敗)",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "short",
>               "noValue" : "v1 未出力",
>               "mappings" : [],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : []
>           },
>           "id" : 44,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "Review 後に run が再開した task。是正か継続か新 scope か本文を読まないため分類不能。v1 では groom→implement や中断再開を除外している。",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 6,
>             "y" : 10,
>             "w" : 6,
>             "h" : 3
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_correction_tasks{job=\"codex-workspace-ai-ops-metrics\",origin=\"unknown\"}",
>               "legendFormat" : "task 数",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "分類不能の再開 (v0 unknown cause)",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "short",
>               "noValue" : "未出力",
>               "mappings" : [],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : []
>           },
>           "id" : 45,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "review 終了から次 run 開始までの停滞。 読めない run を持つ task は除外し『未評価 task (v1)』に別掲。未評価が 1 件以上ならこの値は下限。",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 18,
>             "y" : 23,
>             "w" : 6,
>             "h" : 4
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_review_wait_hours{job=\"codex-workspace-ai-ops-metrics\",quantile=\"0.5\"}",
>               "legendFormat" : "p50 h",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_review_wait_hours{job=\"codex-workspace-ai-ops-metrics\",quantile=\"0.9\"}",
>               "legendFormat" : "p90 h",
>               "refId" : "B",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_review_wait{job=\"codex-workspace-ai-ops-metrics\",part=\"over_24h\"}",
>               "legendFormat" : "24h 超",
>               "refId" : "C",
>               "instant" : true,
>               "range" : false
>             },
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_review_wait{job=\"codex-workspace-ai-ops-metrics\",part=\"not_followed\"}",
>               "legendFormat" : "再開なし",
>               "refId" : "D",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "Review 停滞 (v1, review 終了→次 run 開始)",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "short",
>               "noValue" : "v1 未出力",
>               "mappings" : [],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : [
>               {
>                 "matcher" : {
>                   "id" : "byName",
>                   "options" : "p50 h"
>                 },
>                 "properties" : [
>                   {
>                     "id" : "unit",
>                     "value" : "h"
>                   }
>                 ]
>               },
>               {
>                 "matcher" : {
>                   "id" : "byName",
>                   "options" : "p90 h"
>                 },
>                 "properties" : [
>                   {
>                     "id" : "unit",
>                     "value" : "h"
>                   }
>                 ]
>               }
>             ]
>           },
>           "id" : 46,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 20,
>             "y" : 32,
>             "w" : 4,
>             "h" : 3
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_v1_export_ok{job=\"codex-workspace-ai-ops-metrics\"}",
>               "legendFormat" : "export",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "v1 export 状態",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "short",
>               "noValue" : "未配備",
>               "mappings" : [
>                 {
>                   "type" : "value",
>                   "options" : {
>                     "1" : {
>                       "text" : "出力あり",
>                       "color" : "green"
>                     },
>                     "0" : {
>                       "text" : "失敗",
>                       "color" : "red"
>                     }
>                   }
>                 }
>               ],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : []
>           },
>           "id" : 47,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 18,
>             "y" : 35,
>             "w" : 6,
>             "h" : 3
>           },
>           "type" : "stat",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "time() - ai_ops_v1_generated_timestamp_seconds{job=\"codex-workspace-ai-ops-metrics\"}",
>               "legendFormat" : "経過時間",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false
>             }
>           ],
>           "title" : "v1 snapshot 経過時間",
>           "fieldConfig" : {
>             "defaults" : {
>               "unit" : "s",
>               "noValue" : "v1 未出力",
>               "mappings" : [],
>               "thresholds" : {
>                 "mode" : "absolute",
>                 "steps" : [
>                   {
>                     "color" : "blue",
>                     "value" : null
>                   }
>                 ]
>               }
>             },
>             "overrides" : []
>           },
>           "id" : 48,
>           "options" : {
>             "colorMode" : "value",
>             "graphMode" : "none",
>             "justifyMode" : "center",
>             "orientation" : "auto",
>             "textMode" : "value_and_name",
>             "reduceOptions" : {
>               "calcs" : [
>                 "lastNotNull"
>               ],
>               "fields" : "",
>               "values" : false
>             }
>           }
>         },
>         {
>           "description" : "SLI ごとの未計測理由。",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 0,
>             "y" : 44,
>             "w" : 12,
>             "h" : 6
>           },
>           "transformations" : [
>             {
>               "id" : "organize",
>               "options" : {
>                 "excludeByName" : {
>                   "__name__" : true,
>                   "job" : true,
>                   "instance" : true,
>                   "pod" : true,
>                   "service" : true,
>                   "namespace" : true,
>                   "endpoint" : true,
>                   "container" : true,
>                   "Time" : true,
>                   "prometheus" : true,
>                   "Value" : true
>                 },
>                 "renameByName" : {}
>               }
>             }
>           ],
>           "type" : "table",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_sli_unknown_info{job=\"codex-workspace-ai-ops-metrics\"}",
>               "legendFormat" : "",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false,
>               "format" : "table"
>             }
>           ],
>           "title" : "unknown の理由 (分類)",
>           "fieldConfig" : {
>             "defaults" : {
>               "noValue" : "未出力",
>               "mappings" : []
>             },
>             "overrides" : [
>               {
>                 "matcher" : {
>                   "id" : "byName",
>                   "options" : "category"
>                 },
>                 "properties" : [
>                   {
>                     "id" : "mappings",
>                     "value" : [
>                       {
>                         "type" : "value",
>                         "options" : {
>                           "not_connected" : {
>                             "text" : "未接続 (source が無い / 配線されていない)"
>                           },
>                           "history_missing" : {
>                             "text" : "履歴欠損 (入力の欠落・拒否・読めない run があり確定できない)"
>                           },
>                           "unclassifiable" : {
>                             "text" : "分類不能 (metadata だけでは判別できない)"
>                           },
>                           "out_of_scope" : {
>                             "text" : "対象外 (取得しない方針)"
>                           }
>                         }
>                       }
>                     ]
>                   }
>                 ]
>               }
>             ]
>           },
>           "id" : 49,
>           "options" : {
>             "showHeader" : true,
>             "cellHeight" : "sm"
>           }
>         },
>         {
>           "description" : "欠落・拒否・読めない run などの件数。1 件でもあれば該当 SLI は確定値を出さない。",
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "gridPos" : {
>             "x" : 12,
>             "y" : 44,
>             "w" : 12,
>             "h" : 6
>           },
>           "transformations" : [
>             {
>               "id" : "organize",
>               "options" : {
>                 "excludeByName" : {
>                   "__name__" : true,
>                   "job" : true,
>                   "instance" : true,
>                   "pod" : true,
>                   "service" : true,
>                   "namespace" : true,
>                   "endpoint" : true,
>                   "container" : true,
>                   "Time" : true,
>                   "prometheus" : true
>                 },
>                 "renameByName" : {
>                   "Value" : "件数"
>                 }
>               }
>             }
>           ],
>           "type" : "table",
>           "targets" : [
>             {
>               "datasource" : {
>                 "type" : "prometheus",
>                 "uid" : "${datasource}"
>               },
>               "expr" : "ai_ops_sli_unknown_detail{job=\"codex-workspace-ai-ops-metrics\"}",
>               "legendFormat" : "",
>               "refId" : "A",
>               "instant" : true,
>               "range" : false,
>               "format" : "table"
>             }
>           ],
>           "title" : "unknown の件数 (詳細)",
>           "fieldConfig" : {
>             "defaults" : {
>               "noValue" : "未出力",
>               "mappings" : []
>             },
>             "overrides" : []
>           },
>           "id" : 50,
>           "options" : {
>             "showHeader" : true,
>             "cellHeight" : "sm"
>           }
>         }, {
1088c1934
<         "title" : "負担 (Owner)",
---
>         "title" : "未計測の指標と理由 (unknown は 0 ではない)",
1093c1939
<           "y" : 35,
---
>           "y" : 43,
1099c1945
<         "description" : "状況催促・同承認繰返し等の救援 event の source が未接続のため現在は unknown",
---
>         "description" : "状況催促・同承認繰返し等の救援 event の source が未接続のため現在は unknown 理由カテゴリ: 未接続。",
1106,1107c1952,1953
<           "y" : 36,
<           "w" : 8,
---
>           "y" : 50,
>           "w" : 6,
1168c2014
<         "description" : "approval_key 付き承認 event の source が未接続のため unknown",
---
>         "description" : "approval_key 付き承認 event の source が未接続のため unknown 理由カテゴリ: 未接続。",
1174,1176c2020,2022
<           "x" : 8,
<           "y" : 36,
<           "w" : 8,
---
>           "x" : 6,
>           "y" : 50,
>           "w" : 6,
1237c2083
<         "description" : "Hermes observer の approval.requested/resolved hook 件数 (0 は hook 未発火で、承認なしの証明ではない)",
---
>         "description" : "Hermes observer の approval.requested/resolved hook 件数 (0 は hook 未発火で、承認なしの証明ではない) Hermes 側の承認 event はこの Prom 系列で直接観測する (SLI 集計入力への join は会話 ID が opaque のため未実施、現在 0 件)。",
1243,1245c2089,2091
<           "x" : 16,
<           "y" : 36,
<           "w" : 8,
---
>           "x" : 12,
>           "y" : 50,
>           "w" : 6,
1297c2143
<           "y" : 40,
---
>           "y" : 22,
1310,1312c2156,2158
<           "y" : 41,
<           "w" : 8,
<           "h" : 7
---
>           "y" : 23,
>           "w" : 6,
>           "h" : 4
1366,1369c2212,2215
<           "x" : 8,
<           "y" : 41,
<           "w" : 8,
<           "h" : 7
---
>           "x" : 6,
>           "y" : 23,
>           "w" : 6,
>           "h" : 4
1449,1452c2295,2298
<           "x" : 16,
<           "y" : 41,
<           "w" : 8,
<           "h" : 7
---
>           "x" : 12,
>           "y" : 23,
>           "w" : 6,
>           "h" : 4
1504c2350
<           "y" : 48,
---
>           "y" : 27,
1506c2352
<           "h" : 7
---
>           "h" : 4
1557c2403
<           "y" : 48,
---
>           "y" : 27,
1559c2405
<           "h" : 7
---
>           "h" : 4
1603c2449
<         "description" : "Ready 遷移時刻 event が無いため unknown",
---
>         "description" : "Ready 遷移時刻 event が無いため unknown 理由カテゴリ: 未接続。",
1609,1611c2455,2457
<           "x" : 0,
<           "y" : 55,
<           "w" : 12,
---
>           "x" : 18,
>           "y" : 50,
>           "w" : 6,
1672c2518
<         "description" : "subscription CLI は token/cost を返さないため unknown (API 単価換算はしない)",
---
>         "description" : "subscription CLI は token/cost を返さないため unknown (API 単価換算はしない) 理由カテゴリ: 対象外。",
1678,1679c2524,2525
<           "x" : 12,
<           "y" : 55,
---
>           "x" : 0,
>           "y" : 54,
1727a2574,2629
>         "options" : {
>           "colorMode" : "value",
>           "graphMode" : "none",
>           "justifyMode" : "center",
>           "orientation" : "auto",
>           "textMode" : "value_and_name",
>           "reduceOptions" : {
>             "calcs" : [ "lastNotNull" ],
>             "fields" : "",
>             "values" : false
>           }
>         }
>       }, {
>         "title" : "未評価 task (v1, 読めない run を持つ task)",
>         "description" : "summary.edn が欠落/破損している run を持つ task。どの v1 分類だったか分からないため、v1 の分母・分子・遷移・gate 再作業・反復ループ・Review 停滞のすべてから除外し、件数だけをここに出す。1 件以上なら他の v1 値は下限(確定値ではない)。v0 の unevaluated-input-missing と同じ扱い。",
>         "datasource" : {
>           "type" : "prometheus",
>           "uid" : "${datasource}"
>         },
>         "gridPos" : {
>           "x" : 18,
>           "y" : 13,
>           "w" : 6,
>           "h" : 3
>         },
>         "type" : "stat",
>         "targets" : [ {
>           "datasource" : {
>             "type" : "prometheus",
>             "uid" : "${datasource}"
>           },
>           "expr" : "ai_ops_v1_snapshot{job=\"codex-workspace-ai-ops-metrics\",part=\"unevaluated_tasks\"} and on() (ai_ops_v1_export_ok{job=\"codex-workspace-ai-ops-metrics\"} == 1)",
>           "legendFormat" : "task",
>           "refId" : "A",
>           "instant" : true,
>           "range" : false
>         } ],
>         "fieldConfig" : {
>           "defaults" : {
>             "unit" : "short",
>             "noValue" : "v1 未出力",
>             "mappings" : [ ],
>             "thresholds" : {
>               "mode" : "absolute",
>               "steps" : [ {
>                 "color" : "blue",
>                 "value" : null
>               }, {
>                 "color" : "orange",
>                 "value" : 1
>               } ]
>             }
>           },
>           "overrides" : [ ]
>         },
>         "id" : 51,
ℹ️ 上記の差分が見つかりました

@boxp
boxp merged commit a457dc3 into main Oct 31, 2026
7 checks passed
@boxp
boxp deleted the codex-task-board/BOXP-360-20261031T000556Z-587aa903-29ea-4b7a-960e-159a97e8111e branch October 31, 2026 05:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant