Observability - Grafana Stack
Datadog charges per host. New Relic charges per ingestion. Both send your metrics and logs to the US. Bunker hosts a complete Grafana stack - Grafana, Prometheus, Loki, Alertmanager - fully managed. Your observability data stays in Europe, and your bill stays readable.
Why the Grafana Stack?​
Grafana is the most widely used open source visualization platform in the world. Paired with Prometheus for metrics and Loki for logs, it forms a complete observability stack that competes head-on with proprietary solutions.
What sets it apart:
- Open source: Grafana (Apache 2.0), Prometheus (Apache 2.0), Loki (AGPLv3). Auditable code, no black box
- Metrics with Prometheus: collection, storage, and PromQL queries across all your application and infrastructure metrics
- Logs with Loki: lightweight and efficient log aggregation, built for Kubernetes. No more wrestling with Elasticsearch clusters
- Alerts with Alertmanager: smart alert routing to Slack, email, PagerDuty, or OpsGenie
- Pre-configured dashboards: Kubernetes monitoring ready to go from day one
Comparison with Alternatives​
| Criteria | Bunker | Datadog | New Relic | Elastic Stack | Uptrace |
|---|---|---|---|---|---|
| Open source | Yes (Apache 2.0) | No | No | Partially (SSPL) | Yes (BSL) |
| Sovereign hosting | Yes (Europe) | No (USA) | No (USA) | Depends on you | Depends on you |
| Metrics | Prometheus (PromQL) | Proprietary | Proprietary | Elasticsearch | ClickHouse |
| Logs | Loki (LogQL) | Proprietary | Proprietary | Elasticsearch | ClickHouse |
| Alerting | Alertmanager | Proprietary | Proprietary | Watcher | Built-in |
| Custom dashboards | Unlimited | Unlimited | Unlimited | Kibana | Built-in |
| REST API | Yes | Yes | Yes | Yes | Yes |
| Predictable cost | EUR 30 excl. tax/month | Per host + ingestion | Per GB ingested | Server + time | Subscription |
| Ops cost | Zero | Zero | Zero | Time + server | Time + server |
What Really Changes​
Datadog billing is notoriously unpredictable. A traffic spike on a Friday night, and your monthly bill doubles. With Bunker, pricing is fixed: EUR 30 excl. tax/month for the entire stack.
Prometheus and Loki use open query languages (PromQL and LogQL). No vendor lock-in on your metrics or log formats. Grafana dashboards export to JSON and re-import anywhere.
Your data never leaves Europe. For regulated industries (healthcare, finance, public sector), this is not a bonus - it is a requirement.
You Keep Control​
- JSON export: all dashboards exportable via the UI or REST API
- Standard formats: Prometheus metrics are portable to any Prometheus-compatible system
- Log portability: standard log formats, migrate to any collector
- Migration: if you leave Bunker, reinstall Grafana + Prometheus + Loki on your own cluster and re-import your dashboards
- Open source licenses: the code stays free, the projects cannot become proprietary
Why Bunker Instead of Self-Hosting?​
You could install the Grafana stack yourself. But here is what that actually looks like:
| Aspect | Self-hosting | Bunker |
|---|---|---|
| Metrics retention | To configure | 30 days included |
| Log retention | To configure | 15 days included |
| Grafana database | PostgreSQL to manage | Managed CNPG |
| Kubernetes dashboards | To import | Pre-configured |
| Alertmanager | To configure | Pre-configured |
| High availability | Your responsibility | Included (SLA target) |
| Backups | To configure | Automatic |
| Security updates | To monitor | Applied |
| NetworkPolicies | To configure | Applied |
| 24/7 monitoring | Ironic, right? | Included |
The critical point with self-hosting is monitoring the monitoring. Who watches Prometheus when Prometheus goes down? At Bunker, the observability stack itself is supervised by an independent monitoring loop.
Quick Start​
1. Deploy from the Console​
- Go to console.getbunker.net
- Create your account or log in
- Deploy the Grafana Stack from the service catalog
- A few minutes later, Grafana, Prometheus, Loki and Alertmanager are ready
2. Access Grafana​
Once the deployment is complete, access your Grafana instance via the URL provided in the console. Admin credentials are available in the service details.
3. First Dashboards​
Kubernetes dashboards come pre-configured. Right after deployment, you can explore:
- Kubernetes / Cluster: CPU, memory, and network overview for the cluster
- Kubernetes / Pods: per-pod consumption, restarts, statuses
- Prometheus / Targets: health status of monitored endpoints
- Loki / Logs: search and filter your application logs
Advanced Features​
Adding a Data Source​
Grafana natively supports many data sources beyond Prometheus and Loki. To add one, head to Grafana settings:
- Go to Configuration > Data Sources
- Click Add data source
- Choose from available sources: InfluxDB, PostgreSQL, MySQL, Elasticsearch, and many more
Creating a Custom Dashboard​
To build a dashboard tailored to your needs:
- Click + > New Dashboard
- Add a panel with Add visualization
- Select your data source (Prometheus for metrics, Loki for logs)
- Write your PromQL or LogQL query
- Save
Here is a PromQL query example to track the HTTP 5xx error rate across your services:
sum(rate(http_requests_total{status=~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))
Configuring Alerts​
Alertmanager comes pre-configured. To create an alert, you can use the Grafana interface:
- Open an existing dashboard panel
- Click Alert > Create alert rule
- Define the condition (for example: CPU > 80% for 5 minutes)
- Configure the notification channel (Slack, email, PagerDuty, OpsGenie)
- Save
Grafana REST API​
All dashboards are manageable via the REST API. Here is how to export a dashboard:
# Retrieve a dashboard by its UID
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
"https://your-instance.getbunker.net/api/dashboards/uid/MY_DASHBOARD_UID"
And to import a dashboard from the Grafana community:
# Import a JSON dashboard
curl -X POST \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d @dashboard.json \
"https://your-instance.getbunker.net/api/dashboards/db"
Sending Application Logs to Loki​
To send your application logs to Loki, use Promtail or the native HTTP client. Here is a quick test with the curl command:
# Send a test log entry to Loki
curl -X POST \
-H "Content-Type: application/json" \
"https://your-loki.getbunker.net/loki/api/v1/push" \
-d '{
"streams": [{
"stream": { "app": "my-service", "env": "production" },
"values": [["'"$(date +%s)000000000"'", "Service started OK"]]
}]
}'
In production, Promtail (or Grafana Agent) automatically collects logs from your Kubernetes pods without manual configuration.
Best Practices​
- Use consistent Prometheus labels (
app,env,team) to simplify PromQL queries - Keep label cardinality low: too many distinct values degrades Prometheus performance
- Structure your logs as JSON to fully leverage LogQL in Loki
- Create alerts on symptoms (latency, error rate) rather than causes (CPU, memory)
- Export your dashboards to JSON and version them in Git
- Use Grafana folders to organize dashboards by team or service
Next Steps​
- Grafana Documentation for advanced features
- Prometheus Documentation for metrics deep dive
- Loki Documentation for log aggregation
- External Backups for complete protection