Skip to content

Latest commit

 

History

History
54 lines (36 loc) · 1.11 KB

File metadata and controls

54 lines (36 loc) · 1.11 KB

Sensorwatch - Observability Sandbox

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.

Infrastructure / observability stack

  • Redpanda (Kafka)
  • MongoDB
  • Prometheus
  • Tempo
  • Loki
  • Grafana

Running tests

Local:

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

Containerized:

make infra.up

make obs.up

make test.up / make e2e.up 

Diagrams

Processing flow
Service monitor

Notes

  • Metrics are collected using prom-client.
  • OTel Collector is not used.