policy_metrics_monitoring/policy_metadata
2026-02-07 11:55:56 +00:00
..
README.md Add policy_metadata/README.md 2026-02-07 11:55:56 +00:00

Policy Monitoring und Metrik-Dokumentation

Purpose

Dokumentation der Metriken, Schwellenwerte und Metadaten zur Überwachung eines Policy-Rollouts.

Problemstellung: Zur Laufzeitüberwachung von Policy-Rollouts müssen Zustände, Fehler und Unbekannte robust gezählt und dokumentiert werden, um fundierte Aktivierungsentscheidungen zu treffen.

Ziele:

  • Definieren von Go/No-Go-Schwellenwerten für Policy-Aktivierung
  • Absicherung der Fehlertoleranz in der Metrikerfassung
  • Sicherstellung reproduzierbarer CI-Ausgaben über Versions-Hashes

Kontext & Hintergrund

Aggregierte Auswertung von drift_report.json und rollout_metrics.json während des Policy‑Tests.

Gruppierung:

  • pinned
  • unpinned
  • unknowns

Trace-Metadaten / zusätzliche Tags:

  • policy_hash
  • policy_constants.json
  • drift_report.json
  • rollout_metrics.json

Domänenkontext:

  • Policy-Rollout-Überwachung
  • CI-Auswertung
  • Fehlerklassifikation

Motivation:

  • Reduktion zufälliger Policy‑Fehler durch frühe Metrikprüfung
  • Verbesserte Vergleichbarkeit und Nachvollziehbarkeit zwischen Policy‑Versionen

Methode / Spezifikation

Übersicht:

  • Verwendung von Go/No-Go‑Regeln für die Policy‑Aktivierung nach 30 Runs oder 7 Tagen
  • Aggregieren der Metriken WARN, FAIL, Unknowns und Overrides pro Stratum
  • Einbindung eines policy_hash zur Versions‑Nachvollziehbarkeit

Algorithmen / Verfahren:

  • Zählen von WARN und FAIL pro Stratum aus den Drift‑Reports
  • Ermittlung der Unknown‑Rate und Ursache (Contract/Schema)
  • Erfassen von Overrides pro Run mit Flag oder Defaultwert
  • Einordnung fehlender Felder als Unknown‑Klasse unknown_field_missing
  • Sortierung der Ausgabe alphabetisch nach Keys und namenbasiert in Arrays

Input / Output

Input-Anforderungen

Hardware: Software:

  • Python (policy_eval.py)
  • CI‑System mit Zugriff auf drift_report.json

Konfiguration:

  • Schema‑Definition für Drift‑Reports
  • Konfigurierbare Policy‑Schwellenwerte

Erwartete Rohdaten

Felder pro Run:

  • run_id
  • policy_state
  • WARN_count
  • FAIL_count
  • Unknown_count
  • Overrides_count

Formatbeispiele:

  • {"run_id": "r001", "policy_state": "pinned", "WARN_count": 1, ... }

Trace-Daten:

  • Format: JSON
  • Hinweis: Fehlende Felder werden automatisch als Unknown‑Klasse klassifiziert.

Analyse-Ausgaben

Pro Gruppe / pro Governor:

  • WARN/FAIL‑Rate pro Stratum
  • Unknown‑Klassifikation nach Ursache
  • Overrides pro Run

Vergleichsausgaben:

  • pinned vs unpinned

    • Δ: Differenz der kombinierten WARN+FAIL‑Rate
  • Trace-Muster: Stabilitätsprüfung über 30 Runs oder 7 Tage bezogen auf policy_hash

Workflow / Nutzung

Analyse-Workflow:

  • Laden der letzten Drift‑Reports
  • Erzeugen der rollout_metrics.json mit Aggregaten
  • Härten der policy_eval.py gegen Feldfehler
  • Sortierte JSON‑Ausgabe für CI‑Diff
  • Einfügen des policy_hash in CI‑Kommentar

Trace-Template-Anforderungen

Ziel: Sicherstellen, dass alle Drift‑Report‑Datensätze vollständig oder ersetzbar sind

Erforderliche Tags & Metadaten:

  • policy_hash
  • schema_version
  • policy_state

trace-cmd-Setup:

  • Log‑Extraktion über CI‑Pipeline nach jedem Run

Run-Design für Contributors:

  • Mindestens 30 Runs, gemischte Policy‑Strata (pinned/unpinned)

Interpretation & erwartete Ergebnisse

Kernbefunde:

  • System verhält sich stabil trotz unvollständiger Felder.
  • Diff‑freundliche Ausgaben reduzieren CI‑Rauschen signifikant.
  • Go/No‑Go‑Regel operationalisiert Policy‑Freigaben mit klaren numerischen Grenzen.

Implikationen für Experimente:

  • Frühzeitige Aktivierung des WARN‑Gates möglich, wenn Schwellen vor Tag 7 erfüllt sind.

Planungsziel:

  • Ziel: Stabile Policy‑Überwachung ohne Betriebsabbrüche
  • Vorgehen:
    • Schwellenwerte definieren
    • Metriken automatisiert zählen
    • Fehler tolerant klassifizieren

Limitationen & Fallstricke

Datenbezogene Limitationen:

  • Fehlende Felder können semantische Lücken verdecken, wenn Unknown‑Klassifikation zu grob bleibt.

Kausalität & Generalisierbarkeit:

  • Metrikschwellen basieren nur auf beobachteten Runs und sind nicht kausal verallgemeinerbar.

Praktische Fallstricke:

  • Manuelle Overrides können unbemerkt den Go/No‑Go‑Status verzerren.

Nächste Schritte & Erweiterungen

Geplante Experimente:

  • Schema‑Check mit Defaultwerten vor Policy‑Evaluation

Analyseziele:

  • Vereinheitlichung der Unknown‑Labels
  • Automatische Erkennung fehlerhafter Reports

Community-Beiträge:

  • Definition eines offenen Schemas für rollout_metrics.json