IncidentCrafterDeployerTargetNotReady

Severity: warning · Fires after: 15m · Rule: central/prometheus/rules/crafter.yml

What it means

A CrafterCMS Deployer target has not reached INIT_COMPLETED for 15 minutes. {{ $labels.tier }}/{{ $labels.site }}/{{ $labels.env }} identifies it.

A target that never initialises does not deploy content. Authoring will appear to publish successfully while delivery keeps serving stale content — no error surfaces to the author.

Expression

crafter_deployer_target_init_completed == 0

Sourced from both Deployers' target/get-all endpoint, polled by crafter-exporter.

Why 15 minutes

Targets legitimately take a while to initialise after a stack restart, especially on first run when they clone the site repository. Below 15 minutes this fires on every normal restart.

First checks

ssh jakefear@docker2 'docker ps --filter name=deployer'
ssh jakefear@docker2 'docker logs --tail 200 <deployer-container>'
ssh jakefear@docker2 'docker exec <deployer-container> curl -s localhost:9191/api/1/target/get-all | python3 -m json.tool'

Common causes: the site's git repository is unreachable or has bad credentials; the target's config YAML is malformed; or a previous run left a lock behind.

How to clear

Fix the underlying cause and let the target initialise. If it is wedged, restart the Deployer container. The alert clears once init_completed reads 1.

Notes

Content not reaching the live site is a delivery symptom but will not trigger IncidentCrafterVhostDown — the site keeps serving its old content perfectly well. This alert is the only automated signal that publishing has silently stopped working.