aboutsummaryrefslogtreecommitdiff
path: root/man/coredns-trace.7
blob: caf6854eda2e5bbb3fce00fe880f1950391a2c27 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
.\" Generated by Mmark Markdown Processer - mmark.miek.nl
.TH "COREDNS-TRACE" 7 "March 2021" "CoreDNS" "CoreDNS Plugins"

.SH "NAME"
.PP
\fItrace\fP - enables OpenTracing-based tracing of DNS requests as they go through the plugin chain.

.SH "DESCRIPTION"
.PP
With \fItrace\fP you enable OpenTracing of how a request flows through CoreDNS. Enable the \fIdebug\fP
plugin to get logs from the trace plugin.

.SH "SYNTAX"
.PP
The simplest form is just:

.PP
.RS

.nf
trace [ENDPOINT\-TYPE] [ENDPOINT]

.fi
.RE

.IP \(bu 4
\fBENDPOINT-TYPE\fP is the type of tracing destination. Currently only \fB\fCzipkin\fR and \fB\fCdatadog\fR are supported.
Defaults to \fB\fCzipkin\fR.
.IP \(bu 4
\fBENDPOINT\fP is the tracing destination, and defaults to \fB\fClocalhost:9411\fR. For Zipkin, if
\fBENDPOINT\fP does not begin with \fB\fChttp\fR, then it will be transformed to \fB\fChttp://ENDPOINT/api/v1/spans\fR.


.PP
With this form, all queries will be traced.

.PP
Additional features can be enabled with this syntax:

.PP
.RS

.nf
trace [ENDPOINT\-TYPE] [ENDPOINT] {
    every AMOUNT
    service NAME
    client\_server
    datadog\_analytics\_rate RATE
}

.fi
.RE

.IP \(bu 4
\fB\fCevery\fR \fBAMOUNT\fP 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.
.IP \(bu 4
\fB\fCservice\fR \fBNAME\fP allows you to specify the service name reported to the tracing server.
Default is \fB\fCcoredns\fR.
.IP \(bu 4
\fB\fCclient_server\fR will enable the \fB\fCClientServerSameSpan\fR OpenTracing feature.
.IP \(bu 4
\fB\fCdatadog_analytics_rate\fR \fBRATE\fP will enable trace analytics
\[la]https://docs.datadoghq.com/tracing/app_analytics\[ra] on the traces sent
from \fI0\fP to \fI1\fP, \fI1\fP being every trace sent will be analyzed. This is a datadog only feature
(\fBENDPOINT-TYPE\fP needs to be \fB\fCdatadog\fR)


.SH "ZIPKIN"
.PP
You can run Zipkin on a Docker host like this:

.PP
.RS

.nf
docker run \-d \-p 9411:9411 openzipkin/zipkin

.fi
.RE

.PP
Note the zipkin provider does not support the v1 API since coredns 1.7.1.

.SH "EXAMPLES"
.PP
Use an alternative Zipkin address:

.PP
.RS

.nf
trace tracinghost:9253

.fi
.RE

.PP
or

.PP
.RS

.nf
\&. {
    trace zipkin tracinghost:9253
}

.fi
.RE

.PP
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:

.PP
.RS

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

.fi
.RE

.PP
Using DataDog:

.PP
.RS

.nf
trace datadog localhost:8126

.fi
.RE

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

.PP
.RS

.nf
trace tracinghost:9411 {
    every 10000
    service dnsproxy
    client\_server
}

.fi
.RE

.SH "SEE ALSO"
.PP
See the \fIdebug\fP plugin for more information about debug logging.