Monitoring vs Observability
Monitoring tells you what is broken. Observability tells you why. Together, they ensure you detect issues before users do and diagnose root causes quickly.
Prometheus: Metrics Collection
Prometheus scrapes metrics from your applications and infrastructure at configurable intervals. It stores time-series data efficiently and supports powerful query language (PromQL) for alerting and analysis.
# prometheus.yml
scrape_configs:
- job_name: 'odoo'
static_configs:
- targets: ['odoo-server:8069']
- job_name: 'node'
static_configs:
- targets: ['node-exporter:9100']
- job_name: 'postgres'
static_configs:
- targets: ['postgres-exporter:9187']
Grafana: Visualization
Grafana connects to Prometheus (and many other data sources) and creates beautiful, real-time dashboards. Monitor CPU usage, memory, database query performance, HTTP response times, and ERP-specific metrics like active users and invoice processing rates.
Essential Alerts
- CPU usage above 80% for 5 minutes
- Disk space below 20%
- HTTP 5xx error rate above 1%
- Database connection pool exhausted
- SSL certificate expiring within 14 days