IncidentVisibilityExporterDown

Severity: warning · Fires after: 30m · Rule: central/prometheus/rules/visibility.yml

What it means

The visibility-exporter container is not being scraped. Every webmaster_* and seo_* series stops, and with them every other SEO alert goes blind — an absent series never satisfies a comparison, so nothing else can fire.

Expression

absent(up{job="visibility-exporter"} == 1)

The job is excluded from ServiceDown (critical) on purpose; until 2026-10-01 that exclusion left nothing watching it at all.

First checks

ssh jakefear@docker2 'cd /opt/jakemon && docker compose ps visibility-exporter && docker compose logs --tail 100 visibility-exporter'

How to clear

Usually a crash on a bad edit to the bind-mounted visibility/ tree, or an OOM (VIS_EXPORTER_MEM_LIMIT, default 128m). Fix, then bin/deploy-central.sh and docker compose up -d --force-recreate visibility-exporter.

Notes

State (sweep cursor, decay history, snapshots) lives in the visibility-data volume and survives a restart; the gauges themselves are in-memory and reappear after the first poll, a few minutes in.