Observability wiring: yabeda + Lograge + DORA (Phase 3) #4

Open
opened 2026-06-10 11:39:07 +00:00 by ldraney · 0 comments
Owner

Type

Feature

Lineage

Standalone -- observability onboarding. See docs/roadmap/ Phase 3 and docs/dora/.

Repo

ldraney/html-poster

User Story

As a DevOps practitioner
I want html-poster to be fully observable in Grafana from day one
So that DORA metrics, request metrics, and logs are measured from the first deploy

Context

The platform provides DORA metrics (via DORA exporter) and container logs (via Promtail) automatically. App-level metrics require adding yabeda gems and mounting the /metrics endpoint. Lograge provides structured JSON logs. Reference: landscaping-assistant/config/initializers/yabeda.rb and landscaping-assistant/config/routes.rb (line 2).

File Targets

Files the agent should modify or create:

  • Gemfile -- add yabeda-rails, yabeda-prometheus, yabeda-puma-plugin, lograge
  • config/routes.rb -- mount Yabeda::Prometheus::Exporter => "/metrics"
  • config/initializers/yabeda.rb -- yabeda config
  • config/environments/production.rb -- Lograge config

Files the agent should NOT touch:

  • docs/ -- documentation is already written

Feature Flag

none

Acceptance Criteria

  • yabeda gems in Gemfile and bundle installed
  • /metrics endpoint returns Prometheus exposition format
  • Lograge outputs structured JSON in production
  • html-poster visible in Grafana DORA dashboard (per-repo drill-down)
  • App metrics showing request rate, latency, errors

Test Expectations

  • Manual: curl localhost:9999/metrics returns Prometheus metrics
  • Manual: check Grafana DORA dashboard for html-poster row
  • Run command: docker compose exec web bundle exec rspec

Constraints

  • Follow landscaping-assistant's yabeda pattern exactly
  • ServiceMonitor is auto-created by pal-e-services TF (no manual k8s config)
  • DORA exporter already scrapes all Forgejo repos (no per-repo setup needed)

Checklist

  • PR opened
  • Tests pass
  • No unrelated changes
  • html-poster -- project this affects
  • landscaping-assistant -- observability reference
  • dora-framework -- DORA metrics axiom
### Type Feature ### Lineage Standalone -- observability onboarding. See `docs/roadmap/` Phase 3 and `docs/dora/`. ### Repo `ldraney/html-poster` ### User Story As a DevOps practitioner I want html-poster to be fully observable in Grafana from day one So that DORA metrics, request metrics, and logs are measured from the first deploy ### Context The platform provides DORA metrics (via DORA exporter) and container logs (via Promtail) automatically. App-level metrics require adding yabeda gems and mounting the `/metrics` endpoint. Lograge provides structured JSON logs. Reference: `landscaping-assistant/config/initializers/yabeda.rb` and `landscaping-assistant/config/routes.rb` (line 2). ### File Targets Files the agent should modify or create: - `Gemfile` -- add yabeda-rails, yabeda-prometheus, yabeda-puma-plugin, lograge - `config/routes.rb` -- mount `Yabeda::Prometheus::Exporter => "/metrics"` - `config/initializers/yabeda.rb` -- yabeda config - `config/environments/production.rb` -- Lograge config Files the agent should NOT touch: - `docs/` -- documentation is already written ### Feature Flag none ### Acceptance Criteria - [ ] yabeda gems in Gemfile and bundle installed - [ ] `/metrics` endpoint returns Prometheus exposition format - [ ] Lograge outputs structured JSON in production - [ ] html-poster visible in Grafana DORA dashboard (per-repo drill-down) - [ ] App metrics showing request rate, latency, errors ### Test Expectations - [ ] Manual: `curl localhost:9999/metrics` returns Prometheus metrics - [ ] Manual: check Grafana DORA dashboard for html-poster row - Run command: `docker compose exec web bundle exec rspec` ### Constraints - Follow landscaping-assistant's yabeda pattern exactly - ServiceMonitor is auto-created by pal-e-services TF (no manual k8s config) - DORA exporter already scrapes all Forgejo repos (no per-repo setup needed) ### Checklist - [ ] PR opened - [ ] Tests pass - [ ] No unrelated changes ### Related - `html-poster` -- project this affects - `landscaping-assistant` -- observability reference - `dora-framework` -- DORA metrics axiom
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ldraney/html-poster#4
No description provided.