This is a sample project used to demonstrate how Observability can be implemented by using OpenTelemetry. A C2 diagram is available that describes the different components used and their interactions.
- OpenTelemetry Collector : to collect metrics from all components
- Prometheus / Grafana : to visualize metrics
- Jaeger : to visualize distributed traces
- Elasticsearch / Elastic APM / Kibana : to visualize logs and distributed traces
- Sentry : to monitor unexpected errors
- Redis
- MongoDB
- Postgres
Docker & Docker compose
- Run docker compose file
cd ./deployment
docker compose up -d
- Once every containers are up and running, configure Elastic APM on Kibana by following instructions described here
- Open Observability Workshop.sln using your favorite IDE (e.g Visual Studio or Rider)
- Run both contained project in parallel.
- Endpôint: http://localhost:5601
- Credentials: elastic / elastic
- Endpoint: http://localhost:3000/
- Credentials: admin / admin
- Use http://prometheus:9090 as datasource URL for Prometheus