Skip to content

Add Prometheus metrics endpoint for monitoring and observability #12

@treblereel

Description

@treblereel

Context

Part of epic #1 — Build production-ready REST microservice with k8s deployment on top of casehub-engine. Production deployments need metrics for monitoring service health, performance, and business KPIs.

What

Configure Prometheus metrics endpoint using Micrometer:

  • /q/metrics — Prometheus-format metrics endpoint
  • Standard JVM metrics (memory, GC, threads)
  • HTTP request metrics (request count, duration, status codes)
  • Custom case engine metrics (active cases, completed cases, faulted cases, worker executions)

Acceptance Criteria

  • Prometheus metrics endpoint available at /q/metrics
  • JVM metrics exposed (heap usage, GC pauses, thread count)
  • HTTP metrics exposed (request rate, latency percentiles, error rate)
  • Custom gauge: casehub_cases_active — count of currently running cases
  • Custom counter: casehub_cases_completed_total — total completed cases
  • Custom counter: casehub_cases_faulted_total — total faulted cases
  • Custom counter: casehub_worker_executions_total — total worker executions (with labels: worker name, status)
  • Integration tests verify metrics endpoint returns valid Prometheus format

Notes

  • Use quarkus-micrometer-registry-prometheus extension
  • Consider adding histogram for case duration: casehub_case_duration_seconds
  • Metrics should update in real-time as cases execute
  • Labels for custom metrics: namespace, case name, version
  • File paths: metrics producer classes, MeterRegistry injection points

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions