prometheus-community / bind_exporter

Prometheus exporter for BIND
Apache License 2.0
303 stars 102 forks source link

Has the tasks path has been removed from bind statistics and replaced with others? #214

Open Dakobrah opened 2 weeks ago

Dakobrah commented 2 weeks ago

If it's any help, we noticed this issue after patching from BIND 9.20.2 to 9.20.3

Host operating system Linux x86_64 5.14.0-427.40.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Oct 4 15:22:45 EDT 2024 x86_64 x86_64 x86_64 GNU/Linux

BIND version BIND 9.20.3 (Stable Release)

bind_exporter version bind_exporter, version 0.3.0 (branch: HEAD, revision: c34ff3d6b4817f42e74b2b05b3797cf99683b4a9) build user: root@48c85d39c9a6 build date: 20200109-18:54:09 go version: go1.12.14

bind_exporter command-line flags --bind.stats-url=http://127.0.0.1:8053 (when testing with --bind.stats-groups=server,view, the error log message stops)

bind_exporter log output

level=info ts=2024-11-01T17:11:52.430Z caller=bind_exporter.go:559 msg="Build context" build_context="(go=go1.20.7, platform=linux/amd64, user=root@e6068f3fc710, date=20230811-20:19:28, tags=netgo static_build)"
level=info ts=2024-11-01T17:11:52.430Z caller=bind_exporter.go:560 msg="Collectors enabled" collectors=server,view,tasks
level=info ts=2024-11-01T17:11:52.431Z caller=tls_config.go:274 msg="Listening on" address=[::]:9119
level=info ts=2024-11-01T17:11:52.431Z caller=tls_config.go:277 msg="TLS is disabled." http2=false address=[::]:9119
level=error ts=2024-11-01T17:12:01.550Z caller=bind_exporter.go:445 msg="Couldn't retrieve BIND stats" err="unexpected status 404 No such URL"

What did you expect to see? No errors in logs and these 2 queries to return results:

wget -qO- http://127.0.0.1:8053/xml/v3/tasks
wget -qO- http://127.0.0.1:8053/json/v1/tasks

What did you see instead? This for both queries: wget: server returned error: HTTP/1.1 404 No such URL

Additional context I couldn't find any explicit change notes in BIND, but I saw this reference in the 9.21.2 BIND ARM (This makes me think the endpoints have changed):

Broken-out subsets of the statistics can be viewed at 
http://127.0.0.1:8888/xml/v3/status (server uptime and last reconfiguration time)
http://127.0.0.1:8888/xml/v3/server (server and resolver statistics)
http://127.0.0.1:8888/xml/v3/zones (zone statistics)
http://127.0.0.1:8888/xml/v3/xfrins (incoming zone transfer statistics)
http://127.0.0.1:8888/xml/v3/net (network status and socket statistics)
http://127.0.0.1:8888/xml/v3/mem (memory manager statistics)
http://127.0.0.1:8888/xml/v3/traffic (traffic sizes)

The full set of statistics can also be read in JSON format at 
http://127.0.0.1:8888/json, 
with the broken-out subsets at:
http://127.0.0.1:8888/json/v1/status (server uptime and last reconfiguration time),
http://127.0.0.1:8888/json/v1/server (server and resolver statistics)
http://127.0.0.1:8888/json/v1/zones (zone statistics)
http://127.0.0.1:8888/json/v1/xfrins (incoming zone transfer statistics),
http://127.0.0.1:8888/json/v1/net (network status and socket statistics)
http://127.0.0.1:8888/json/v1/mem (memory manager statistics)
http://127.0.0.1:8888/json/v1/traffic (traffic sizes)

When testing, all of these queries will return results. (which seem to contain pieces of what I was expecting in the prior /tasks.

GravelCZ commented 7 hours ago

Try updating bind_exporter to version 0.8