github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/storage/stores/indexshipper/compactor/generationnumber/metrics.go (about)

     1  package generationnumber
     2  
     3  import (
     4  	"github.com/prometheus/client_golang/prometheus"
     5  )
     6  
     7  // Make this package level because we want several instances of a loader to be able to report metrics
     8  var metrics *genLoaderMetrics
     9  
    10  type genLoaderMetrics struct {
    11  	cacheGenLoadFailures *prometheus.CounterVec
    12  }
    13  
    14  func newGenLoaderMetrics(r prometheus.Registerer) *genLoaderMetrics {
    15  	if metrics != nil {
    16  		return metrics
    17  	}
    18  
    19  	if r == nil {
    20  		return nil
    21  	}
    22  
    23  	cacheGenLoadFailures := prometheus.NewCounterVec(prometheus.CounterOpts{
    24  		Namespace: "loki",
    25  		Name:      "delete_cache_gen_load_failures_total",
    26  		Help:      "Total number of failures while loading cache generation number using gen number loader",
    27  	}, []string{"source"})
    28  
    29  	r.MustRegister(cacheGenLoadFailures)
    30  
    31  	metrics = &genLoaderMetrics{
    32  		cacheGenLoadFailures: cacheGenLoadFailures,
    33  	}
    34  
    35  	return metrics
    36  }