From 18c4fe59078b649ad6a788a48765b101d0b97618 Mon Sep 17 00:00:00 2001 From: Sandeep Sukhani Date: Wed, 17 May 2023 16:25:06 +0530 Subject: [PATCH] reset metric registry when creating a new cluster to have metrics registered just for the running test --- integration/cluster/cluster.go | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/integration/cluster/cluster.go b/integration/cluster/cluster.go index 754df3eba8b4..56020f81be41 100644 --- a/integration/cluster/cluster.go +++ b/integration/cluster/cluster.go @@ -33,8 +33,6 @@ import ( ) var ( - wrapRegistryOnce sync.Once - configTemplate = template.Must(template.New("").Parse(` auth_enabled: true @@ -108,18 +106,18 @@ ruler: `)) ) -func wrapRegistry() { - wrapRegistryOnce.Do(func() { - prometheus.DefaultRegisterer = &wrappedRegisterer{Registerer: prometheus.DefaultRegisterer} - }) +func resetMetricRegistry() { + registry := &wrappedRegisterer{Registry: prometheus.NewRegistry()} + prometheus.DefaultRegisterer = registry + prometheus.DefaultGatherer = registry } type wrappedRegisterer struct { - prometheus.Registerer + *prometheus.Registry } func (w *wrappedRegisterer) Register(collector prometheus.Collector) error { - if err := w.Registerer.Register(collector); err != nil { + if err := w.Registry.Register(collector); err != nil { var aErr prometheus.AlreadyRegisteredError if errors.As(err, &aErr) { return nil @@ -151,7 +149,7 @@ func New(logLevel level.Value, opts ...func(*Cluster)) *Cluster { util_log.Logger = level.NewFilter(log.NewLogfmtLogger(os.Stderr), level.Allow(logLevel)) } - wrapRegistry() + resetMetricRegistry() sharedPath, err := os.MkdirTemp("", "loki-shared-data") if err != nil { panic(err.Error())