diff options
-rw-r--r-- | middleware/prometheus/README.md | 30 | ||||
-rw-r--r-- | middleware/prometheus/metrics.go | 4 |
2 files changed, 32 insertions, 2 deletions
diff --git a/middleware/prometheus/README.md b/middleware/prometheus/README.md new file mode 100644 index 000000000..479a7c3c4 --- /dev/null +++ b/middleware/prometheus/README.md @@ -0,0 +1,30 @@ +# prometheus + +This module enables prometheus metrics for CoreDNS. + +The following metrics are exported: + +* coredns_dns_request_count_total +* coredns_dns_request_duration_seconds +* coredns_dns_response_size_bytes +* coredns_dns_response_rcode_count_total + +Each counter has a label `zone` which is the zonename used for the request/response. +The `request_count` metrics has an extra label `qtype` which holds the qtype. And +`rcode_count` has an extra label which has the rcode. + +Restarting CoreDNS will stop the monitoring. This is a bug. Also [this upstream +Caddy bug](https://github.com/mholt/caddy/issues/675). + +## Syntax + +~~~ +prometheus +~~~ + +For each zone that you want to see metrics for. + +It optionally takes an address where the metrics are exported, the default +is `localhost:9153`. The metrics path is fixed to `/metrics`. + +## Examples diff --git a/middleware/prometheus/metrics.go b/middleware/prometheus/metrics.go index 4c989f640..d6c4249e0 100644 --- a/middleware/prometheus/metrics.go +++ b/middleware/prometheus/metrics.go @@ -9,7 +9,7 @@ import ( "github.com/prometheus/client_golang/prometheus" ) -const namespace = "daddy" +const namespace = "coredns" var ( requestCount *prometheus.CounterVec @@ -74,7 +74,7 @@ func define(subsystem string) { responseRcode = prometheus.NewCounterVec(prometheus.CounterOpts{ Namespace: namespace, Subsystem: subsystem, - Name: "rcode_code_count_total", + Name: "response_rcode_count_total", Help: "Counter of response status codes.", }, []string{"zone", "rcode"}) } |