aboutsummaryrefslogtreecommitdiff
path: root/middleware/metrics/metrics.go
diff options
context:
space:
mode:
Diffstat (limited to 'middleware/metrics/metrics.go')
-rw-r--r--middleware/metrics/metrics.go28
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,