From 6a812c637415a233c3dccc811ad4b8e394769c19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E8=81=AA?= Date: Thu, 21 Jul 2022 15:53:35 +0800 Subject: [PATCH] fix: reset all metrics before starting worker --- hrp/internal/boomer/output.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/hrp/internal/boomer/output.go b/hrp/internal/boomer/output.go index 72e185b6..ec4ab82e 100644 --- a/hrp/internal/boomer/output.go +++ b/hrp/internal/boomer/output.go @@ -475,6 +475,7 @@ type PrometheusPusherOutput struct { // OnStart will register all prometheus metric collectors func (o *PrometheusPusherOutput) OnStart() { + o.reset() log.Info().Msg("register prometheus metric collectors") registry := prometheus.NewRegistry() registry.MustRegister( @@ -606,3 +607,35 @@ func (o *PrometheusPusherOutput) OnEvent(data map[string]interface{}) { log.Error().Err(err).Msg("push to Pushgateway failed") } } + +// reset will reset all metrics +func (o *PrometheusPusherOutput) reset() { + log.Info().Msg("reset metrics") + gaugeNumRequests.Reset() + gaugeNumFailures.Reset() + gaugeMedianResponseTime.Reset() + gaugeAverageResponseTime.Reset() + gaugeMinResponseTime.Reset() + gaugeMaxResponseTime.Reset() + gaugeAverageContentLength.Reset() + gaugeCurrentRPS.Reset() + gaugeCurrentFailPerSec.Reset() + // counter for total + counterErrors.Reset() + counterTotalNumRequests.Reset() + counterTotalNumFailures.Reset() + // summary for total + summaryResponseTime.Reset() + // gauges for total + gaugeUsers.Set(0) + gaugeState.Set(1) + gaugeDuration.Set(0) + gaugeTotalAverageResponseTime.Set(0) + gaugeTotalMinResponseTime.Reset() + gaugeTotalMaxResponseTime.Reset() + gaugeTotalRPS.Set(0) + gaugeTotalFailRatio.Set(0) + gaugeTotalFailPerSec.Set(0) + gaugeTransactionsPassed.Set(0) + gaugeTransactionsFailed.Set(0) +}