Skip to content

mshaa/sensorwatch

Repository files navigation

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.

About

Distributed observability sandbox

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published