> Observability Stack

Set up Grafana, Prometheus, and Loki for metrics, logs, and tracing.

fetch
$curl "https://skillshub.wtf/skillshub-team/catalog-batch5/observability-stack?format=md"
SKILL.mdObservability Stack

Observability Stack

Prometheus Metrics

import { Counter, Histogram, register } from 'prom-client';
const httpRequests = new Counter({ name: 'http_requests_total', help: 'Total HTTP requests', labelNames: ['method', 'path', 'status'] });
const httpDuration = new Histogram({ name: 'http_duration_seconds', help: 'Request duration', labelNames: ['method', 'path'] });

app.use((req, res, next) => {
    const end = httpDuration.startTimer({ method: req.method, path: req.path });
    res.on('finish', () => {
        httpRequests.inc({ method: req.method, path: req.path, status: res.statusCode });
        end();
    });
    next();
});
app.get('/metrics', async (req, res) => { res.set('Content-Type', register.contentType); res.send(await register.metrics()); });

Docker Compose Stack

Grafana (dashboards) + Prometheus (metrics) + Loki (logs) + Tempo (traces)

Key Metrics: request rate, error rate, latency (p50/p95/p99), saturation

┌ stats

installs/wk0
░░░░░░░░░░
first seenMar 18, 2026
└────────────

┌ tags

└────────────