Skip to content

Self-Hosted Observability on Hetzner

Our monitoring setup had grown fragmented: a mix of free-tier SaaS dashboards plus limited commercial plans. We needed a professional-grade, unified observability stack without ongoing licensing costs.

I consolidated everything into a self-hosted stack on a dedicated Hetzner server.


  • Hardened Ubuntu host (automatic security updates, ufw firewall, fail2ban, SSH key auth only).
  • Partitioned storage for metrics/retention.
  • Docker + systemd units for reproducibility.

  • Sentry — Centralized application error tracking.
  • Prometheus — Metrics scraping, service discovery, alert rules.
  • Grafana — Visualization dashboards, alert routing.
  • Tempo — Distributed tracing with Jaeger/OTel integration.

[Apps] → [OpenTelemetry SDKs] → [Prometheus + Tempo] ↘ [Sentry] [Grafana]


  • Unified observability: errors, metrics, traces in one place.
  • Reliability: local alerts + Slack notifications.
  • Scalability: server sized to handle projected growth.