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

Function newAlertsLimiter

pkg/alertmanager/alertmanager.go:731–759  ·  view source on GitHub ↗
(tenant string, limits Limits, reg prometheus.Registerer)

Source from the content-addressed store, hash-verified

729}
730
731func newAlertsLimiter(tenant string, limits Limits, reg prometheus.Registerer) *alertsLimiter {
732 limiter := &alertsLimiter{
733 tenant: tenant,
734 limits: limits,
735 sizes: map[model.Fingerprint]int{},
736 failureCounter: promauto.With(reg).NewCounter(prometheus.CounterOpts{
737 Name: "alertmanager_alerts_insert_limited_total",
738 Help: "Number of failures to insert new alerts to in-memory alert store.",
739 }),
740 }
741
742 promauto.With(reg).NewGaugeFunc(prometheus.GaugeOpts{
743 Name: "alertmanager_alerts_limiter_current_alerts",
744 Help: "Number of alerts tracked by alerts limiter.",
745 }, func() float64 {
746 c, _ := limiter.currentStats()
747 return float64(c)
748 })
749
750 promauto.With(reg).NewGaugeFunc(prometheus.GaugeOpts{
751 Name: "alertmanager_alerts_limiter_current_alerts_size_bytes",
752 Help: "Total size of alerts tracked by alerts limiter.",
753 }, func() float64 {
754 _, s := limiter.currentStats()
755 return float64(s)
756 })
757
758 return limiter
759}
760
761func (a *alertsLimiter) PreStore(alert *types.Alert, existing bool) error {
762 if alert == nil {

Callers 2

testLimiterFunction · 0.85
NewFunction · 0.85

Calls 1

currentStatsMethod · 0.95

Tested by 1

testLimiterFunction · 0.68