diff options
Diffstat (limited to 'middleware/metrics/metrics.go')
-rw-r--r-- | middleware/metrics/metrics.go | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/middleware/metrics/metrics.go b/middleware/metrics/metrics.go index 42f1439eb..21d6938b5 100644 --- a/middleware/metrics/metrics.go +++ b/middleware/metrics/metrics.go @@ -14,8 +14,11 @@ import ( var ( requestCount *prometheus.CounterVec requestDuration *prometheus.HistogramVec - responseSize *prometheus.HistogramVec - responseRcode *prometheus.CounterVec + requestSize *prometheus.HistogramVec + requestDo *prometheus.CounterVec + + responseSize *prometheus.HistogramVec + responseRcode *prometheus.CounterVec ) // Metrics holds the prometheus configuration. The metrics' path is fixed to be /metrics @@ -42,6 +45,8 @@ func (m *Metrics) Start() error { prometheus.MustRegister(requestCount) prometheus.MustRegister(requestDuration) + prometheus.MustRegister(requestSize) + prometheus.MustRegister(requestDo) prometheus.MustRegister(responseSize) prometheus.MustRegister(responseRcode) @@ -66,8 +71,8 @@ func define() { Namespace: middleware.Namespace, Subsystem: subsystem, Name: "request_count_total", - Help: "Counter of DNS requests made per zone and protocol.", - }, []string{"zone", "proto"}) + Help: "Counter of DNS requests made per zone, protocol and family.", + }, []string{"zone", "proto", "family"}) requestDuration = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: middleware.Namespace, @@ -77,6 +82,21 @@ func define() { Help: "Histogram of the time (in seconds) each request took.", }, []string{"zone"}) + requestSize = prometheus.NewHistogramVec(prometheus.HistogramOpts{ + Namespace: middleware.Namespace, + Subsystem: subsystem, + Name: "request_buffer_size_bytes", + Help: "Size of the EDNS0 UDP buffer in bytes (64K for TCP).", + Buckets: []float64{0, 100, 200, 300, 400, 511, 1023, 2047, 4095, 8291, 16e3, 32e3, 48e3, 64e3}, + }, []string{"zone"}) + + requestDo = prometheus.NewCounterVec(prometheus.CounterOpts{ + Namespace: middleware.Namespace, + Subsystem: subsystem, + Name: "request_do_count_total", + Help: "Counter of DNS requests with DO bit set per zone.", + }, []string{"zone"}) + responseSize = prometheus.NewHistogramVec(prometheus.HistogramOpts{ Namespace: middleware.Namespace, Subsystem: subsystem, |