obs(deploy): alert + dashboard + catalog for runtime start-failure metric#67
Merged
Merged
Conversation
…tric Rule-25 observability for instant_deploy_runtime_failed_detected_total (worker PR #101): the runtime twin of the build-Job-failed detector. Pages when deploy_status_reconcile flips rollouts to failed on ProgressDeadlineExceeded with no available replica (broken image can't start — CreateContainerError 'no command specified', ImagePullBackOff, CrashLoopBackOff). - k8s/prometheus-rules.yaml: instant-worker-deploy-runtime-failed group, >=3 in 30m -> critical (mirrors DeployJobFailedDetected). - newrelic/alerts/deploy-runtime-failed-detected.json: NRQL alert, derivative per reason, ABOVE_OR_EQUALS 3. - newrelic/dashboards/instanode-reliability.json: billboard (1h) + by-reason stacked-bar (6h) tiles. - observability/METRICS-CATALOG.md: catalog row. infra has no auto-apply (rule 15) — operator applies prometheus-rules + imports the NR alert/dashboard JSON. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rule-25 observability for the new
instant_deploy_runtime_failed_detected_total{reason}counter introduced in worker #101 (api twin: #280).That counter fires when
deploy_status_reconcileflips a rollout tofailedbecause it exceeded its progress deadline with no available replica — the broken-image runtime silent-failure class (CreateContainerError "no command specified" from an empty image, ImagePullBackOff, CrashLoopBackOff). It's the runtime twin ofinstant_deploy_job_failed_detected_total(build side).What's here
k8s/prometheus-rules.yaml—instant-worker-deploy-runtime-failedgroup;sum(increase(...[30m])) >= 3→ critical (same posture asDeployJobFailedDetected: tolerate one or two one-off bad images, page on a platform-wide image defect).newrelic/alerts/deploy-runtime-failed-detected.json— NRQL alert,derivative(...,30m)faceted by reason,ABOVE_OR_EQUALS 3.newrelic/dashboards/instanode-reliability.json— billboard (1h, must be 0) + by-reason stacked-bar (6h).observability/METRICS-CATALOG.md— catalog row.Apply
infra has no auto-apply (rule 15). Operator applies
prometheus-rules.yamland imports the NR alert + dashboard JSON.validate.yml(yamllint + kubeconform) is the only gate; the PrometheusRule CRD is skipped via-ignore-missing-schemas.Context: this whole fix came from finding 6 live deploys stuck in
CreateContainerError(474-byte empty images) reported asdeployingforever.🤖 Generated with Claude Code