Summary
In common/metric_types.py, HttpCallLatencyMetricBase._process_response currently raises aiohttp.ClientResponseError for all non-200 HTTP statuses, including 401, 403, 404, and 429. The existing BaseMetric.handle_error() then gates on MetricsServiceConfig.IGNORED_HTTP_ERRORS and returns early, so no metric value is pushed to Grafana — matching the silent-ignore spec.
An alternative would be to return 0.0 early (and clear _captured_block_number) for those statuses directly inside _process_response. However, this would flip the emitted response_status tag from failed to success for 401/403/404/429 responses, which is a dashboard-observable behavior change.
Scope of impact
- Affects all
HttpCallLatencyMetricBase subclasses across every chain.
- Any Grafana dashboard panel that filters or aggregates on
response_status=failed vs response_status=success would see different results.
- Requires an explicit dashboard review before merging.
Action items
References
Requested by @smypmsa.
Summary
In
common/metric_types.py,HttpCallLatencyMetricBase._process_responsecurrently raisesaiohttp.ClientResponseErrorfor all non-200 HTTP statuses, including 401, 403, 404, and 429. The existingBaseMetric.handle_error()then gates onMetricsServiceConfig.IGNORED_HTTP_ERRORSand returns early, so no metric value is pushed to Grafana — matching the silent-ignore spec.An alternative would be to return
0.0early (and clear_captured_block_number) for those statuses directly inside_process_response. However, this would flip the emittedresponse_statustag fromfailedtosuccessfor 401/403/404/429 responses, which is a dashboard-observable behavior change.Scope of impact
HttpCallLatencyMetricBasesubclasses across every chain.response_status=failedvsresponse_status=successwould see different results.Action items
return 0.0path for{401, 403, 404, 429}in_process_response_captured_block_numberon the early return pathresponse_statuslabelReferences
Requested by @smypmsa.