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
}