feat: add healthcheck latency metrics and response fields#157
Open
paulobernardoaf wants to merge 1 commit into
Open
feat: add healthcheck latency metrics and response fields#157paulobernardoaf wants to merge 1 commit into
paulobernardoaf wants to merge 1 commit into
Conversation
Expose Redis, MongoDB, and total healthcheck durations as Prometheus histograms and in the /healthcheck JSON response, with shared ping helpers for HTTP and gRPC paths and accurate partial-failure metric recording. Co-authored-by: Cursor <cursoragent@cursor.com>
Robi9
approved these changes
Jun 22, 2026
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.
What
Adds Prometheus histogram metrics for Redis, MongoDB, and total healthcheck duration, extends the
/healthcheckJSON response with the same latency data, and shares ping helpers between the HTTP handler and the gRPC health monitor. The gRPC binary now exposes/metricsso those observations are scrapeable.Why
Operators need visibility into dependency ping latency to detect slow or failing Redis/MongoDB connections before they impact clients. Recording metrics only for dependencies that were actually checked avoids polluting histograms with false zero-second MongoDB samples when Redis fails early in the gRPC monitor.
Test plan
go test ./pkg/health/... ./pkg/metric/... ./pkg/websocket/ -run 'TestHealthStatus|TestRecordLatencies|TestObserveHealthcheck'GET /healthcheckand confirmredis_latency_seconds,mongo_db_latency_seconds, andtotal_latency_secondsin the JSON bodyGET /metricsand confirmhealthcheck_duration_secondshistogram withdependencylabel (redis,mongodb,total)/metricsand records health monitor observationsMade with Cursor