coredns/plugin/trace
Miek Gieben b003d06003
For caddy v1 in our org (#4018)
* For caddy v1 in our org

This RP changes all imports for caddyserver/caddy to coredns/caddy. This
is the v1 code of caddy.

For the coredns/caddy repo the following changes have been made:

* anything not needed by us is deleted
* all `telemetry` stuff is deleted
* all its import paths are also changed to point to coredns/caddy
* the v1 branch has been moved to the master branch
* a v1.1.0 tag has been added to signal the latest release

Signed-off-by: Miek Gieben <miek@miek.nl>

* Fix imports

Signed-off-by: Miek Gieben <miek@miek.nl>

* Group coredns/caddy with out plugins

Signed-off-by: Miek Gieben <miek@miek.nl>

* remove this file

Signed-off-by: Miek Gieben <miek@miek.nl>

* Relax import ordering

github.com/coredns is now also a coredns dep, this makes
github.com/coredns/caddy fit more natural in the list.

Signed-off-by: Miek Gieben <miek@miek.nl>

* Fix final import

Signed-off-by: Miek Gieben <miek@miek.nl>
2020-09-24 18:14:41 +02:00
..
log_test.go Clean up tests logging (#1979) 2018-07-19 16:23:06 +01:00
README.md Disable debug mode for tracing - removes extra logging (#4016) 2020-07-23 09:40:17 +02:00
setup.go For caddy v1 in our org (#4018) 2020-09-24 18:14:41 +02:00
setup_test.go For caddy v1 in our org (#4018) 2020-09-24 18:14:41 +02:00
trace.go bump prometheus with zipkin (#4109) 2020-09-16 11:33:08 -07:00
trace_test.go For caddy v1 in our org (#4018) 2020-09-24 18:14:41 +02:00

trace

Name

trace - enables OpenTracing-based tracing of DNS requests as they go through the plugin chain.

Description

With trace you enable OpenTracing of how a request flows through CoreDNS. Enable debug plugin to get logs from the trace plugin.

Syntax

The simplest form is just:

trace [ENDPOINT-TYPE] [ENDPOINT]
  • ENDPOINT-TYPE is the type of tracing destination. Currently only zipkin and datadog are supported. Defaults to zipkin.
  • ENDPOINT is the tracing destination, and defaults to localhost:9411. For Zipkin, if ENDPOINT does not begin with http, then it will be transformed to http://ENDPOINT/api/v1/spans.

With this form, all queries will be traced.

Additional features can be enabled with this syntax:

trace [ENDPOINT-TYPE] [ENDPOINT] {
	every AMOUNT
	service NAME
	client_server
}
  • every AMOUNT will only trace one query of each AMOUNT queries. For example, to trace 1 in every 100 queries, use AMOUNT of 100. The default is 1.
  • service NAME allows you to specify the service name reported to the tracing server. Default is coredns.
  • client_server will enable the ClientServerSameSpan OpenTracing feature.

Zipkin

You can run Zipkin on a Docker host like this:

docker run -d -p 9411:9411 openzipkin/zipkin

Examples

Use an alternative Zipkin address:

trace tracinghost:9253

or

. {
    trace zipkin tracinghost:9253
}

If for some reason you are using an API reverse proxy or something and need to remap the standard Zipkin URL you can do something like:

trace http://tracinghost:9411/zipkin/api/v1/spans

Using DataDog:

trace datadog localhost:8125

Trace one query every 10000 queries, rename the service, and enable same span:

trace tracinghost:9411 {
	every 10000
	service dnsproxy
	client_server
}

Also See

See the debug plugin for more information about debug logging.