Prometheus Metrics Instrumentation (Feature #218) #1313
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.
🎯 Goal
Enable unified Prometheus-compatible metrics across all FastAPI services for observability, SLO tracking, and proactive alerting.
🧩 Key Changes
mcpgateway/services/metrics.pyto configure Prometheus metrics instrumentation usingprometheus-fastapi-instrumentator.http_requests_total: Request count by method, endpoint, and status code.http_request_duration_seconds: Latency histogram (buckets: 0.05, 0.1, 0.3, 1, 3, 5).http_request_size_bytesandhttp_response_size_bytes: Request and response size histograms./metrics/prometheus.app_infogauge withMETRICS_CUSTOM_LABELSfor cluster-level filtering.METRICS_EXCLUDED_HANDLERSregex.ENABLE_METRICS(default: true)METRICS_EXCLUDED_HANDLERSMETRICS_NAMESPACE,METRICS_SUBSYSTEMMETRICS_CUSTOM_LABELS⚙️ Env Example
✅ Acceptance Criteria
/metrics/prometheusreturns 200 OK and includes standard Prometheus metrics.🧪 Testing
Unit and E2E tests added for: