← Problem Library
K8s L4 K8S 1374 · 12 min

A ServiceMonitor exists and Prometheus scrapes nothing because the monitor moved namespaces while the operator still watches only its original tenant scope

The object is valid, yet discovery never includes it because the operator's watch selector did not follow the namespace move.

K8sPlatform ReliabilityLevel 4Pro12 min
Scenario

A monitoring cleanup centralizes manifests and later one application's metrics vanish despite healthy endpoints.

What to check first
  • Identify the primary failure signal in the The Monitor Was Valid in a Namespace the Operator Never Watched scenario.
  • Separate visible symptoms from the underlying technical dependency.
  • Describe the safest recovery path and the follow-up prevention work.
Checking checklist
  1. Summarize the current impact and the last known change.
  2. Collect direct evidence from logs, runtime state, and configuration before changing anything.
  3. Separate immediate recovery from permanent prevention work.
Recovery and prevention

Check operator namespace watch scope before editing labels or service ports.

Questions worth viewing together
What should you verify first when A ServiceMonitor exists and Prometheus scrapes nothing appears?

Community-field Kubernetes problem inspired by Prometheus Operator patterns where a ServiceMonitor moved outside the operator's watch scope. A correct monitor can still be invisible if it lives outside the operator's discovery boundary.

What usually causes A ServiceMonitor exists and Prometheus scrapes nothing in production?

Teams often blame endpoint health when discovery never saw the monitor at all.

What should you document after resolving A ServiceMonitor exists and Prometheus scrapes nothing?

Namespace refactors for monitor objects should be validated against operator watch selectors.