Data Integrations
Cockpit can pull data from external monitoring sources and display it alongside your Docker metrics. Each integration uses an adapter that knows how to connect, authenticate, and normalize data from a specific platform.
Available Adapters
| Adapter | Edition | What it pulls |
|---|---|---|
| Prometheus | CE | Metrics (PromQL) + active alerts |
| Grafana | CE | Alert rules + annotations |
| HTTP/JSON | CE | Any REST API with field mappings |
| Datadog | Pro | Monitors, events, CPU metrics |
| CloudWatch | Pro | Alarms + EC2 metrics |
| PagerDuty | Pro | Incidents + response analytics |
How It Works
- Create an integration via the API or mobile app
- Configure the adapter-specific connection settings
- Test the connection to verify credentials
- Cockpit polls the source at the configured interval (default 30-60s)
- Data is normalized into standard types (Metrics, Alerts, Events)
- View the data in the dashboard or query via
/api/integrations/:id/data
Data Types
All adapters normalize their data into these standard types:
Metrics
Numeric values with a name, unit, and labels.
{ "type": "metric", "name": "cpu_usage", "value": 42.5, "unit": "percent", "labels": { "host": "web-01" } }
Alerts
Active alert states with severity.
{ "type": "alert", "name": "High CPU", "severity": "critical", "status": "firing" }
Events
Timestamped occurrences (annotations, resolved incidents, etc.).
{ "type": "event", "title": "Deploy completed", "detail": "v2.1.0 rolled out" }
Creating an Integration
curl -X POST http://localhost:3000/api/integrations \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"adapter": "prometheus",
"name": "Production Prometheus",
"config": { "url": "http://prometheus:9090" },
"poll_interval": 30
}'
Limits
| Edition | Max Integrations |
|---|---|
| CE | 10 |
| Pro | Unlimited |
| Enterprise | Unlimited |