Git Product home page Git Product logo

Comments (7)

svartalf avatar svartalf commented on July 25, 2024 1

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.

svartalf avatar svartalf commented on July 25, 2024

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.

pauldokas avatar pauldokas commented on July 25, 2024

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.

moritzj29 avatar moritzj29 commented on July 25, 2024

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.

svartalf avatar svartalf commented on July 25, 2024

Thank you for helping out here, @moritzj29 ! I'll try to fix it next week 👍🏼

from unbound-telemetry.

HorayNarea avatar HorayNarea commented on July 25, 2024

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:

key if key.starts_with("num.query.type.") => {
let mut parts = key.rsplitn(2, '.');
let raw_type = parts.next().ok_or(ParseError::InvalidFormat)?;
let type_ = parse_rtype(raw_type)?;
let value = value.parse::<u64>()?;
let _ = stats.query_types.insert(type_, value);
Ok(())
}


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.

pauldokas avatar pauldokas commented on July 25, 2024

It works again. Thank you.

from unbound-telemetry.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.