metrics

package
v0.0.0-...-4a3b57d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 22, 2016 License: Apache-2.0 Imports: 9 Imported by: 0

README

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_transfer_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_transfer_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 old the query type, it holds the most common ones (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 domain "dropped" (without a closing dot).

Restarting CoreDNS will stop the monitoring. This is a bug. Also this upstream Caddy bug.

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

Documentation

Index

Constants

View Source
const (
	// Dropped indicates we dropped the query before any handling. It has no closing dot, so it can not be a valid zone.
	Dropped = "dropped"
)

Variables

This section is empty.

Functions

func Report

func Report(state middleware.State, zone, rcode string, size int, start time.Time)

Report is a plain reporting function that the server can use for REFUSED and other queries that are turned down because they don't match any middleware.

Types

type Metrics

type Metrics struct {
	Next middleware.Handler
	Addr string

	Once      sync.Once
	ZoneNames []string
	// contains filtered or unexported fields
}

Metrics holds the prometheus configuration. The metrics' path is fixed to be /metrics

func (Metrics) ServeDNS

func (m Metrics) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error)

func (*Metrics) Shutdown

func (m *Metrics) Shutdown() error

func (*Metrics) Start

func (m *Metrics) Start() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL