aboutsummaryrefslogtreecommitdiff
path: root/man/coredns-trace.7
blob: 730486c93b86788d6b598b83ee7aeac4e073c8bb (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
.\" Generated by Mmark Markdown Processer - mmark.miek.nl
.TH "COREDNS-TRACE" 7 "March 2020" "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.

.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
ENDPOINT 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
}

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


.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

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

.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