]> git.ipfire.org Git - thirdparty/pdns.git/blob - pdns/dnsdistdist/docs/statistics.rst
dnsdist: Add steal, iowait and UDP errors metrics
[thirdparty/pdns.git] / pdns / dnsdistdist / docs / statistics.rst
1 Statistics
2 ==========
3
4 dnsdist keeps statistics on the queries is receives and send out. They can be accessed in different ways:
5
6 - via the console (see :ref:`Console`), using :func:`dumpStats` for the general ones,
7 :func:`showServers()` for the ones related to the backends, :func:`showBinds()` for the frontends,
8 `getPool("pool name"):getCache():printStats()` for the ones related to a specific cache and so on
9 - via the internal webserver (see :doc:`../guides/webserver`)
10 - via Carbon / Graphite / Metronome export (see :doc:`../guides/carbon`)
11 - via SNMP (see :doc:`../advanced/snmp`)
12
13 To make sense of the statistics, the following relation should hold:
14
15 queries - noncompliant-queries
16 =
17 responses - noncompliant-responses + cache-hits + downstream-timeouts + self-answered + no-policy
18 + rule-drop
19
20 Note that packets dropped by eBPF (see :doc:`../advanced/ebpf`) are
21 accounted for in the eBPF statistics, and do not show up in the metrics
22 described on this page.
23
24 acl-drops
25 ---------
26 The number of packets (or TCP messages) dropped because of the :doc:`ACL <advanced/acl>`.
27 If a packet or message is dropped, it is not counted in the `queries` statistic.
28
29 cache-hits
30 ----------
31 Number of times a response was sent using data found in the :doc:`packet cache <guides/cache>`.
32
33 cache-misses
34 ------------
35 Number of times an answer was not found in the :doc:`packet cache <guides/cache>`. Only counted if a packet cache was setup for the selected pool.
36
37 cpu-iowait
38 ----------
39 .. versionadded:: 1.5.0
40
41 Time spent waiting for I/O to complete by the whole system.
42
43 cpu-steal
44 ---------
45 .. versionadded:: 1.5.0
46
47 Stolen time, which is the time spent by the whole system in other operating systems when running in a virtualized environment.
48
49 cpu-sys-msec
50 ------------
51 Milliseconds spent by :program:`dnsdist` in the "system" state.
52
53 cpu-user-msec
54 -------------
55 Milliseconds spent by :program:`dnsdist` in the "user" state.
56
57 downstream-send-errors
58 ----------------------
59 Number of errors when sending a query to a backend.
60
61 downstream-timeouts
62 -------------------
63 Number of queries not answer in time by a backend.
64
65 dyn-block-nmg-size
66 ------------------
67 Number of dynamic blocks entries.
68
69 dyn-blocked
70 -----------
71 Number of queries dropped because of a dynamic block.
72
73 empty-queries
74 -------------
75 Number of empty queries received from clients. Every empty-query is also
76 counted as a `query`.
77
78 fd-usage
79 --------
80 Number of currently used file descriptors.
81
82 frontend-noerror
83 ----------------
84 Number of NoError answers sent to clients.
85
86 frontend-nxdomain
87 -----------------
88 Number of NXDomain answers sent to clients.
89
90 frontend-servfail
91 -----------------
92 Number of ServFail answers sent to clients.
93
94 latency-avg100
95 --------------
96 Average response latency in microseconds of the last 100 packets
97
98 latency-avg1000
99 ---------------
100 Average response latency in microseconds of the last 1000 packets.
101
102 latency-avg10000
103 ----------------
104 Average response latency in microseconds of the last 10000 packets.
105
106 latency-avg1000000
107 ------------------
108 Average response latency in microseconds of the last 1000000 packets.
109
110 latency-slow
111 ------------
112 Number of queries answered in more than 1 second.
113
114 latency-sum
115 -----------
116 Total response time of all queries combined in milliseconds since the start of dnsdist. Can be used to calculate the
117 average response time over all queries.
118
119 latency-count
120 -------------
121 Number of queries contributing to response time histogram
122
123 latency-bucket
124 --------------
125 Number of queries contributing to response time histogram per latency bucket
126
127 latency0-1
128 ----------
129 Number of queries answered in less than 1 ms.
130
131 latency1-10
132 -----------
133 Number of queries answered in 1-10 ms.
134
135 latency10-50
136 ------------
137 Number of queries answered in 10-50 ms.
138
139 latency50-100
140 -------------
141 Number of queries answered in 50-100 ms.
142
143 latency100-1000
144 ---------------
145 Number of queries answered in 100-1000 ms.
146
147 no-policy
148 ---------
149 Number of queries dropped because no server was available.
150
151 noncompliant-queries
152 --------------------
153 Number of queries dropped as non-compliant.
154
155 noncompliant-responses
156 ----------------------
157 Number of answers from a backend dropped as non-compliant.
158
159 queries
160 -------
161 Number of received queries.
162
163 rdqueries
164 ---------
165 Number of received queries with the recursion desired bit set.
166
167 real-memory-usage
168 -----------------
169 Current memory usage.
170
171 responses
172 ---------
173 Number of responses received from backends. Note! This is not the number of
174 responses sent to clients. To get that number, add 'cache-hits' and
175 'responses'.
176
177 rule-drop
178 ---------
179 Number of queries dropped because of a rule.
180
181 rule-nxdomain
182 -------------
183 Number of NXDomain answers returned because of a rule.
184
185 rule-refused
186 ------------
187 Number of Refused answers returned because of a rule.
188
189 rule-servfail
190 -------------
191 Number of ServFail answers returned because of a rule.
192
193 security-status
194 ---------------
195 .. versionadded:: 1.3.4
196
197 The security status of :program:`dnsdist`. This is regularly polled.
198
199 * 0 = Unknown status or unreleased version
200 * 1 = OK
201 * 2 = Upgrade recommended
202 * 3 = Upgrade required (most likely because there is a known security issue)
203
204 self-answered
205 -------------
206 Number of self-answered responses.
207
208 servfail-responses
209 ------------------
210 Number of servfail answers received from backends.
211
212 trunc-failures
213 --------------
214 Number of errors encountered while truncating an answer.
215
216 udp-in-errors
217 -------------
218 .. versionadded:: 1.5.0
219
220 From /proc/net/snmp InErrors.
221
222 udp-noport-errors
223 -----------------
224 .. versionadded:: 1.5.0
225
226 From /proc/net/snmp NoPorts.
227
228 udp-recvbuf-errors
229 ------------------
230 .. versionadded:: 1.5.0
231
232 From /proc/net/snmp RcvbufErrors.
233
234 udp-sndbuf-errors
235 -----------------
236 .. versionadded:: 1.5.0
237
238 From /proc/net/snmp SndbufErrors.
239
240 uptime
241 ------
242 Uptime of the dnsdist process, in seconds.