[Ch 16] Observability — dashboards, alerting, uptime probes #25

Open
opened 2026-08-01 19:04:16 +00:00 by ldraney · 0 comments
Owner

Type

Feature

Lineage

Standalone — scoped from platform-playbook chapter 16 for the full-stack mdview vision.

Repo

ldraney/mdview, ldraney/pal-e-platform

User Story

As a developer
I want to know when mdview is down or degraded
So that I can fix issues before users notice

Context

Once mdview runs its own container on the cluster (Ch 10), it needs observability: Prometheus metrics, Grafana dashboards, alerting, and uptime probes. Currently no observability exists.

File Targets

  • Gemfile — add yabeda-rails, yabeda-prometheus, yabeda-puma-plugin, lograge
  • config/initializers/lograge.rb — structured logging config
  • pal-e-platform/terraform/modules/monitoring/ — Grafana dashboard, PrometheusRules, Blackbox config

Files the agent should NOT touch:

  • app/controllers/ — no app logic changes

Feature Flag

none

Acceptance Criteria

  • /metrics endpoint exposed and scraped by Prometheus
  • Grafana dashboard shows request rate, error rate, latency, saturation
  • AlertManager fires on downtime (Telegram notification)
  • Blackbox probes /up endpoint
  • lograge produces structured single-line logs for Loki

Test Expectations

  • No unit tests — infra/config changes
  • Run command: curl https://mdview.tail5b443a.ts.net/metrics

Constraints

  • Follow landscaping-assistant observability pattern
  • Use yabeda gem family (not custom metrics)

Checklist

  • PR opened
  • Tests pass
  • No unrelated changes
  • project-mdview — project this affects
### Type Feature ### Lineage Standalone — scoped from platform-playbook chapter 16 for the full-stack mdview vision. ### Repo `ldraney/mdview`, `ldraney/pal-e-platform` ### User Story As a developer I want to know when mdview is down or degraded So that I can fix issues before users notice ### Context Once mdview runs its own container on the cluster (Ch 10), it needs observability: Prometheus metrics, Grafana dashboards, alerting, and uptime probes. Currently no observability exists. ### File Targets - `Gemfile` — add `yabeda-rails`, `yabeda-prometheus`, `yabeda-puma-plugin`, `lograge` - `config/initializers/lograge.rb` — structured logging config - `pal-e-platform/terraform/modules/monitoring/` — Grafana dashboard, PrometheusRules, Blackbox config Files the agent should NOT touch: - `app/controllers/` — no app logic changes ### Feature Flag none ### Acceptance Criteria - [ ] `/metrics` endpoint exposed and scraped by Prometheus - [ ] Grafana dashboard shows request rate, error rate, latency, saturation - [ ] AlertManager fires on downtime (Telegram notification) - [ ] Blackbox probes `/up` endpoint - [ ] lograge produces structured single-line logs for Loki ### Test Expectations - [ ] No unit tests — infra/config changes - Run command: `curl https://mdview.tail5b443a.ts.net/metrics` ### Constraints - Follow landscaping-assistant observability pattern - Use yabeda gem family (not custom metrics) ### Checklist - [ ] PR opened - [ ] Tests pass - [ ] No unrelated changes ### Related - `project-mdview` — project this affects
Sign in to join this conversation.
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/mdview#25
No description provided.