...
1
2
3
4
5
6
7
8
9
10
11
12
13
14 package metrics
15
16 import "github.com/prometheus/client_golang/prometheus"
17
18
19 type Alerts struct {
20 firing prometheus.Counter
21 resolved prometheus.Counter
22 invalid prometheus.Counter
23 }
24
25
26 func NewAlerts(version string, r prometheus.Registerer) *Alerts {
27 numReceivedAlerts := prometheus.NewCounterVec(prometheus.CounterOpts{
28 Name: "alertmanager_alerts_received_total",
29 Help: "The total number of received alerts.",
30 ConstLabels: prometheus.Labels{"version": version},
31 }, []string{"status"})
32 numInvalidAlerts := prometheus.NewCounter(prometheus.CounterOpts{
33 Name: "alertmanager_alerts_invalid_total",
34 Help: "The total number of received alerts that were invalid.",
35 ConstLabels: prometheus.Labels{"version": version},
36 })
37 if r != nil {
38 r.MustRegister(numReceivedAlerts, numInvalidAlerts)
39 }
40 return &Alerts{
41 firing: numReceivedAlerts.WithLabelValues("firing"),
42 resolved: numReceivedAlerts.WithLabelValues("resolved"),
43 invalid: numInvalidAlerts,
44 }
45 }
46
47
48 func (a *Alerts) Firing() prometheus.Counter { return a.firing }
49
50
51 func (a *Alerts) Resolved() prometheus.Counter { return a.resolved }
52
53
54 func (a *Alerts) Invalid() prometheus.Counter { return a.invalid }
55
View as plain text