Observability: Does My App Work?


Core Principle

Balance: Not too much, not too little. Every metric and log must answer a real operational question.


Monitoring

The Right Amount

Use Icinga (as already deployed in your infrastructure) and focus on:

Question every metric: If this threshold fires, can we do something about it in 30 seconds? If not, it’s noise.


Metrics Stack

Prometheus — time-series database. Scrapes metrics from application endpoints.

Grafana — visualization layer. When setting up dashboards:

Percona Monitoring and Management — specialized for relational databases


Logging & Tracing

Logging Pitfalls

Git Leaks: Run it over your logs to catch accidentally-logged credentials.

Problem: Pure log volume makes it hard to trace a request through the system.

Solution: Tracing beats logging

Add distributed traces so you can follow one request across service boundaries:


Client-side Observability — Tread Carefully

Sentry + OpenTracing for client logs — but watch out:

Prefer internal collectors. If you must send to SaaS, audit what data is actually transmitted.


Tools & References

Tool Purpose Link
Icinga Alerting & health checks Already deployed
Prometheus Metrics storage & query https://prometheus.io
Grafana Dashboard visualization https://grafana.com
Percona PMM Database monitoring For relational DBs with preset dashboards
Traefik Trace propagation Built-in tracing support
Coroot Open-source APM https://github.com/coroot/coroot — lots of flexibility

Practical Checklist