mirror of
https://github.com/hanzoai/traces.git
synced 2026-11-03 04:05:45 +00:00
See https://github.com/grafana/dskit/issues/576 Signed-off-by: Daniel Strobusch <[email protected]>
35 lines
1.3 KiB
Go
35 lines
1.3 KiB
Go
package ring
|
|
|
|
import (
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
"github.com/prometheus/client_golang/prometheus/promauto"
|
|
)
|
|
|
|
type LifecyclerMetrics struct {
|
|
consulHeartbeats prometheus.Counter
|
|
shutdownDuration *prometheus.HistogramVec
|
|
readonly prometheus.Gauge
|
|
}
|
|
|
|
func NewLifecyclerMetrics(ringName string, reg prometheus.Registerer) *LifecyclerMetrics {
|
|
return &LifecyclerMetrics{
|
|
consulHeartbeats: promauto.With(reg).NewCounter(prometheus.CounterOpts{
|
|
Name: "member_consul_heartbeats_total",
|
|
Help: "The total number of heartbeats sent to consul.",
|
|
ConstLabels: prometheus.Labels{"name": ringName},
|
|
}),
|
|
shutdownDuration: promauto.With(reg).NewHistogramVec(prometheus.HistogramOpts{
|
|
Name: "shutdown_duration_seconds",
|
|
Help: "Duration (in seconds) of shutdown procedure (ie transfer or flush).",
|
|
Buckets: prometheus.ExponentialBuckets(10, 2, 8), // Biggest bucket is 10*2^(9-1) = 2560, or 42 mins.
|
|
ConstLabels: prometheus.Labels{"name": ringName},
|
|
}, []string{"op", "status"}),
|
|
readonly: promauto.With(reg).NewGauge(prometheus.GaugeOpts{
|
|
Name: "lifecycler_read_only",
|
|
Help: "Set to 1 if this lifecycler's instance entry is in read-only state.",
|
|
ConstLabels: prometheus.Labels{"name": ringName},
|
|
}),
|
|
}
|
|
|
|
}
|