/
stats.go
41 lines (37 loc) · 1.59 KB
/
stats.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Copyright (c) 2022-2023, R.I. Pienaar and the Choria Project contributors
//
// SPDX-License-Identifier: Apache-2.0
package heartbeat
import (
"github.com/prometheus/client_golang/prometheus"
)
var (
// gauge
hbSubjects = prometheus.NewGaugeVec(prometheus.GaugeOpts{
Name: prometheus.BuildFQName("choria_stream_replicator", "heartbeat", "subjects_count"),
Help: "Number of subjects that heartbeats are being published for",
}, []string{"replicator"})
hbPublishedCtr = prometheus.NewCounterVec(prometheus.CounterOpts{
Name: prometheus.BuildFQName("choria_stream_replicator", "heartbeat", "published_count"),
Help: "Number of published messages",
}, []string{"replicator", "subject"})
hbPublishedCtrErr = prometheus.NewCounterVec(prometheus.CounterOpts{
Name: prometheus.BuildFQName("choria_stream_replicator", "heartbeat", "published_error_count"),
Help: "Number of published message errors",
}, []string{"replicator", "subject"})
hbPublishTime = prometheus.NewSummaryVec(prometheus.SummaryOpts{
Name: prometheus.BuildFQName("choria_stream_replicator", "heartbeat", "publish_time"),
Help: "Time taken to publish a message",
}, []string{"replicator", "subject"})
hbPaused = prometheus.NewGaugeVec(prometheus.GaugeOpts{
Name: prometheus.BuildFQName("choria_stream_replicator", "heartbeat", "paused"),
Help: "Paused under leader election",
}, []string{"replicator", "hostname"})
)
func init() {
prometheus.MustRegister(hbSubjects)
prometheus.MustRegister(hbPublishedCtr)
prometheus.MustRegister(hbPublishedCtrErr)
prometheus.MustRegister(hbPublishTime)
prometheus.MustRegister(hbPaused)
}