fix: reset all metrics before starting worker

This commit is contained in:
徐聪
2022-07-21 15:53:35 +08:00
parent d7e56d285e
commit df5e985e2f

View File

@@ -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)
}