Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support GODEBUG=netdns=cgo # force cgo resolver as an alternative DNS resolver mode #1256

Open
Nachtfalkeaw opened this issue Jun 11, 2024 · 0 comments

Comments

@Nachtfalkeaw
Copy link

Host operating system: output of uname -a

Linux ubiquiti 5.10.0-28-amd64 #1 SMP Debian 5.10.209-2 (2024-01-31) x86_64 GNU/Linux

blackbox_exporter version: output of blackbox_exporter --version

blackbox_exporter, version 0.25.0 (branch: HEAD, revision: ef3ff4f)
build user: root@47d5b0d99f18
build date: 20240409-12:58:39
go version: go1.22.2
platform: linux/amd64
tags: unknown

root@ubiquiti:/opt/prometheus/blackbox_exporter# go version -m ./blackbox_exporter
./blackbox_exporter: go1.22.2
        path    github.com/prometheus/blackbox_exporter
        mod     github.com/prometheus/blackbox_exporter (devel)
        dep     github.com/alecthomas/kingpin/v2        v2.4.0  h1:f48lwail6p8zpO1bC4TxtqACaGqHYA22qkHjHpqDjYY=
        dep     github.com/alecthomas/units     v0.0.0-20231202071711-9a357b53e9c9      h1:ez/4by2iGztzR4L0zgAOR8lTQK9VlyBVVd7G4omaOQs=
        dep     github.com/andybalholm/brotli   v1.1.0  h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M=
        dep     github.com/beorn7/perks v1.0.1  h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
        dep     github.com/cespare/xxhash/v2    v2.2.0  h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
        dep     github.com/coreos/go-systemd/v22        v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
        dep     github.com/go-kit/log   v0.2.1  h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU=
        dep     github.com/go-logfmt/logfmt     v0.5.1  h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA=
        dep     github.com/jpillora/backoff     v1.0.0  h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=
        dep     github.com/miekg/dns    v1.1.58 h1:ca2Hdkz+cDg/7eNF6V56jjzuZ4aCAE+DbVkILdQWG/4=
        dep     github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f      h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU=
        dep     github.com/prometheus/client_golang     v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU=
        dep     github.com/prometheus/client_model      v0.6.1  h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
        dep     github.com/prometheus/common    v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO2ck=
        dep     github.com/prometheus/exporter-toolkit  v0.11.0 h1:yNTsuZ0aNCNFQ3aFTD2uhPOvr4iD7fdBvKPAEGkNf+g=
        dep     github.com/prometheus/procfs    v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
        dep     github.com/xhit/go-str2duration/v2      v2.1.0  h1:lxklc02Drh6ynqX+DdPyp5pCKLUQpRT8bp8Ydu2Bstc=
        dep     golang.org/x/crypto     v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30=
        dep     golang.org/x/net        v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w=
        dep     golang.org/x/oauth2     v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI=
        dep     golang.org/x/sync       v0.6.0  h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
        dep     golang.org/x/sys        v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
        dep     golang.org/x/text       v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
        dep     google.golang.org/genproto/googleapis/rpc       v0.0.0-20240227224415-6ceb2ff114de      h1:cZGRis4/ot9uVm639a+rHCUaG0JJHEsdyzSQTMX+suY=
        dep     google.golang.org/grpc  v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM=
        dep     google.golang.org/protobuf      v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
        dep     gopkg.in/yaml.v2        v2.4.0  h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
        dep     gopkg.in/yaml.v3        v3.0.1  h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
        build   -buildmode=exe
        build   -compiler=gc
        build   -ldflags="-X github.com/prometheus/common/version.Version=0.25.0 -X github.com/prometheus/common/version.Revision=ef3ff4fef195333fb8ee0039fb487b2f5007908f -X github.com/prometheus/common/version.Branch=HEAD -X github.com/prometheus/common/version.BuildUser=root@47d5b0d99f18 -X github.com/prometheus/common/version.BuildDate=20240409-12:58:39  -extldflags '-static'"
        build   DefaultGODEBUG=httplaxcontentlength=1,httpmuxgo121=1,tls10server=1,tlsrsakex=1,tlsunsafeekm=1
        build   CGO_ENABLED=0
        build   GOARCH=amd64
        build   GOOS=linux
        build   GOAMD64=v1
        build   vcs=git
        build   vcs.revision=ef3ff4fef195333fb8ee0039fb487b2f5007908f
        build   vcs.time=2024-04-09T12:52:01Z
        build   vcs.modified=false

Based on this discussion it seems to not be possible to change the default DNS resolver mode:
https://groups.google.com/g/prometheus-users/c/OkYdlviBGUI

I would like to change the DNS resolver mode of blackbox_exporter to make it possible to work with local dns caches like systemd-resolved or nscd because these are the tool I have available in my environment:

export GODEBUG=netdns=go # force pure Go resolver 
export GODEBUG=netdns=cgo # force cgo resolver 

In my blackbox_exporter config I have around 100 targets configured which is not that big I think.
I ran probes every 15s - and I did every 5s before - that is a lot of DNS traffic I would like to avoid.

Instead of configuring a complete DNS Server a DNS cache would besufficient.
From the google discussion I think I understood that there is a flag which needs to be set before compiling and then it should be possible to switch between the modes if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant