Prometheus: Monitoramento

Prometheus é uma das ferramentas mais populares para monitoramento de aplicações e infraestrutura.

Métricas Customizadas

// prometheus.js
const prometheus = require('prom-client');

const httpRequestDuration = new prometheus.Histogram({
    name: 'http_request_duration_seconds',
    help: 'Duration of HTTP requests in seconds',
    labelNames: ['method', 'route', 'status'],
});

const httpRequestCounter = new prometheus.Counter({
    name: 'http_requests_total',
    help: 'Total number of HTTP requests',
    labelNames: ['method', 'status'],
});

Endpoint de Métricas

// Express.js
app.get('/metrics', async (req, res) => {
    res.set('Content-Type', prometheus.register.contentType);
    res.end(await prometheus.register.metrics());
});

Alertas

# alerts.yaml
groups:
- name: example
    rules:
    - alert: HighErrorRate
        expr: rate(http_requests_total{status=~"5.."}[5m]) > 0.05
        for: 5m
        annotations:
            summary: "High error rate detected"