Comments (7)
All these "unknown" record types and other similar things are silently ignored now, this change was made in 0e9fa83 .
Obviously, it is not an ideal solution to the problem, but it will allow to unblock you all and proper (also more future-proof) support will be done in #101.
Please also note that minimal Rust version required to compile this program was bumped to 1.46.
Let me know if that fix worked for you.
from unbound-telemetry.
Hi, @pauldokas!
Can you attach unbound-control stats
output here to see which one record can't be parsed?
And yes, I agree that such a failures during parsing should be just skipped instead.
from unbound-telemetry.
Thank you.
thread0.num.queries=0
thread0.num.queries_ip_ratelimited=0
thread0.num.cachehits=0
thread0.num.cachemiss=0
thread0.num.prefetch=0
thread0.num.expired=0
thread0.num.recursivereplies=0
thread0.num.dnscrypt.crypted=0
thread0.num.dnscrypt.cert=0
thread0.num.dnscrypt.cleartext=0
thread0.num.dnscrypt.malformed=0
thread0.requestlist.avg=0
thread0.requestlist.max=0
thread0.requestlist.overwritten=0
thread0.requestlist.exceeded=0
thread0.requestlist.current.all=0
thread0.requestlist.current.user=0
thread0.recursion.time.avg=0.000000
thread0.recursion.time.median=0
thread0.tcpusage=0
total.num.queries=0
total.num.queries_ip_ratelimited=0
total.num.cachehits=0
total.num.cachemiss=0
total.num.prefetch=0
total.num.expired=0
total.num.recursivereplies=0
total.num.dnscrypt.crypted=0
total.num.dnscrypt.cert=0
total.num.dnscrypt.cleartext=0
total.num.dnscrypt.malformed=0
total.requestlist.avg=0
total.requestlist.max=0
total.requestlist.overwritten=0
total.requestlist.exceeded=0
total.requestlist.current.all=0
total.requestlist.current.user=0
total.recursion.time.avg=0.000000
total.recursion.time.median=0
total.tcpusage=0
time.now=1629245344.643864
time.up=20682.110930
time.elapsed=17.851862
mem.cache.rrset=538823
mem.cache.message=673235
mem.mod.iterator=16556
mem.mod.validator=66288
mem.mod.respip=0
mem.cache.dnscrypt_shared_secret=0
mem.cache.dnscrypt_nonce=0
mem.streamwait=0
mem.http.query_buffer=0
mem.http.response_buffer=0
histogram.000000.000000.to.000000.000001=0
histogram.000000.000001.to.000000.000002=0
histogram.000000.000002.to.000000.000004=0
histogram.000000.000004.to.000000.000008=0
histogram.000000.000008.to.000000.000016=0
histogram.000000.000016.to.000000.000032=0
histogram.000000.000032.to.000000.000064=0
histogram.000000.000064.to.000000.000128=0
histogram.000000.000128.to.000000.000256=0
histogram.000000.000256.to.000000.000512=0
histogram.000000.000512.to.000000.001024=0
histogram.000000.001024.to.000000.002048=0
histogram.000000.002048.to.000000.004096=0
histogram.000000.004096.to.000000.008192=0
histogram.000000.008192.to.000000.016384=0
histogram.000000.016384.to.000000.032768=0
histogram.000000.032768.to.000000.065536=0
histogram.000000.065536.to.000000.131072=0
histogram.000000.131072.to.000000.262144=0
histogram.000000.262144.to.000000.524288=0
histogram.000000.524288.to.000001.000000=0
histogram.000001.000000.to.000002.000000=0
histogram.000002.000000.to.000004.000000=0
histogram.000004.000000.to.000008.000000=0
histogram.000008.000000.to.000016.000000=0
histogram.000016.000000.to.000032.000000=0
histogram.000032.000000.to.000064.000000=0
histogram.000064.000000.to.000128.000000=0
histogram.000128.000000.to.000256.000000=0
histogram.000256.000000.to.000512.000000=0
histogram.000512.000000.to.001024.000000=0
histogram.001024.000000.to.002048.000000=0
histogram.002048.000000.to.004096.000000=0
histogram.004096.000000.to.008192.000000=0
histogram.008192.000000.to.016384.000000=0
histogram.016384.000000.to.032768.000000=0
histogram.032768.000000.to.065536.000000=0
histogram.065536.000000.to.131072.000000=0
histogram.131072.000000.to.262144.000000=0
histogram.262144.000000.to.524288.000000=0
num.query.tcp=0
num.query.tcpout=0
num.query.tls=0
num.query.tls.resume=0
num.query.ipv6=0
num.query.https=0
num.query.flags.QR=0
num.query.flags.AA=0
num.query.flags.TC=0
num.query.flags.RD=0
num.query.flags.RA=0
num.query.flags.Z=0
num.query.flags.AD=0
num.query.flags.CD=0
num.query.edns.present=0
num.query.edns.DO=0
num.answer.rcode.NOERROR=0
num.answer.rcode.FORMERR=0
num.answer.rcode.SERVFAIL=0
num.answer.rcode.NXDOMAIN=0
num.answer.rcode.NOTIMPL=0
num.answer.rcode.REFUSED=0
num.query.ratelimited=0
num.answer.secure=0
num.answer.bogus=0
num.rrset.bogus=0
num.query.aggressive.NOERROR=0
num.query.aggressive.NXDOMAIN=0
unwanted.queries=0
unwanted.replies=0
msg.cache.count=2580
rrset.cache.count=1844
infra.cache.count=4
key.cache.count=0
dnscrypt_shared_secret.cache.count=0
dnscrypt_nonce.cache.count=0
num.query.dnscrypt.shared_secret.cachemiss=0
num.query.dnscrypt.replay=0
num.query.authzone.up=0
num.query.authzone.down=0
from unbound-telemetry.
Hello, I'm also experiencing regular 'unknown record type'
failures since upgrading to 1.13.2
. I'm running an unbound docker container (klutchell/unbound).
Strangely, observing the Grafana dashboard, there are intervals when metrics are written to Prometheus and intervals when no metrics are written and the exporter reports the 'unknown record type'
error. So I guess the problematic metric may not be present in the unbound stats at all times? @pauldokas do you oberseve a similar behaviour?
I will check my unbound-control stats
output more intensely tonight, on a first glance it had the same lines as above.
from unbound-telemetry.
Thank you for helping out here, @moritzj29 ! I'll try to fix it next week 👍🏼
from unbound-telemetry.
The problem comes from this new feature in 1.13.2:
- Merge PR #491: Add SVCB and HTTPS types and handling according to
draft-ietf-dnsop-svcb-https.
Which adds these lines to statistics output:
num.query.type.HTTPS=xxxx
num.query.type.SVCB=xxxx
As long as unbound has not received any queries of type HTTPS/SVCB unbound-telemetry works fine.
I sadly have not enough experience with rust to understand what exactly the problem is but it's probably in here:
unbound-telemetry/src/statistics/parser/mod.rs
Lines 143 to 150 in 7f1b6d4
Edit:
On closer inspection, I think the root cause is that the domain crate does not support HTTPS/SVCB Rtypes: https://docs.rs/domain/0.6.1/domain/base/iana/rtype/enum.Rtype.html
Edit 2:
There is already a PR for the domain crate to add HTTPS/SVCB Rtypes
from unbound-telemetry.
It works again. Thank you.
from unbound-telemetry.
Related Issues (20)
- Better support for unknown query types and classes
- statistics for query names
- RUSTSEC-2021-0124: Data race when sending and receiving after closing a `oneshot` channel
- Unable to observe unbound statistics: Connection reset by peer (os error 104) HOT 1
- Telemetry `/healthcheck` method causes `could not SSL_read crypto error` on unbound resolver
- Running it in docker a container
- Unable to parse num.query.udpout (unknown key)
- RUSTSEC-2021-0139: ansi_term is Unmaintained
- dashboards grafanna show NA
- Unable to observe unbound statistics: Unable to parse 'NSAP-PTR' value HOT 1
- Unbound statistics HOT 6
- Listen on dual socket HOT 1
- Versioned releases HOT 2
- output to file for prometheus node_exporter textfile collector HOT 1
- Daemon should explicitly listen to TERM and INT signals
- Cannot run the script on a Raspberry Pi HOT 2
- RUSTSEC-2021-0079: Integer overflow in `hyper`'s parsing of the `Transfer-Encoding` header leads to data loss
- RUSTSEC-2021-0078: Lenient `hyper` header parsing of `Content-Length` could allow request smuggling
- Unable to see unbound metrics with shm HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from unbound-telemetry.