This repository is a work in progress, about having an observability stack for your microservices environment.
Note
Instead of using docker compose to start up the environment, you can also take a look at the repository using .NET Aspire as orchestrator
It is available on the aspire branch: aspire orchestrated version
If you want to know/learn more, also check out my Pluralsight course on the subject here https://www.pluralsight.com/library/courses/opentelemetry-grafana-observability
- ASP.NET Web API for demo services
- RabbitMq as message queue
- OpenTelemetry Collector as middle man for tracing and logs
- BlackBox and Prometheus for service metrics and health checks
- Loki for log aggregation
- Tempo for tracing aggregation
- Grafana for overall dashboarding
For alert provisioning we can extract the JSON through use of the Grafana API: https://grafana.com/docs/grafana/latest/developers/http_api/alerting_provisioning/
This sample is sending logs from SeriLog to OpenTelemetry in OTLP format and OpenTelemetry will pass it along to Loki.
docker compose -f docker-compose-mac.yml --profile all up -d
docker compose -f docker-compose-mac.yml --profile all down