mirror of
https://github.com/coredns/coredns.git
synced 2025-10-28 00:34:24 -04:00
plugin/forward Add rcode and rtype to request_duration_seconds metric (#4391)
* plugin/forward Add rcode and rtype to request_duration_seconds metric Signed-off-by: Maxime Ginters <maxime.ginters@shopify.com> * Control the cardinality of query type Signed-off-by: Maxime Ginters <maxime.ginters@shopify.com>
This commit is contained in:
@@ -107,7 +107,7 @@ If monitoring is enabled (via the *prometheus* plugin) then the following metric
|
||||
|
||||
* `coredns_forward_requests_total{to}` - query count per upstream.
|
||||
* `coredns_forward_responses_total{to}` - Counter of responses received per upstream.
|
||||
* `coredns_forward_request_duration_seconds{to}` - duration per upstream interaction.
|
||||
* `coredns_forward_request_duration_seconds{to, rcode, type}` - duration per upstream, RCODE, type
|
||||
* `coredns_forward_responses_total{to, rcode}` - count of RCODEs per upstream.
|
||||
* `coredns_forward_healthcheck_failures_total{to}` - number of failed health checks per upstream.
|
||||
* `coredns_forward_healthcheck_broken_total{}` - counter of when all upstreams are unhealthy,
|
||||
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
"github.com/coredns/coredns/plugin/pkg/dnsutil"
|
||||
"github.com/coredns/coredns/request"
|
||||
|
||||
"github.com/miekg/dns"
|
||||
@@ -129,9 +130,11 @@ func (p *Proxy) Connect(ctx context.Context, state request.Request, opts options
|
||||
rc = strconv.Itoa(ret.Rcode)
|
||||
}
|
||||
|
||||
qtype := dnsutil.QTypeMonitorLabel(state.QType())
|
||||
|
||||
RequestCount.WithLabelValues(p.addr).Add(1)
|
||||
RcodeCount.WithLabelValues(rc, p.addr).Add(1)
|
||||
RequestDuration.WithLabelValues(p.addr).Observe(time.Since(start).Seconds())
|
||||
RequestDuration.WithLabelValues(p.addr, rc, qtype).Observe(time.Since(start).Seconds())
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ var (
|
||||
Name: "request_duration_seconds",
|
||||
Buckets: plugin.TimeBuckets,
|
||||
Help: "Histogram of the time each request took.",
|
||||
}, []string{"to"})
|
||||
}, []string{"to", "rcode", "type"})
|
||||
HealthcheckFailureCount = promauto.NewCounterVec(prometheus.CounterOpts{
|
||||
Namespace: plugin.Namespace,
|
||||
Subsystem: "forward",
|
||||
|
||||
Reference in New Issue
Block a user