mirror of
https://github.com/coredns/coredns.git
synced 2025-10-31 18:23:13 -04:00
* middleware/metrics: add more metrics middleware/cache: Add metrics for number of elements in the cache. Also export the total size. Update README to detail the new metrics. middleware/metrics Move metrics into subpackage called "vars". This breaks the import cycle and is cleaner. This allows vars.Report to be used in the the dnsserver to log refused queries. middleware/metrics: tests Add tests to the metrics framework. The metrics/test subpackage allows scraping of the local server. Do a few test scrape of the metrics that are defined in the metrics middleware. This also allows metrics integration tests to check if the caching and dnssec middleware export their metrics correctly. * update README * typos * fix tests
48 lines
1.6 KiB
Markdown
48 lines
1.6 KiB
Markdown
# prometheus
|
|
|
|
This module enables prometheus metrics for CoreDNS. The default location for the metrics is
|
|
`localhost:9153`. The metrics path is fixed to `/metrics`.
|
|
|
|
The following metrics are exported:
|
|
|
|
* coredns_dns_request_count_total{zone, proto, family}
|
|
* coredns_dns_request_duration_milliseconds{zone}
|
|
* coredns_dns_request_size_bytes{zone, proto}
|
|
* coredns_dns_request_do_count_total{zone}
|
|
* coredns_dns_request_type_count_total{zone, type}
|
|
* coredns_dns_response_size_bytes{zone, proto}
|
|
* coredns_dns_response_rcode_count_total{zone, rcode}
|
|
|
|
Each counter has a label `zone` which is the zonename used for the request/response.
|
|
|
|
Extra labels used are:
|
|
|
|
* `proto` which holds the transport of the response ("udp" or "tcp")
|
|
* The address family (`family`) of the transport (1 = IP (IP version 4), 2 = IP6 (IP version 6)).
|
|
* `type` which holds the query type. It holds most common types (A, AAAA, MX, SOA, CNAME, PTR, TXT,
|
|
NS, SRV, DS, DNSKEY, RRSIG, NSEC, NSEC3, IXFR, AXFR and ANY) and "other" which lumps together all
|
|
other types.
|
|
* The `response_rcode_count_total` has an extra label `rcode` which holds the rcode of the response.
|
|
|
|
If monitoring is enabled, queries that do not enter the middleware chain are exported under the fake
|
|
name "dropped" (without a closing dot - this is never a valid domain name).
|
|
|
|
## Syntax
|
|
|
|
~~~
|
|
prometheus [ADDRESS]
|
|
~~~
|
|
|
|
For each zone that you want to see metrics for.
|
|
|
|
It optionally takes an address to which the metrics are exported; the default
|
|
is `localhost:9153`. The metrics path is fixed to `/metrics`.
|
|
|
|
## Examples
|
|
|
|
Use an alternative address:
|
|
|
|
~~~
|
|
prometheus localhost:9253
|
|
~~~
|