CAdvisor Container UP/DOWN Status with Prometheus in Grafana
Learn to Check Docker Container Status Using PromQL in Grafana

👋 Hi, I’m Hardik, a DevOps Engineer passionate about automation, cloud-native systems, and building reliable infrastructure. 🗣️I can speak: German, English, Hindi, and Sindhi
Why Traditional Docker Container Monitoring Fails
Most DevOps teams struggle with Docker container status monitoring using conventional approaches that rely on basic container metrics, such as CPU usage, memory consumption, and network traffic. However, these metrics fail to answer the fundamental question: "Is my container actually running right now?" Traditional container monitoring approaches suffer from critical limitations:
Stale Metrics Problem: Prometheus continues to show metrics for stopped containers, creating false positives in Docker container monitoring dashboards and misleading operational teams.
Metric Persistence Issues: When Docker containers stop, their metrics don't immediately disappear from Prometheus, causing confusion about actual container status and hampering effective container health monitoring.
Complex Query Requirements: Existing Prometheus container monitoring solutions require complex, error-prone queries that are difficult to understand and maintain in production environments.
Inconsistent Monitoring Behavior: Some container status queries work intermittently or fail during container restarts, network issues, or temporary outages, compromising reliable Docker monitoring.
The Ultimate Prometheus Query for Docker Container Status
After extensive testing in production environments, this Prometheus query delivers accurate Docker container status monitoring:
count(time()-container_last_seen{name=~"<container_name>"}<=60) or vector(0)
This Docker container status monitoring query elegantly solves container detection problems by leveraging the container_last_seen metric from cAdvisor combined with Prometheus time functions and vector operations for bulletproof UP/DOWN status detection.

How the Container Status Detection Query Works
Understanding each component of this Prometheus container monitoring query ensures successful implementation:
The container_last_seen Metric for Container Monitoring
The container_last_seen metric provided by cAdvisor (Container Advisor) represents the exact timestamp when Docker containers were last observed running. This metric is crucial for accurate container status monitoring because:
Provides definitive timestamps of the container's last known activity
Automatically updates by cAdvisor while Docker containers are running
Disappears from metrics endpoints when containers stop, enabling precise detection logic
Time-Based Container Health Detection Logic
The expression time()-container_last_seen{name=~"<container_name>"} calculates seconds since the container was last active, forming the foundation of reliable Docker container monitoring:
Running Container: Returns small values (typically under scrape interval)
Stopped Container: Returns large values or no data
60-Second Threshold: Configurable tolerance for network delays and scraping intervals
Binary Status Output with Count Function
The count() function transforms time calculations into a binary container status for a clear Grafana dashboard visualization:
Count Result = 1: Container is UP (last seen within threshold)
Count Result = 0: Container is DOWN (not seen recently)
Multiple Container Support: Handles container scaling automatically
Reliable Fallback with Vector Function
The or vector(0) ensures consistent Docker container monitoring results:
No Matching Containers: Returns 0 instead of "No Data"
Query Error Handling: Prevents Grafana dashboard panel failures
Consistent Output: Always provides numeric results for value mappings
Step-by-Step Grafana Implementation Guide
Step 1: Create Docker Container Status Panel
Implement this Docker container status monitoring solution in Grafana:
Add New Panel: Create a Stat panel in your Grafana dashboard
Configure Prometheus Data Source: Select your Prometheus data source
Enter Container Monitoring Query:
count(time()-container_last_seen{name=~"your_container_name"}<=60) or vector(0)
Replace "your_container_name" with your actual Docker container name or regex patterns for multiple containers.
Step 2: Configure Value Mappings for UP/DOWN Status
Essential Grafana configuration for visual container status indication makes this Docker container monitoring solution immediately actionable:
Value Mapping Setup:
Value 1 = Display "UP" with green background
Value 0 = Display "DOWN" with red background

