Monitoring nemusí být složitý. Prometheus + Grafana za 15 minut.
Docker Compose¶
services:
prometheus:
image: prom/prometheus:latest
ports: [“9090:9090”]
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana:latest
ports: [“3000:3000”]
environment:
GF_SECURITY_ADMIN_PASSWORD: admin
Prometheus config¶
prometheus.yml¶
global:
scrape_interval: 15s
scrape_configs:
- job_name: app
static_configs:
- targets: [“app:8080”]
Node.js metriky¶
import { collectDefaultMetrics, register } from ‘prom-client’;
collectDefaultMetrics();
app.get(‘/metrics’, async (req, res) => {
res.set(‘Content-Type’, register.contentType);
res.end(await register.metrics());
});
Grafana dashboardy¶
Importujte hotové dashboardy z grafana.com — ID 1860 (Node Exporter Full), ID 11159 (Node.js).
Alerting¶
prometheus rules¶
groups:
- name: alerts
rules:
- alert: HighErrorRate
expr: rate(http_errors_total[5m]) > 0.1
for: 5m
Výsledek¶
15 minut a máte metriky, grafy a alerting. Rozšiřujte postupně o další exportery.