You deploy a new service on Cloud Run. Metrics start flowing but only half make it to your dashboard. The rest vanish into the ether, haunting your Grafana like ghosts of incomplete instrumentation. That’s when you realize: Cloud Run and Prometheus aren’t speaking the same dialect yet.
Cloud Run is Google’s managed container platform that scales to zero. Prometheus is the open-source sentinel for metrics collection. Each operates brilliantly on its own, but when they work together, you get production-grade observability without wiring nightmares. Done right, Cloud Run Prometheus tracks every HTTP latency, request count, and memory spike in living color.
To make the pairing work, start with the identity story. Prometheus doesn’t authenticate through IAM by default, so the scrape target on Cloud Run must expose metrics securely. You usually add a /metrics endpoint, but the trick is least-privileged access. Use an identity-aware proxy or service account that Cloud Run trusts, and ensure Prometheus scrapes over HTTPS using that credential. The output should feel boringly reliable, not risky or clever.
Monitoring in this world shifts from guessing to knowing. When your Prometheus server hits Cloud Run regularly, it pulls timestamps, container-level utilization, and response codes, turning ephemeral workloads into traceable performance curves. Every metric aligns with the labels you set during deployment, which means alert rules can actually make sense.
If metrics vanish or permissions misfire, test your Prometheus scrape configuration and the Cloud Run public access setting. Always prefer OIDC-backed tokens or workloads with scoped IAM roles over static passwords. Rotation is not optional. Audit tags periodically, and keep one dashboard that screams obvious truths rather than dozens that whisper confusion.