blob: 13d046a07c6d211d5c3c411b0e3bd880be118e64 [file] [log] [blame]
Jan Schär4a180222024-07-29 16:32:54 +02001package dns
2
3import (
4 "github.com/prometheus/client_golang/prometheus"
5 "github.com/prometheus/client_golang/prometheus/promauto"
6)
7
8// MetricsRegistry is the metrics registry in which all DNS metrics are
9// registered.
10var MetricsRegistry = prometheus.NewRegistry()
11var MetricsFactory = promauto.With(MetricsRegistry)
12
13var (
14 // rcode can be an uppercase rcode name, a numeric rcode if the rcode is not
15 // known, or one of:
16 // * redirected: The query was redirected by CNAME, so the final rcode
17 // is not yet known.
18 // * not_ready: The handler is not yet ready, SERVFAIL is replied.
19 handlerDuration = MetricsFactory.NewHistogramVec(prometheus.HistogramOpts{
20 Namespace: "dnsserver",
21 Subsystem: "server",
22 Name: "handler_duration_seconds",
23 Buckets: prometheus.ExponentialBuckets(0.00025, 2, 16), // from 0.25ms to 8 seconds
24 Help: "Histogram of the time each handler took.",
25 }, []string{"handler", "rcode"})
26)