Arsitektur Monitoring Stack
Prometheus scrape metrics dari aplikasi Anda secara periodik. Grafana membaca data dari Prometheus untuk visualisasi. AlertManager mengirim notifikasi saat metric melewati threshold.
Instrumentasi Node.js App
Install prom-client: library Prometheus resmi untuk Node.js. Expose endpoint /metrics yang Prometheus akan scrape. Default metrics (CPU, memory, event loop lag) otomatis tersedia.
Custom Metrics
- Counter: total_http_requests, total_errors
- Histogram: http_request_duration_seconds (untuk percentile latency)
- Gauge: active_connections, queue_depth
Setup Prometheus
Buat prometheus.yml dengan scrape config pointing ke aplikasi Anda. Jalankan via Docker: docker run -v ./prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus.
Dashboard Grafana
Import dashboard komunitas (Node.js dashboard ID: 11159) sebagai starting point. Buat panel untuk RED metrics: Request Rate, Error Rate, Duration (latency percentile).
Alerting
Buat alert rules di Prometheus atau Grafana: error rate > 1%, p95 latency > 500ms, memory usage > 80%. Integrasikan dengan PagerDuty, Slack, atau OpsGenie.