MCPcopy
hub / github.com/grafana/dskit / NewPropagationDelayTracker

Function NewPropagationDelayTracker

kv/memberlist/propagation_tracker.go:82–117  ·  view source on GitHub ↗

NewPropagationDelayTracker creates a new PropagationDelayTracker service.

(
	kv *KV,
	cfg PropagationDelayTrackerConfig,
	nodeName string,
	logger log.Logger,
	registerer prometheus.Registerer,
)

Source from the content-addressed store, hash-verified

80
81// NewPropagationDelayTracker creates a new PropagationDelayTracker service.
82func NewPropagationDelayTracker(
83 kv *KV,
84 cfg PropagationDelayTrackerConfig,
85 nodeName string,
86 logger log.Logger,
87 registerer prometheus.Registerer,
88) *PropagationDelayTracker {
89 t := &PropagationDelayTracker{
90 cfg: cfg,
91 nodeName: nodeName,
92 kv: kv,
93 codec: GetPropagationDelayTrackerCodec(),
94 logger: log.With(logger, "component", "memberlist-propagation-delay-tracker"),
95 seenBeacons: make(map[uint64]struct{}),
96 propagationDelay: promauto.With(registerer).NewHistogram(prometheus.HistogramOpts{
97 Name: "memberlist_propagation_tracker_delay_seconds",
98 Help: "Time from beacon publish to receive.",
99 NativeHistogramBucketFactor: 1.1,
100 NativeHistogramMaxBucketNumber: 100,
101 NativeHistogramMinResetDuration: 1 * time.Hour,
102 Buckets: prometheus.DefBuckets,
103 }),
104 beaconsPublishedTotal: promauto.With(registerer).NewCounter(prometheus.CounterOpts{
105 Name: "memberlist_propagation_tracker_beacons_published_total",
106 Help: "Total number of beacons published by this node.",
107 }),
108 beaconsReceivedTotal: promauto.With(registerer).NewCounter(prometheus.CounterOpts{
109 Name: "memberlist_propagation_tracker_beacons_received_total",
110 Help: "Total number of unique beacons received.",
111 }),
112 }
113
114 t.Service = services.NewBasicService(nil, t.running, nil).WithName("propagation-delay-tracker")
115
116 return t
117}
118
119func (t *PropagationDelayTracker) running(ctx context.Context) error {
120 t.startupTime = time.Now().UnixMilli()

Calls 4

NewBasicServiceFunction · 0.92
WithMethod · 0.80
WithNameMethod · 0.80