metrics

package
v0.0.0-...-15297c8 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2016 License: Apache-2.0 Imports: 14 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 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 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 to which 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(req request.Request, 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) OnShutdown

func (m *Metrics) OnShutdown() error

OnShutdown tears down the metrics on shutdown.

func (*Metrics) OnStartup

func (m *Metrics) OnStartup() error

OnStartup sets up the metrics on startup.

func (Metrics) ServeDNS

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

ServeDNS implements the Handler interface.

Jump to

Keyboard shortcuts

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