Scaffolding for an event-driven data pipeline to play with OpenTelemetry + Loki / Tempo / Prometheus / Grafana.
Each service package runs as a standalone container, forming a distributed processing workflow: reading generated data, processing it against user-defined alert rules, sending alerts via a WebSocket channel.
- Redpanda (Kafka)
- MongoDB
- Prometheus
- Tempo
- Loki
- Grafana
MongoDB Change Streams requires replica set to be initialized with explicit hostname that is not directly available outside of the container. Update hosts with 127.0.0.1 mongodb.
make infra.up
npm run build.all
npm run test.<svc-name> / npm run test.e2e
make infra.up
make obs.up
make test.up / make e2e.up
- Metrics are collected using
prom-client. - OTel Collector is not used.