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 PolicyTests.

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 PolicyFehler durch frühe Metrikprüfung
  • Verbesserte Vergleichbarkeit und Nachvollziehbarkeit zwischen PolicyVersionen

Methode / Spezifikation

Übersicht:

  • Verwendung von Go/No-GoRegeln für die PolicyAktivierung nach 30 Runs oder 7 Tagen
  • Aggregieren der Metriken WARN, FAIL, Unknowns und Overrides pro Stratum
  • Einbindung eines policy_hash zur VersionsNachvollziehbarkeit

Algorithmen / Verfahren:

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

Input / Output

Input-Anforderungen

Hardware: Software:

  • Python (policy_eval.py)
  • CISystem mit Zugriff auf drift_report.json

Konfiguration:

  • SchemaDefinition für DriftReports
  • Konfigurierbare PolicySchwellenwerte

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 UnknownKlasse klassifiziert.

Analyse-Ausgaben

Pro Gruppe / pro Governor:

  • WARN/FAILRate pro Stratum
  • UnknownKlassifikation nach Ursache
  • Overrides pro Run

Vergleichsausgaben:

  • pinned vs unpinned

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

Workflow / Nutzung

Analyse-Workflow:

  • Laden der letzten DriftReports
  • Erzeugen der rollout_metrics.json mit Aggregaten
  • Härten der policy_eval.py gegen Feldfehler
  • Sortierte JSONAusgabe für CIDiff
  • Einfügen des policy_hash in CIKommentar

Trace-Template-Anforderungen

Ziel: Sicherstellen, dass alle DriftReportDatensätze vollständig oder ersetzbar sind

Erforderliche Tags & Metadaten:

  • policy_hash
  • schema_version
  • policy_state

trace-cmd-Setup:

  • LogExtraktion über CIPipeline nach jedem Run

Run-Design für Contributors:

  • Mindestens 30 Runs, gemischte PolicyStrata (pinned/unpinned)

Interpretation & erwartete Ergebnisse

Kernbefunde:

  • System verhält sich stabil trotz unvollständiger Felder.
  • Difffreundliche Ausgaben reduzieren CIRauschen signifikant.
  • Go/NoGoRegel operationalisiert PolicyFreigaben mit klaren numerischen Grenzen.

Implikationen für Experimente:

  • Frühzeitige Aktivierung des WARNGates 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 UnknownKlassifikation 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/NoGoStatus verzerren.

Nächste Schritte & Erweiterungen

Geplante Experimente:

  • SchemaCheck mit Defaultwerten vor PolicyEvaluation

Analyseziele:

  • Vereinheitlichung der UnknownLabels
  • Automatische Erkennung fehlerhafter Reports

Community-Beiträge:

  • Definition eines offenen Schemas für rollout_metrics.json