From 09a888fa23fe383109a57e220755f2ff39281b22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Duchesneau?= Date: Wed, 3 Apr 2024 13:48:31 -0400 Subject: [PATCH] add metrics for active requests and req count --- docs/release-notes/change-log.md | 1 + metrics/metrics.go | 3 +++ service/tier2.go | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/docs/release-notes/change-log.md b/docs/release-notes/change-log.md index c43054c4f..712886972 100644 --- a/docs/release-notes/change-log.md +++ b/docs/release-notes/change-log.md @@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), * Fix a panic on tier2 when not using any wasm extension. * Fix a thread leak on metering GRPC emitter * Rollback scheduler optimisation: different stages can run concurrently if they are schedulable. This will prevent taking much time to execute when restarting close to HEAD. +* Add `substreams_tier2_active_requests` and `substreams_tier2_request_counter` prometheus metrics ## v1.5.0 diff --git a/metrics/metrics.go b/metrics/metrics.go index ee15dfd65..676135e88 100644 --- a/metrics/metrics.go +++ b/metrics/metrics.go @@ -22,6 +22,9 @@ var SquashersEnded = MetricSet.NewCounter("substreams_total_squash_processes_clo var Tier1ActiveWorkerRequest = MetricSet.NewGauge("substreams_tier1_active_worker_requests", "Number of active Substreams worker requests a tier1 app is currently doing against tier2 nodes") var Tier1WorkerRequestCounter = MetricSet.NewCounter("substreams_tier1_worker_request_counter", "Counter for total Substreams worker requests a tier1 app made against tier2 nodes") +var Tier2ActiveRequests = MetricSet.NewGauge("substreams_tier2_active_requests", "Number of active Substreams requests the tier2 is currently serving") +var Tier2RequestCounter = MetricSet.NewCounter("substreams_tier2_request_counter", "Counter for total Substreams requests the tier2 served") + var AppReadinessTier1 = MetricSet.NewAppReadiness("substreams_tier1") var AppReadinessTier2 = MetricSet.NewAppReadiness("substreams_tier2") diff --git a/service/tier2.go b/service/tier2.go index 3db9ad89d..f46a60477 100644 --- a/service/tier2.go +++ b/service/tier2.go @@ -107,6 +107,10 @@ func (s *Tier2Service) setOverloaded() { } func (s *Tier2Service) ProcessRange(request *pbssinternal.ProcessRangeRequest, streamSrv pbssinternal.Substreams_ProcessRangeServer) (grpcError error) { + metrics.Tier2ActiveRequests.Inc() + metrics.Tier2RequestCounter.Inc() + defer metrics.Tier2ActiveRequests.Dec() + // We keep `err` here as the unaltered error from `blocks` call, this is used in the EndSpan to record the full error // and not only the `grpcError` one which is a subset view of the full `err`. var err error