Back openDesk Edu for a sovereign, open-source education â every vote counts.
Vote nowSave products you love by clicking the heart icon.
The 2026 sovereignty question: Who actually holds your metrics? Most teams wire logs, traces and user behaviour into a US-hosted SaaS and call it "observability". The bill arrives later â as data-residency risk, renewal lock-in, and a dashboard you cannot audit.
đĄ Fact: Every error trace, user agent and request path you send to a third-party observability vendor leaves your jurisdiction. Under GDPR that is a transfer decision, not a configuration detail.
A managed observability platform is convenient until it isn't. The structural costs are the ones that hurt:
| Cost | What it actually means | Example |
|---|---|---|
| Data residency | Telemetry leaves your jurisdiction | EU user data in a US region |
| Vendor lock-in | Query language and agents are proprietary | Cannot export without re-instrumenting |
| Opaque pricing | Cost scales with ingestion, not value | 10Ă bill after one noisy service |
đ The trade-off in one line: you trade control for convenience, and convenience compounds into dependence.
A self-hosted stack does not mean building telemetry from scratch. It means assembling four mature, open-source projects behind your own network boundary:
đ Why these four: they are the components the CNCF landscape has already settled on. Self-hosting them gives you the same workflow as a SaaS â minus the jurisdiction problem.
Comparison: self-hosted vs. SaaS observability
| Dimension | Self-hosted (Prometheus / Loki / Grafana) | SaaS (Datadog / Grafana Cloud) |
|---|---|---|
| Data location | Your infrastructure | Vendor's region |
| Query language | PromQL / LogQL (open) | Proprietary |
| Lock-in | None â standard formats | High |
| Marginal cost | Storage and compute you already run | Per-host / per-GB ingestion |
| Effort | You operate it | Vendor operates it |
Alloy sits at the edge of your services and ships to Prometheus (metrics) and Loki (logs). Grafana reads both. Nothing leaves your network:
services ââ> Alloy ââ> Prometheus (metrics)
ââââââ> Loki (logs)
Grafana ââqueriesââ> Prometheus + Loki
scrape_configs:
- job_name: app
static_configs:
- targets: ["app:3000"]
- job_name: alloy
static_configs:
- targets: ["alloy:12345"]
logging {
level = "info"
}
loki.source.file "app_logs" {
targets = [{"__path__" = "/var/log/app/*.log"}]
forward_to = [loki.write.local.receiver]
}
loki.write "local" {
endpoint { url = "http://loki:3100/loki/api/v1/push" }
}
Self-hosting is not free. The honest list:
đĄ Rule of thumb: if a single missed dashboard would not page anyone today, a self-hosted stack on the same Kubernetes you already trust is more than enough.
/metrics endpoint.Owning your telemetry is the cheapest sovereignty you will ever buy â because you are already paying for the compute.