feat(observability): add an opt-in docker-compose observability profile - #257
Merged
Conversation
Bring up Prometheus, Grafana, Tempo, Loki and an OpenTelemetry collector under a dedicated observability profile so contributors can see metrics and traces locally; the default stack and the CI compose smoke are unchanged because the backends are profile-gated. Prometheus scrapes the services on their container port, the services export OTLP traces to the collector, and Grafana ships with the datasources pre-provisioned. Payments now exposes /actuator/prometheus publicly so it can be scraped, matching the ledger and decision services. Closes #250
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a local telemetry stack as an opt-in Compose profile (E-07, #250).
What
observabilityprofile services (allprofiles: [observability], pinned image tags): Prometheus, Grafana, Tempo, Loki, an OpenTelemetry collector. Plaindocker compose up(and the CI compose smoke) never starts them.ledger:8080,payments:8080) at/actuator/prometheus.deploy/observability/; named volumes for Loki/Tempo./actuator/prometheusis now permitAll (pulled forward so it is scrapable; matches ledger/decision)./v1/payments/**stays scope-protected.Why the default smoke stays green
The backends are profile-gated, so
docker compose up --wait(no profile) ignores them. The OTLP endpoint env on the core services targets the collector, but the Boot OTLP exporter is lazy and export failures are non-fatal - the services already defaulted that endpoint to an absent host and prior compose-smoke runs were green, so readiness is unaffected.Gate chain
Closes #250