/
metrics.go
36 lines (31 loc) · 914 Bytes
/
metrics.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
package flowd
import "github.com/prometheus/client_golang/prometheus"
type Metrics struct {
requests *prometheus.CounterVec
requestDuration *prometheus.HistogramVec
}
func NewMetrics(reg *prometheus.Registry) *Metrics {
metrics := &Metrics{
requests: prometheus.NewCounterVec(
prometheus.CounterOpts{
Namespace: "flowd",
Name: "http_requests_total",
Help: "Flow http requests total",
},
[]string{"type", "method", "status_code"},
),
requestDuration: prometheus.NewHistogramVec(
prometheus.HistogramOpts{
Namespace: "flowd",
Name: "http_request_duration",
Help: "Flow http request duration",
// Note(sneha): Not defining histogram buckets but
// using default values here.
},
[]string{"type", "method", "status_code"},
),
}
reg.MustRegister(metrics.requests)
reg.MustRegister(metrics.requestDuration)
return metrics
}