Skip to content
Richard Boucher edited this page Nov 1, 2022 · 32 revisions

Extending pktvisor DNS handler metrics

The objective of the DNSv2 effort is to provide a number of significant enhancements to the DNS metrics currently provided by the pktvisor DNS handler, without the constraint of requiring reverse compatibility. That said, the changes should be made to be compatible as much as possible but important or significant enhancements should not be precluded because of this.

The following enhancements should be considered candidates for DNSv2:

  • Normalize units of measure across similar metrics (packets versus queries versus responses versus transactions)
  • Consistency of interpretation of metrics when filters are applied
  • Provide explicit inbound versus outbound DNS query metrics
  • Extend support of DNS transaction metrics when filters are applied (such as RCODEs)
  • Support for new filters, such as
    • ANSWER payload content of responses
  • Support for Prometheus/OpenMetrics style histograms

Metrics Structure

  • All metrics should be based on transactions

Transaction data that needs to be cached from the query:

  • QNAME
  • ECS
  • UDP/TCP
  • Source IPv4/v6
  • Destination IPv4/v6

Metric naming structure: (where <dir> is either in, out or undef)

Metric Name Type Unit of Measure Metric Groups
dns_observed_packets gauge packets Counters
dns_filtered_packets gauge packets Counters
dns_deep_sampled_packets gauge packets Counters
dns_<dir>_xacts gauge transactions Counters, In/Out/UndefinedDirection
dns_<dir>_ipv4_xacts gauge transactions Counters, In/Out/UndefinedDirection
dns_<dir>_ipv6_xacts gauge transactions Counters, In/Out/UndefinedDirection
dns_<dir>_tcp_xacts gauge transactions Counters, In/Out/UndefinedDirection
dns_<dir>_udp_xacts gauge transactions Counters, In/Out/UndefinedDirection
dns_<dir>_dnssec_xacts gauge transactions Counters, In/Out/UndefinedDirection
dns_<dir>_noerror_xacts gauge transactions Counters, In/Out/UndefinedDirection
dns_<dir>_nxdomain_xacts gauge transactions Counters, In/Out/UndefinedDirection
dns_<dir>_srvfail_xacts gauge transactions Counters, In/Out/UndefinedDirection
dns_<dir>_refused_xacts gauge transactions Counters, In/Out/UndefinedDirection
dns_<dir>_nodata_xacts gauge transactions Counters, In/Out/UndefinedDirection
dns_<dir>_cardinality_qname gauge number Cardinality, In/Out/UndefinedDirection
dns_<dir>_xact_rates quantiles transactions/sec Quantiles, In/Out/UndefinedDirection
dns_<dir>_xact_time_us quantiles microseconds Quantiles, In/Out/UndefinedDirection
dns_<dir>_top_noerror_xacts top transactions TopRcodes, In/Out/UndefinedDirection
dns_<dir>_top_nxdomain_xacts top transactions TopRcodes, In/Out/UndefinedDirection
dns_<dir>_top_srvfail_xacts top transactions TopRcodes, In/Out/UndefinedDirection
dns_<dir>_top_refused_xacts top transactions TopRcodes, In/Out/UndefinedDirection
dns_<dir>_top_nodata_xacts top transactions TopRcodes, In/Out/UndefinedDirection
dns_<dir>_top_qname2_xacts top transactions TopQnames, In/Out/UndefinedDirection
dns_<dir>_top_qname3_xacts top transactions TopQnames, In/Out/UndefinedDirection
dns_<dir>_top_geo_xacts top transactions TopGeo, In/Out/UndefinedDirection
dns_<dir>_top_asn_xacts top transactions TopASN, In/Out/UndefinedDirection
dns_<dir>_top_qtype_xacts top transactions TopQtypes, In/Out/UndefinedDirection
dns_<dir>_top_slow_xacts top transactions TopSlow, In/Out/UndefinedDirection
dns_<dir>_top_udp_port_xacts top transactions TopPorts, In/Out/UndefinedDirection
dns_<dir>_timeout_queries gauge queries Counters, In/Out/UndefinedDirection
dns_<dir>_timeout_udp_queries gauge queries TimeoutDetails, In/Out/UndefinedDirection
dns_<dir>_timeout_tcp_queries gauge queries TimeoutDetails, In/Out/UndefinedDirection
dns_<dir>_timeout_ipv4_queries gauge queries TimeoutDetails, In/Out/UndefinedDirection
dns_<dir>_timeout_ipv6_queries gauge queries TimeoutDetails, In/Out/UndefinedDirection
dns_<dir>_timeout_top_qname_queries top queries TimeoutDetails, In/Out/UndefinedDirection
dns_<dir>_timeout_top_asn_queries top queries TimeoutDetails, In/Out/UndefinedDirection
dns_<dir>_timeout_top_geo_queries top queries TimeoutDetails, In/Out/UndefinedDirection
dns_<dir>_timeout_top_src_ipv4_queries top queries TimeoutDetails, In/Out/UndefinedDirection
dns_<dir>_timeout_top_src_ipv6_queries top queries TimeoutDetails, In/Out/UndefinedDirection
dns_<dir>_timeout_top_dst_ipv4_queries top queries TimeoutDetails, In/Out/UndefinedDirection
dns_<dir>_timeout_top_dst_ipv6_queries top queries TimeoutDetails, In/Out/UndefinedDirection

Clone this wiki locally