MCPcopy Create free account
hub / github.com/cortexproject/cortex / newStatePersister

Function newStatePersister

pkg/alertmanager/state_persister.go:64–85  ·  view source on GitHub ↗

newStatePersister creates a new state persister.

(cfg PersisterConfig, userID string, state PersistableState, store alertstore.AlertStore, l log.Logger, r prometheus.Registerer)

Source from the content-addressed store, hash-verified

62
63// newStatePersister creates a new state persister.
64func newStatePersister(cfg PersisterConfig, userID string, state PersistableState, store alertstore.AlertStore, l log.Logger, r prometheus.Registerer) *statePersister {
65
66 s := &statePersister{
67 state: state,
68 store: store,
69 userID: userID,
70 logger: l,
71 timeout: defaultPersistTimeout,
72 persistTotal: promauto.With(r).NewCounter(prometheus.CounterOpts{
73 Name: "alertmanager_state_persist_total",
74 Help: "Number of times we have tried to persist the running state to remote storage.",
75 }),
76 persistFailed: promauto.With(r).NewCounter(prometheus.CounterOpts{
77 Name: "alertmanager_state_persist_failed_total",
78 Help: "Number of times we have failed to persist the running state to remote storage.",
79 }),
80 }
81
82 s.Service = services.NewTimerService(cfg.Interval, s.starting, s.iteration, nil)
83
84 return s
85}
86
87func (s *statePersister) starting(ctx context.Context) error {
88 // Waits until the state replicator is settled, so that state is not

Callers 2

NewFunction · 0.85
makeTestStatePersisterFunction · 0.85

Calls 1

NewTimerServiceFunction · 0.92

Tested by 1

makeTestStatePersisterFunction · 0.68