-
Notifications
You must be signed in to change notification settings - Fork 13
/
pipeline.go
82 lines (76 loc) · 2.03 KB
/
pipeline.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package promeths
import (
"fmt"
"net/http"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/sirupsen/logrus"
"github.com/spf13/viper"
)
var (
MessageTotalCounter *prometheus.CounterVec
MessageSendCounter *prometheus.CounterVec
MessageSendErrCounter *prometheus.CounterVec
MessageFilterCounter *prometheus.CounterVec
MessageSendHistogram *prometheus.HistogramVec
)
func Init() {
logrus.Info("init prometheus")
pipelineLabels := []string{"pipeline", "node"}
nameSpace := "binlogo"
subSystem := viper.GetString("cluster.name")
MessageTotalCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: nameSpace,
Subsystem: subSystem,
Name: "message_total",
},
pipelineLabels,
)
prometheus.Register(MessageTotalCounter)
MessageSendCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: nameSpace,
Subsystem: subSystem,
Name: "message_send",
},
pipelineLabels,
)
prometheus.Register(MessageSendCounter)
MessageSendErrCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: nameSpace,
Subsystem: subSystem,
Name: "message_send_error",
},
pipelineLabels,
)
prometheus.Register(MessageSendErrCounter)
MessageFilterCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: nameSpace,
Subsystem: subSystem,
Name: "message_filter",
},
pipelineLabels,
)
prometheus.Register(MessageFilterCounter)
MessageSendHistogram = prometheus.NewHistogramVec(
prometheus.HistogramOpts{
Namespace: nameSpace,
Subsystem: subSystem,
Name: "message_send_time",
Buckets: prometheus.LinearBuckets(0, 1, 10),
},
pipelineLabels,
)
prometheus.Register(MessageSendHistogram)
go listen()
}
func listen() {
http.Handle("/metrics", promhttp.Handler())
addr := fmt.Sprintf(":%v", viper.Get("monitor.port"))
logrus.Info("prometheus listen addr: ", addr)
err := http.ListenAndServe(addr, nil)
logrus.Error("prometheus listen exit: ", err)
}