func initRuntimeMetrics()

in pkg/metrics/runtime.go [168:249]


func initRuntimeMetrics() *RuntimeMetrics {
	msm := &MStatsMetrics{
		mstats: prometheus.NewGaugeVec(
			prometheus.GaugeOpts{
				Namespace: Namespace,
				Subsystem: Runtime,
				Name:      "go_mem_stats",
				Help:      "Go MemStats metrics",
			}, []string{MemStatsLabel}),
		pauseNsTimes: prometheus.NewGaugeVec(
			prometheus.GaugeOpts{
				Namespace: Namespace,
				Subsystem: Runtime,
				Name:      "go_pause_ns",
				Help:      "Go MemStats - PauseNs",
			}, []string{PauseNsLabel}),
		pauseEndTimes: prometheus.NewGaugeVec(
			prometheus.GaugeOpts{
				Namespace: Namespace,
				Subsystem: Runtime,
				Name:      "go_pause_end",
				Help:      "Go MemStats - PauseEnd",
			}, []string{PauseEndLabel}),
		bySizeSize: prometheus.NewHistogram(
			prometheus.HistogramOpts{
				Namespace: Namespace,
				Subsystem: Runtime,
				Name:      "go_alloc_bysize_maxsize",
				Help:      "Go MemStats - maximum byte size of this bucket",
				Buckets:   sizeBuckets,
			}),
		bySizeFree: prometheus.NewHistogram(
			prometheus.HistogramOpts{
				Namespace: Namespace,
				Subsystem: Runtime,
				Name:      "go_alloc_bysize_free",
				Help:      "Go MemStats - cumulative count of heap objects freed in this size class",
				Buckets:   sizeBuckets,
			}),
		bySizeMalloc: prometheus.NewHistogram(
			prometheus.HistogramOpts{
				Namespace: Namespace,
				Subsystem: Runtime,
				Name:      "go_alloc_bysize_malloc",
				Help:      "Go MemStats - cumulative count of heap objects allocated in this size bucket",
				Buckets:   sizeBuckets,
			}),
	}

	gen := &GenericMetrics{
		genericMetrics: prometheus.NewGaugeVec(
			prometheus.GaugeOpts{
				Namespace: Namespace,
				Subsystem: Runtime,
				Name:      "go_generic",
				Help:      "Go Generics metrics",
			}, []string{GenericLabel}),
	}

	rtm := &RuntimeMetrics{
		msm,
		gen,
	}

	var metricsList = []prometheus.Collector{
		msm.mstats,
		msm.pauseNsTimes,
		msm.pauseEndTimes,
		msm.bySizeMalloc,
		msm.bySizeSize,
		msm.bySizeFree,
		gen.genericMetrics,
	}

	for _, metric := range metricsList {
		if err := prometheus.Register(metric); err != nil {
			log.Log(log.Metrics).Warn("failed to register metrics collector", zap.Error(err))
		}
	}

	return rtm
}