From 9fbb8509feb72e26c76cd8ec62b336c9fa0d0b71 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux <6574550+tibdex@users.noreply.github.com> Date: Wed, 6 May 2026 16:43:54 -0400 Subject: [PATCH 1/2] Switch from Jaeger to Aspire Dashboard To get logs and metrics too. --- README.md | 2 +- compose.yaml | 17 +++++++---------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 878cd0f..6d9e1d2 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ To start the app: uv run python -m app ``` -To start the app in Docker with [Jaeger](https://www.jaegertracing.io) to observe traces: +To start the app in Docker with the [Aspire Dashboard](https://aspire.dev/dashboard/standalone/) to observe traces: ```bash docker compose up --build diff --git a/compose.yaml b/compose.yaml index 5607923..369fdfa 100644 --- a/compose.yaml +++ b/compose.yaml @@ -2,22 +2,19 @@ services: app: build: . depends_on: - jaeger: - condition: service_healthy + - aspire-dashboard environment: DATA_REFRESH_PERIOD: - OTEL_EXPORTER_OTLP_ENDPOINT: http://jaeger:4318 + OTEL_EXPORTER_OTLP_ENDPOINT: http://aspire-dashboard:18890 healthcheck: start_period: 30s test: ["CMD", "python", "-c", "import httpx; httpx.get('http://localhost/actuator/health/readiness').raise_for_status()"] ports: - "127.0.0.1::80" - jaeger: - image: cr.jaegertracing.io/jaegertracing/jaeger:2.16.0 + aspire-dashboard: + image: mcr.microsoft.com/dotnet/aspire-dashboard:13.2.0 + environment: + ASPIRE_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS: "true" ports: - - "127.0.0.1::4318" # OTLP HTTP - - "127.0.0.1::16686" # UI - healthcheck: - start_period: 3s - test: ["CMD", "wget", "--quiet", "--spider", "http://localhost:13133/status"] + - "127.0.0.1::18888" # UI From d461976f7fe712c5c9731a61fff58d64d4ce4e51 Mon Sep 17 00:00:00 2001 From: Thibault Derousseaux <6574550+tibdex@users.noreply.github.com> Date: Thu, 7 May 2026 13:02:24 -0400 Subject: [PATCH 2/2] Switch to Grafana otel-lgtm --- README.md | 2 +- compose.yaml | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 6d9e1d2..8dd80e8 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ To start the app: uv run python -m app ``` -To start the app in Docker with the [Aspire Dashboard](https://aspire.dev/dashboard/standalone/) to observe traces: +To start the app in Docker with [Grafana OpenTelemetry LGTM](https://grafana.com/docs/opentelemetry/docker-lgtm): ```bash docker compose up --build diff --git a/compose.yaml b/compose.yaml index 369fdfa..c9b7ebb 100644 --- a/compose.yaml +++ b/compose.yaml @@ -2,19 +2,20 @@ services: app: build: . depends_on: - - aspire-dashboard + grafana-otel-lgtm: + condition: service_healthy environment: DATA_REFRESH_PERIOD: - OTEL_EXPORTER_OTLP_ENDPOINT: http://aspire-dashboard:18890 + OTEL_EXPORTER_OTLP_ENDPOINT: http://grafana-otel-lgtm:4318 # HTTP healthcheck: start_period: 30s test: ["CMD", "python", "-c", "import httpx; httpx.get('http://localhost/actuator/health/readiness').raise_for_status()"] ports: - "127.0.0.1::80" - aspire-dashboard: - image: mcr.microsoft.com/dotnet/aspire-dashboard:13.2.0 - environment: - ASPIRE_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS: "true" + grafana-otel-lgtm: + image: grafana/otel-lgtm:0.27.0 ports: - - "127.0.0.1::18888" # UI + - "127.0.0.1::3000" # UI + healthcheck: + test: ["CMD", "test", "-f", "/tmp/ready"]