Skip to content

feat(metrics): add prometheus latency histogram for /api/subscriptions #873 - #1027

Merged
greatest0fallt1me merged 3 commits into
CalloraOrg:mainfrom
TINEROW:fix/issue-873-subscriptions-latency
Jul 29, 2026
Merged

feat(metrics): add prometheus latency histogram for /api/subscriptions #873#1027
greatest0fallt1me merged 3 commits into
CalloraOrg:mainfrom
TINEROW:fix/issue-873-subscriptions-latency

Conversation

@TINEROW

@TINEROW TINEROW commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Overview

This PR adds a Prometheus subscriptions_request_duration_seconds histogram for /api/subscriptions with explicit buckets and route label, enabling latency observability for all subscription endpoints.

Related Issue

Closes #873

Changes

  • [ADD] subscriptions_request_duration_seconds histogram in src/metrics/registry.ts with explicit buckets (0.001s–10s) and recording function recordSubscriptionsLatency(method, statusCode, durationMs)
  • [MODIFY] src/routes/subscriptionRoutes.ts — added recordTimingMiddleware that captures full request lifecycle (success 2xx, error 4xx, 5xx) with method and status_code labels
  • [ADD] src/__tests__/subscriptionsLatency.test.ts — 14 tests covering: histogram registration, direct recording (method/status_code labels, duration conversion, accumulation), route integration (success, 404, validation errors), and metric reset

Verification Results

npx jest --forceExit src/__tests__/subscriptionsLatency.test.ts src/routes/subscriptionRoutes.test.ts
✅ 70/70 passed (14 new + 56 existing subscription route tests)
Acceptance Criteria Status
Histogram registered with correct metadata subscriptions_request_duration_seconds with route, method, status_code labels
Explicit buckets for subscription operations ✅ 0.001, 0.002, 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10
All outcomes recorded (success + error) ✅ Middleware captures 2xx, 4xx, and 5xx
Duration conversion (ms → seconds) ✅ Divided by 1000 before observation

Timeline

  • TINEROW committed

- Add subscriptions_request_duration_seconds histogram with buckets tuned
  for subscription operations (0.001s to 10s)
- Add recordSubscriptionsLatency and resetSubscriptionsMetrics functions
- Add timing middleware to subscription routes
- Add focused tests for histogram registration, direct recording, and
  route integration covering all HTTP results (success, 4xx, 5xx)

Closes CalloraOrg#873
@drips-wave

drips-wave Bot commented Jul 28, 2026

Copy link
Copy Markdown

@TINEROW Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@greatest0fallt1me
greatest0fallt1me merged commit 30e0346 into CalloraOrg:main Jul 29, 2026
1 check passed
@greatest0fallt1me

Copy link
Copy Markdown
Contributor

CI passed, solid PR — merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add prometheus latency histogram for /api/subscriptions [b#008]

2 participants