Step 3: Optimize Visual Formatting
Configure these Grafana settings for optimal Docker container monitoring visualization:
Set panel type to Stat for a clear status display
Enable Colored background for immediate status recognition
Adjust font size for dashboard visibility
Add custom styling for enhanced user experience
Advanced Docker Container Monitoring Use Cases
Multi-Container Environment Monitoring
Monitor multiple Docker containers with pattern matching for comprehensive container status monitoring:
# Monitor web service containers
count(time()-container_last_seen{name=~"web.*|api.*|worker.*"}<=60) or vector(0)
Adjustable Container Monitoring Thresholds
Customize monitoring sensitivity based on your Docker container monitoring requirements:
# Strict monitoring (30 seconds)
count(time()-container_last_seen{name=~"<container_name>"}<=30) or vector(0)
# Relaxed monitoring (2 minutes)
count(time()-container_last_seen{name=~"<container_name>"}<=120) or vector(0)
Service Group Container Monitoring
Monitor Docker container availability by service groups for organized infrastructure monitoring:
count(time()-container_last_seen{name=~"database-.*"}<=60) or vector(0)
Best Practices for Docker Container Monitoring Implementation
Essential Monitoring Infrastructure Setup
Ensure your Docker container monitoring stack includes:
Prometheus: Metric collection and storage for container monitoring
cAdvisor: Container metrics collection (provides container_last_seen)
Grafana: Dashboard visualization and alerting for container status
Container Monitoring Query Optimization
Use specific container name patterns to optimize metric collection
Adjust time thresholds based on scrape intervals and monitoring requirements
Implement label filtering for environment-specific container monitoring
Grafana Dashboard Design for Container Monitoring
Create dedicated container status dashboards for different environments
Implement alerting rules based on Docker container status changes
Maintain consistent color schemes across monitoring dashboards
Troubleshooting Common Container Monitoring Issues
No Data in Docker Container Monitoring
If your container status query returns no data:
Verify cAdvisor is running and collecting container metrics
Check container names match your regex patterns
Ensure Prometheus successfully scrapes cAdvisor metrics
Inconsistent Container Status Results
For inconsistent Docker container monitoring behavior:
Adjust time thresholds to account for scrape intervals
Verify network connectivity between monitoring components
Check resource constraints on monitoring infrastructure
Grafana Value Mapping Issues
If colors aren't displaying correctly in your container monitoring dashboard:
Ensure value mappings are configured for both 0 and 1 values
Verify correct visualization type selection
Check threshold settings don't conflict with value mappings
Frequently Asked Questions (FAQ)
What makes this Prometheus query better for Docker container monitoring?
This query uses the container_last_seen metric, specifically designed for status detection, eliminating false positives from stale metrics that plague other Docker container monitoring methods. The combination with count() and vector(0) ensures reliable binary output, perfect for UP/DOWN status visualization.
How quickly does the query detect stopped Docker containers?
The query detects stopped containers within one Prometheus scrape interval plus your configured threshold (default 60 seconds). For faster container status detection, reduce both the scrape interval and threshold value while considering system overhead.
Can this query monitor multiple Docker containers simultaneously?
Yes, use regex patterns in the container name filter like {name=~"web-.*|api-.*"} to monitor multiple containers. Each matching container contributes to the count, providing the total running containers matching your pattern.
What happens if cAdvisor stops working during container monitoring?
If cAdvisor becomes unavailable, the query returns 0 due to the vector(0) fallback, indicating containers are DOWN. This fail-safe behavior ensures you're alerted to monitoring infrastructure issues rather than receiving false UP status.
How do I adjust Docker container monitoring sensitivity?
Modify the time threshold in the query: use <=30 for 30-second sensitivity or <=120 for 2-minute tolerance. Choose values based on your scrape interval and tolerance for brief network interruptions.
Does this work with Docker Swarm or Kubernetes containers?
Yes, this container monitoring approach works with Docker Swarm, Kubernetes, and standalone Docker containers as long as cAdvisor can collect the container_last_seen metric from your container runtime.
Conclusion: Reliable Docker Container Status Monitoring
This Prometheus query revolutionizes Docker container status monitoring by providing accurate, real-time UP/DOWN detection that eliminates common monitoring pitfalls. The combination of container_last_seen metrics, intelligent time comparison, and proper Grafana value mapping creates a robust container monitoring solution that DevOps teams can trust in production environments.
By implementing this Docker container monitoring approach, you'll gain immediate visibility into container health, reduce false alarms, and ensure rapid response to actual container failures. The query's simplicity makes it maintainable while its reliability makes it production-ready for critical infrastructure monitoring.
Key Benefits of This Container Monitoring Solution:
Accurate real-time Docker container status detection
Eliminates false positives from stale container metrics
Simple implementation with powerful monitoring capabilities
Reliable UP/DOWN visualization in Grafana dashboards
Production-tested solution for critical container monitoring
Transform your Docker container monitoring today with this bulletproof Prometheus query and experience the difference that accurate container status detection makes in your DevOps monitoring infrastructure.




