Files
awoooi/docs/evaluations/observability_contract_matrix_2026-06-05.json
Your Name 4944d77093
All checks were successful
CD Pipeline / tests (push) Successful in 1m29s
Code Review / ai-code-review (push) Successful in 16s
CD Pipeline / build-and-deploy (push) Successful in 4m45s
CD Pipeline / post-deploy-checks (push) Successful in 1m31s
feat(governance): 新增監控合約降噪矩陣
2026-06-05 12:44:47 +08:00

392 lines
17 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"schema_version": "observability_contract_matrix_v1",
"generated_at": "2026-06-05T12:24:00+08:00",
"program_status": {
"overall_completion_percent": 100,
"current_priority": "P1",
"current_task_id": "P1-003",
"next_task_id": "P1-004",
"read_only_mode": true
},
"source_refs": [
"docs/schemas/observability_contract_matrix_v1.schema.json",
"docs/HARD_RULES.md#alertmanager-routing",
"ops/alertmanager/alertmanager.yml",
"ops/monitoring/alerts.yml",
"ops/monitoring/alerts-unified.yml",
"k8s/monitoring/prometheus.yml",
"k8s/monitoring/alert-chain-monitor.yaml",
"ops/grafana/dashboards/ai-monitoring.json",
"ops/grafana/dashboards/infra-monitoring.json",
"ops/signoz/alerting/rules.yaml",
"ops/signoz/alerting/log-rules.md",
"ops/signoz/otel-collector-config-phase-o.yaml",
"k8s/observability/otel-collector-daemonset.yaml",
"docs/runbooks/RUNBOOK-PHASE-E-SIGNOZ-WEBHOOK.md",
"docs/adr/ADR-053-observability-signoz-unified-architecture.md",
"docs/adr/ADR-090-monitoring-blindspot-governance.md",
"docs/LOGBOOK.md"
],
"rollups": {
"total_surfaces": 6,
"by_kind": {
"prometheus_rules": 1,
"alertmanager_route": 1,
"signoz_clickhouse": 1,
"grafana_dashboard": 1,
"sentry_source_link": 1,
"otel_event_exporter": 1
},
"by_status": {
"action_required": 2,
"verified": 4
},
"by_evidence_status": {
"committed_manifest": 4,
"production_readback_recorded": 2
},
"by_noise_policy_status": {
"proposal_only": 2,
"preserved": 3,
"needs_proposal": 1
},
"surface_ids_requiring_action": [
"grafana_dashboard_inventory",
"prometheus_alert_rule_catalog"
],
"surface_ids_with_proposal_only_noise_policy": [
"alertmanager_awoooi_route",
"prometheus_alert_rule_catalog"
],
"noise_reduction_opportunities_total": 5,
"approval_required_opportunity_ids": [
"alertmanager_grouping_inhibit_tuning",
"prometheus_noise_rule_tuning"
],
"classification_gap_ids": [
"grafana_dashboard_owner_status",
"prometheus_alert_rule_catalog_seed",
"signoz_provider_native_real_alert_gap"
],
"read_only_denials_total": 12,
"surfaces_requiring_action": [
"grafana_dashboard_inventory",
"prometheus_alert_rule_catalog"
],
"proposal_only_count": 5
},
"observability_surfaces": [
{
"surface_id": "prometheus_alert_rule_catalog",
"display_name": "Prometheus ",
"kind": "prometheus_rules",
"status": "action_required",
"risk_level": "critical",
"evidence_status": "committed_manifest",
"noise_policy_status": "proposal_only",
"coverage_contract": " ops/monitoring/alerts-unified.yml k8s/monitoring/* labelrunbook reload Prometheus alert rules",
"current_contract": "committed ops/monitoring/alerts-unified.yml 118 alertLOGBOOK production Prometheus rule count 142 smoke ",
"evidence_refs": [
"ops/monitoring/alerts-unified.yml",
"ops/monitoring/alerts.yml",
"k8s/monitoring/alert-chain-monitor.yaml",
"docs/LOGBOOK.md"
],
"next_action": " alert_rule_catalog seed proposal rule 調 P2-003 "
},
{
"surface_id": "alertmanager_awoooi_route",
"display_name": "Alertmanager AWOOOI API ",
"kind": "alertmanager_route",
"status": "verified",
"risk_level": "critical",
"evidence_status": "committed_manifest",
"noise_policy_status": "proposal_only",
"coverage_contract": "Alertmanager receiver AWOOOI APIOpenClaw AI Alertmanager receiver",
"current_contract": "ops/alertmanager/alertmanager.yml awoooi-webhook telegram-direct alert-chain/API health group_by/team/alertname/severity ",
"evidence_refs": [
"docs/HARD_RULES.md#alertmanager-routing",
"ops/alertmanager/alertmanager.yml"
],
"next_action": " group_byinhibitrepeat interval proposal receiverroute silence"
},
{
"surface_id": "signoz_clickhouse_ingestion",
"display_name": "SigNoz / ClickHouse / Provider Webhook",
"kind": "signoz_clickhouse",
"status": "verified",
"risk_level": "high",
"evidence_status": "production_readback_recorded",
"noise_policy_status": "preserved",
"coverage_contract": "SigNoz webhookClickHouse TTLOTEL prometheus receiver source provider heartbeat heartbeat provider-native ",
"current_contract": "ops/signoz/alerting/rules.yamllog-rules.md RUNBOOK-PHASE-E-SIGNOZ-WEBHOOK webhook / rulesLOGBOOK SigNoz webhook source provider heartbeat ",
"evidence_refs": [
"ops/signoz/alerting/rules.yaml",
"ops/signoz/alerting/log-rules.md",
"ops/signoz/otel-collector-config-phase-o.yaml",
"docs/runbooks/RUNBOOK-PHASE-E-SIGNOZ-WEBHOOK.md",
"docs/adr/ADR-053-observability-signoz-unified-architecture.md",
"docs/LOGBOOK.md"
],
"next_action": " provider heartbeat / upstream canary provider-native incident correlation gap "
},
{
"surface_id": "grafana_dashboard_inventory",
"display_name": "Grafana Dashboard / Alert Chain ",
"kind": "grafana_dashboard",
"status": "action_required",
"risk_level": "medium",
"evidence_status": "committed_manifest",
"noise_policy_status": "needs_proposal",
"coverage_contract": " committed dashboard JSON Grafana API dashboard datasource",
"current_contract": "ai-monitoring dashboard Alert Chain infra-monitoring dashboard Prometheus target up/down API request rate",
"evidence_refs": [
"ops/grafana/dashboards/ai-monitoring.json",
"ops/grafana/dashboards/infra-monitoring.json"
],
"next_action": " dashboard ownerdatasource parity alert-chain panel fresh readback import "
},
{
"surface_id": "sentry_source_link_canary",
"display_name": "Sentry Webhook / Source Link Canary",
"kind": "sentry_source_link",
"status": "verified",
"risk_level": "high",
"evidence_status": "production_readback_recorded",
"noise_policy_status": "preserved",
"coverage_contract": "Sentry webhook source-link canary provider alert ",
"current_contract": "LOGBOOK Alertmanager / SigNoz / Sentry webhook Source Link Canary source provider freshness / incident matching ",
"evidence_refs": [
"docs/adr/ADR-022-sentry-integration-architecture.md",
"docs/LOGBOOK.md"
],
"next_action": " heartbeatupstream canarydirect/candidate/applied source link Sentry project webhook"
},
{
"surface_id": "otel_event_exporter_bridge",
"display_name": "OTEL Collector / Event Exporter",
"kind": "otel_event_exporter",
"status": "verified",
"risk_level": "medium",
"evidence_status": "committed_manifest",
"noise_policy_status": "preserved",
"coverage_contract": "OTEL Collector DaemonSet SigNoz prometheus receiver collector exporter",
"current_contract": "k8s/observability/otel-collector-daemonset.yaml ops/signoz/otel-collector-config-phase-o.yaml log/metric/trace pipelineLOGBOOK OTEL Collector / Event Exporter post-deploy smoke ",
"evidence_refs": [
"k8s/observability/otel-collector-daemonset.yaml",
"ops/signoz/otel-collector-config-phase-o.yaml",
"docs/LOGBOOK.md"
],
"next_action": " collector/exporter health observability readiness deploy / restart "
}
],
"noise_reduction_opportunities": [
{
"opportunity_id": "prometheus_noise_rule_tuning",
"display_name": "Prometheus 調",
"status": "approval_required",
"proposal_only": true,
"impact": " stale provider SLO resource alert operator alert rules",
"target_surface_ids": [
"prometheus_alert_rule_catalog"
],
"evidence_refs": [
"ops/monitoring/alerts-unified.yml",
"docs/adr/ADR-090-monitoring-blindspot-governance.md"
],
"next_action": " P2-003 24h alert frequency / fingerprint evidence"
},
{
"opportunity_id": "alertmanager_grouping_inhibit_tuning",
"display_name": "Alertmanager grouping / inhibit ",
"status": "approval_required",
"proposal_only": true,
"impact": " team / alertname / severity Host/K8s receiver",
"target_surface_ids": [
"alertmanager_awoooi_route"
],
"evidence_refs": [
"ops/alertmanager/alertmanager.yml",
"docs/HARD_RULES.md#alertmanager-routing"
],
"next_action": " diff proposal rollback plan reload Alertmanager"
},
{
"opportunity_id": "success_notification_quiet_policy",
"display_name": "Provider heartbeat ",
"status": "ready_for_proposal",
"proposal_only": true,
"impact": " Sentry / SigNoz heartbeat provider alert",
"target_surface_ids": [
"signoz_clickhouse_ingestion",
"sentry_source_link_canary"
],
"evidence_refs": [
"docs/LOGBOOK.md",
"docs/runbooks/RUNBOOK-PHASE-E-SIGNOZ-WEBHOOK.md"
],
"next_action": " UI / API heartbeatupstream canarydirect source linkcandidate source link "
},
{
"opportunity_id": "grafana_dashboard_owner_freshness",
"display_name": "Grafana dashboard owner / freshness ",
"status": "ready_for_proposal",
"proposal_only": true,
"impact": " dashboard datasource owner stale panel ",
"target_surface_ids": [
"grafana_dashboard_inventory"
],
"evidence_refs": [
"ops/grafana/dashboards/ai-monitoring.json",
"ops/grafana/dashboards/infra-monitoring.json"
],
"next_action": " owner/freshness matrix Grafana"
},
{
"opportunity_id": "success_notification_quiet_policy",
"display_name": " / ",
"status": "preserved",
"proposal_only": true,
"impact": "沿 Gitea quiet-success observability smoke API/LOGBOOK",
"target_surface_ids": [
"otel_event_exporter_bridge",
"signoz_clickhouse_ingestion"
],
"evidence_refs": [
"docs/ai/AI_AGENT_AUTOMATION_WORKLIST_2026-06-04.md",
"docs/LOGBOOK.md"
],
"next_action": "P1-003 Telegram "
}
],
"classification_gaps": [
{
"gap_id": "prometheus_alert_rule_catalog_seed",
"display_name": "Alert rule catalog seed ",
"status": "action_required",
"severity": "high",
"summary": "ADR-090 alert_rule_catalog noise_rate superseded_by_rule_id P1-003 ",
"evidence_refs": [
"docs/adr/ADR-090-monitoring-blindspot-governance.md",
"ops/monitoring/alerts-unified.yml"
],
"next_action": "P2-003 seed proposal migration/rollback "
},
{
"gap_id": "signoz_provider_native_real_alert_gap",
"display_name": "SigNoz provider-native ",
"status": "action_required",
"severity": "medium",
"summary": "Heartbeat / upstream canary provider-native alert incident correlation",
"evidence_refs": [
"docs/LOGBOOK.md",
"docs/runbooks/RUNBOOK-PHASE-E-SIGNOZ-WEBHOOK.md"
],
"next_action": " provider-native alert coverage side effect signed canary "
},
{
"gap_id": "grafana_dashboard_owner_status",
"display_name": "Grafana dashboard owner / datasource ",
"status": "action_required",
"severity": "medium",
"summary": "Committed dashboard JSON datasource freshnessownerlast import panel stale ",
"evidence_refs": [
"ops/grafana/dashboards/ai-monitoring.json",
"ops/grafana/dashboards/infra-monitoring.json"
],
"next_action": " dashboard readiness Grafana write API"
}
],
"latest_observations": [
{
"observation_id": "alertmanager_receiver_guard",
"status": "verified",
"summary": "HARD_RULES ops/alertmanager/alertmanager.yml Alertmanager AWOOOI API OpenClaw receiver",
"evidence_refs": [
"docs/HARD_RULES.md#alertmanager-routing",
"ops/alertmanager/alertmanager.yml"
]
},
{
"observation_id": "prometheus_rule_source_split",
"status": "action_required",
"summary": "committed Prometheus ops/monitoring k8s/monitoringP1-003 matrix調 reload",
"evidence_refs": [
"ops/monitoring/alerts-unified.yml",
"k8s/monitoring/alert-chain-monitor.yaml"
]
},
{
"observation_id": "post_deploy_observability_smoke_history",
"status": "verified",
"summary": "LOGBOOK Alertmanager / SigNoz / Sentry webhookSigNozOTEL CollectorEvent Exporter post-deploy smoke ",
"evidence_refs": [
"docs/LOGBOOK.md"
]
}
],
"operator_contract": {
"display_mode": "read_only_observability_contract_matrix",
"must_not_interpret_as": [
"Prometheus alert rule ",
"Alertmanager receiver / route ",
"Alertmanager OpenClaw receiver ",
"Silence ",
"Grafana dashboard ",
"SigNoz / Sentry webhook ",
"Secret ",
"Telegram ",
"deploy / reload / workflow ",
"runtime execution "
],
"secret_display_policy": " committed file refsendpoint role redacted metadata tokenwebhook secret authorization header",
"alertmanager_route_policy": "Alertmanager webhook AWOOOI APIOpenClaw Alertmanager webhook API ",
"noise_reduction_policy": "P1-003 proposalP2-003 route/rule/silence ",
"notification_policy": " smoke action-required "
},
"operation_boundaries": {
"read_only_api_allowed": true,
"prometheus_rule_write_allowed": false,
"prometheus_reload_allowed": false,
"alertmanager_route_write_allowed": false,
"alertmanager_receiver_change_allowed": false,
"alertmanager_to_openclaw_allowed": false,
"silence_create_allowed": false,
"grafana_dashboard_write_allowed": false,
"grafana_api_write_allowed": false,
"signoz_query_mutation_allowed": false,
"signoz_webhook_change_allowed": false,
"sentry_webhook_change_allowed": false,
"otel_collector_deploy_allowed": false,
"event_exporter_restart_allowed": false,
"secret_read_allowed": false,
"secret_plaintext_allowed": false,
"notification_send_allowed": false,
"external_api_call_allowed": false,
"live_prometheus_query_allowed": false,
"workflow_trigger_allowed": false,
"deploy_trigger_allowed": false,
"reload_trigger_allowed": false,
"runtime_execution_allowed": false
},
"approval_boundaries": {
"prometheus_rule_change_authorized": false,
"prometheus_reload_authorized": false,
"alertmanager_route_change_authorized": false,
"alertmanager_receiver_change_authorized": false,
"alertmanager_to_openclaw_authorized": false,
"silence_authorized": false,
"grafana_write_authorized": false,
"signoz_write_authorized": false,
"sentry_write_authorized": false,
"otel_deploy_authorized": false,
"event_exporter_restart_authorized": false,
"notification_send_authorized": false,
"external_call_authorized": false,
"secret_plaintext_allowed": false,
"workflow_trigger_authorized": false,
"deploy_reload_authorized": false,
"runtime_execution_authorized": false
}
}