Release: Phase 18a — Prometheus + Grafana (#61) - #78
Merged
Merged
Conversation
Add micrometer-registry-prometheus and expose /actuator/prometheus. No new meters — the four existing business meters (orders_placed_total, payments_total, reservations_total, checkout_latency_seconds) are now scrapeable in Prometheus exposition format. PrometheusEndpointIT asserts the endpoint serves them (with @AutoConfigureObservability, since @SpringBootTest disables metrics export in tests by default; production export is on). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…isioned dashboard (Phase 18a) docker-compose grows prometheus (:9090) and grafana (:3000) under the `full` profile (they observe the containerised app). prometheus.yml scrapes app:8080/actuator/prometheus every 15s. Grafana auto-provisions Prometheus as its datasource and a committed 4-panel dashboard (orders by outcome, payments by outcome, reservations by status, checkout p95) — PromQL targets the exact exported metric names. Admin password intentionally left at the default so Grafana keeps its first-login change prompt. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…se 18a) Records the Phase-18a decisions: scrape (pull) over push so the app stays ignorant of monitoring; no new meters (reuse the Phase-9 four); dashboard PromQL targets metric names verified by the IT, not guessed; provisioned datasource + dashboard (versioned, no clicking); observability under the `full` profile; Grafana default password kept to preserve the first-login change prompt. Cites PragProg / APoSD / XP / PoEAA. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Phase 18a: make the four Phase-9 business meters legible over time. No new meters, no app code beyond a registry dependency — a Prometheus scrape endpoint, Prometheus to store the series, and a provisioned Grafana dashboard.
What shipped
micrometer-registry-prometheus+/actuator/prometheusexposed. The four existing meters (orders_placed_total,payments_total,reservations_total,checkout_latency_seconds) are now scrapeable.:9090) scrapesapp:8080/actuator/prometheusevery 15s (observability/prometheus/prometheus.yml).:3000) auto-provisions the Prometheus datasource + a committed 4-panel dashboard (orders by outcome, payments by outcome, reservations by status, checkout p95). PromQL targets the exact exported metric names, verified by the IT.fullcompose profile (they observe the containerised app); default dev loop unchanged.Testing
PrometheusEndpointITasserts/actuator/prometheusserves the exposition format and the four meters (needs@AutoConfigureObservability—@SpringBootTestdisables metrics export by default; production is on).mvn verifygreen (full suite). The IT also pinned the exact exported names so the dashboard PromQL isn't a guess (Micrometer 1.13 + new Prometheus client → no doubled_total).Acceptance criteria (#61)
micrometer-registry-prometheus;/actuator/prometheusexposes metricsprometheus(:9090) +grafana(:3000)prometheus.ymlunderobservability/prometheus/scrapesapp:8080/actuator/prometheus@ 15sobservability/grafana/admin/adminkeeps first-login password-change promptmvn verifygreendocker compose --profile full upand confirm the 4 panels show non-zero data (manual step, like prior QA walkthroughs)Closes #61.
🤖 Generated with Claude Code