diff --git a/config/components/observability/alerts/dlq-alerts.yaml b/config/components/observability/alerts/dlq-alerts.yaml index 512d40cc..00936729 100644 --- a/config/components/observability/alerts/dlq-alerts.yaml +++ b/config/components/observability/alerts/dlq-alerts.yaml @@ -51,7 +51,10 @@ spec: labels: severity: warning component: activity-processor - team: '{{ if $labels.policy_team }}{{ $labels.policy_team }}{{ else }}sre{{ end }}' + # A policy that declares no owner falls back to activity's own: the catalog's owner of + # activity-system, service control-plane, team platform. + service: '{{ if $labels.service }}{{ $labels.service }}{{ else }}control-plane{{ end }}' + team: '{{ if $labels.policy_team }}{{ $labels.policy_team }}{{ else }}platform{{ end }}' annotations: summary: "Activity policy{{ if $labels.policy_name }} {{ $labels.policy_name }}{{ end }} is failing to generate activities" description: "Activity processing{{ if $labels.cluster }} on {{ $labels.cluster }}{{ end }} is sending {{ $value }} {{ $labels.event_type }} events/sec for {{ $labels.api_group }}/{{ $labels.kind }} to the dead-letter queue after {{ $labels.error_type }} failures. This rate has persisted for 15 minutes. Check the activity policy and processor logs for the failing rule and event payload." @@ -65,7 +68,8 @@ spec: labels: severity: warning component: activity-processor - team: sre + service: control-plane + team: platform annotations: summary: "Events that failed activity processing cannot be saved for retry" description: "The activity processor{{ if $labels.cluster }} on {{ $labels.cluster }}{{ end }} reports {{ $value }} errors/sec while saving failed {{ $labels.event_type }} events to the dead-letter queue (phase: {{ $labels.error_phase }}). Check processor logs and queue connectivity so events that failed activity policy processing can be retained for retry." @@ -92,7 +96,10 @@ spec: labels: severity: warning component: activity-processor - team: '{{ if $labels.policy_team }}{{ $labels.policy_team }}{{ else }}sre{{ end }}' + # A policy that declares no owner falls back to activity's own: the catalog's owner of + # activity-system, service control-plane, team platform. + service: '{{ if $labels.service }}{{ $labels.service }}{{ else }}control-plane{{ end }}' + team: '{{ if $labels.policy_team }}{{ $labels.policy_team }}{{ else }}platform{{ end }}' annotations: summary: "Activity policy{{ if $labels.policy_name }} {{ $labels.policy_name }}{{ end }} events keep failing retries" description: "Activity policy retries{{ if $labels.cluster }} on {{ $labels.cluster }}{{ end }} for {{ $labels.api_group }}/{{ $labels.kind }} recorded {{ $value }} failures at or above the high retry threshold in the last hour. The count can include repeated attempts for the same event. Check the policy and processor logs for persistent evaluation or delivery failures." @@ -119,7 +126,10 @@ spec: labels: severity: warning component: activity-processor - team: '{{ if $labels.policy_team }}{{ $labels.policy_team }}{{ else }}sre{{ end }}' + # A policy that declares no owner falls back to activity's own: the catalog's owner of + # activity-system, service control-plane, team platform. + service: '{{ if $labels.service }}{{ $labels.service }}{{ else }}control-plane{{ end }}' + team: '{{ if $labels.policy_team }}{{ $labels.policy_team }}{{ else }}platform{{ end }}' annotations: summary: "Activity policy{{ if $labels.policy_name }} {{ $labels.policy_name }}{{ end }} has recurring activity generation failures" description: "Activity processing{{ if $labels.cluster }} on {{ $labels.cluster }}{{ end }} sent {{ $value }} {{ $labels.event_type }} events for {{ $labels.api_group }}/{{ $labels.kind }} to the dead-letter queue in the last 6 hours with {{ $labels.error_type }} errors. Inspect the activity policy and failed payloads for event shapes its rules do not handle." @@ -157,7 +167,10 @@ spec: labels: severity: warning component: activity-processor - team: '{{ if $labels.policy_team }}{{ $labels.policy_team }}{{ else }}sre{{ end }}' + # A policy that declares no owner falls back to activity's own: the catalog's owner of + # activity-system, service control-plane, team platform. + service: '{{ if $labels.service }}{{ $labels.service }}{{ else }}control-plane{{ end }}' + team: '{{ if $labels.policy_team }}{{ $labels.policy_team }}{{ else }}platform{{ end }}' subject: "{{ $labels.policy_name }}" annotations: summary: "Activity policy {{ $labels.policy_name }} keeps failing during retries" @@ -195,7 +208,10 @@ spec: labels: severity: warning component: activity-processor - team: '{{ if $labels.policy_team }}{{ $labels.policy_team }}{{ else }}sre{{ end }}' + # A policy that declares no owner falls back to activity's own: the catalog's owner of + # activity-system, service control-plane, team platform. + service: '{{ if $labels.service }}{{ $labels.service }}{{ else }}control-plane{{ end }}' + team: '{{ if $labels.policy_team }}{{ $labels.policy_team }}{{ else }}platform{{ end }}' annotations: summary: "Activity policy {{ $labels.policy_name }} is failing to generate activities" description: "Activity policy {{ $labels.policy_name }} for {{ $labels.api_group }}/{{ $labels.kind }} is sending {{ $value }} events/sec to the dead-letter queue with {{ $labels.error_type }} errors. Check the policy's rules against failed event payloads in the activity-processor logs." diff --git a/test/observability/dlq-alerts.test.yaml b/test/observability/dlq-alerts.test.yaml index 133f3089..cb29ef2f 100644 --- a/test/observability/dlq-alerts.test.yaml +++ b/test/observability/dlq-alerts.test.yaml @@ -33,7 +33,8 @@ tests: error_type: cel_summary severity: warning component: activity-processor - team: sre + team: platform + service: control-plane subject: networking.datumapis.com-httpproxy exp_annotations: summary: Activity policy networking.datumapis.com-httpproxy keeps failing during retries @@ -49,7 +50,8 @@ tests: error_type: cel_summary severity: warning component: activity-processor - team: sre + team: platform + service: control-plane subject: another-policy exp_annotations: summary: Activity policy another-policy keeps failing during retries @@ -65,7 +67,8 @@ tests: error_type: cel_summary severity: warning component: activity-processor - team: sre + team: platform + service: control-plane subject: networking.datumapis.com-httpproxy exp_annotations: summary: Activity policy networking.datumapis.com-httpproxy keeps failing during retries @@ -81,7 +84,8 @@ tests: error_type: cel_match severity: warning component: activity-processor - team: sre + team: platform + service: control-plane subject: networking.datumapis.com-httpproxy exp_annotations: summary: Activity policy networking.datumapis.com-httpproxy keeps failing during retries @@ -120,7 +124,8 @@ tests: error_type: cel_summary severity: warning component: activity-processor - team: sre + team: platform + service: control-plane subject: networking.datumapis.com-httpproxy exp_annotations: summary: Activity policy networking.datumapis.com-httpproxy keeps failing during retries @@ -169,7 +174,8 @@ tests: error_type: cel_summary severity: warning component: activity-processor - team: sre + team: platform + service: control-plane subject: networking.datumapis.com-httpproxy exp_annotations: summary: Activity policy networking.datumapis.com-httpproxy keeps failing during retries @@ -230,7 +236,8 @@ tests: error_type: cel_summary severity: warning component: activity-processor - team: sre + team: platform + service: control-plane subject: another-policy exp_annotations: summary: Activity policy another-policy keeps failing during retries @@ -246,7 +253,8 @@ tests: error_type: cel_summary severity: warning component: activity-processor - team: sre + team: platform + service: control-plane subject: networking.datumapis.com-httpproxy exp_annotations: summary: Activity policy networking.datumapis.com-httpproxy keeps failing during retries