}),
ret.end());
}
+ g_stats.dns64prefixanswers++;
return rcode;
}
int rcode = directResolve(DNSName(newquery), QType::PTR, QClass::IN, ret);
+ g_stats.dns64prefixanswers++;
return rcode;
}
static const oid aggressiveNSECCacheNSECWCHitsOID[] = { RECURSOR_STATS_OID, 111 };
static const oid aggressiveNSECCacheNSEC3WCHitsOID[] = { RECURSOR_STATS_OID, 112 };
static const oid dotOutqueriesOID [] = { RECURSOR_STATS_OID, 113 };
+static const oid dns64PrefixAnswers [] = { RECURSOR_STATS_OID, 114 };
static std::unordered_map<oid, std::string> s_statsMap;
registerCounter64Stat("aggressive-nsec-cache-nsec-wc-hits", aggressiveNSECCacheNSECWCHitsOID, OID_LENGTH(aggressiveNSECCacheNSECWCHitsOID));
registerCounter64Stat("aggressive-nsec-cache-nsec-wc3-hits", aggressiveNSECCacheNSEC3WCHitsOID, OID_LENGTH(aggressiveNSECCacheNSEC3WCHitsOID));
registerCounter64Stat("dot-outqueries", dotOutqueriesOID, OID_LENGTH(dotOutqueriesOID));
+ registerCounter64Stat("dns64-prefix-answers", dns64PrefixAnswers, OID_LENGTH(dns64PrefixAnswers));
#endif /* HAVE_NET_SNMP */
}
addGetStat("taskqueue-expired", []() { return getTaskExpired(); });
addGetStat("taskqueue-size", []() { return getTaskSize(); });
+ addGetStat("dns64-prefix-answers", &g_stats.dns64prefixanswers);
+
/* make sure that the ECS stats are properly initialized */
SyncRes::clearECSStats();
for (size_t idx = 0; idx < SyncRes::s_ecsResponsesBySubnetSize4.size(); idx++) {
"Number of outgoing DoT queries since starting"
::= { stats 113 }
+dns64PrefixAnswers OBJECT-TYPE
+ SYNTAX Counter64
+ MAX-ACCESS read-only
+ STATUS current
+ DESCRIPTION
+ "Number of answers generated by dns64-prefix matching"
+ ::= { stats 114 }
+
---
--- Traps / Notifications
---
aggressiveNSECCacheNSEC3Hits,
aggressiveNSECCacheNSECWcHits,
aggressiveNSECCacheNSEC3WcHits,
- dotOutqueries
+ dotOutqueries,
+ dns64PrefixAnswers
}
STATUS current
DESCRIPTION "Objects conformance group for PowerDNS Recursor"
cumul-answers-x
^^^^^^^^^^^^^^^^^^
+.. versionadded:: 4.6
+
Cumulative counts of answer times in buckets less or equal than x microseconds.
These metrics include packet cache hits.
These metrics are useful for Prometheus and not listed other outputs by default.
cumul-auth4-answers-x
^^^^^^^^^^^^^^^^^^^^^
+.. versionadded:: 4.6
+
Cumulative counts of answer times of authoritative servers over IPv4 in buckets less than x microseconds.
These metrics are useful for Prometheus and not listed other outputs by default.
cumul-auth6-answers-x
^^^^^^^^^^^^^^^^^^^^^
+.. versionadded:: 4.6
+
Cumulative counts of answer times of authoritative servers over IPv6 in buckets less than x microseconds.
These metrics are useful for Prometheus and not listed other outputs by default.
+dns64-prefix-answers
+^^^^^^^^^^^^^^^^^^^^
+.. versionadded:: 4.6
+
+number of ``AAAA`` and ``PTR`` answers generated by :ref:`setting-dns64-prefix` matching.
dnssec-authentic-data-queries
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. _settings-dot-to-auth-names:
``dot-to-auth-names``
--------------------
+---------------------
.. versionadded:: 4.6.0
- Comma separated list of domain-names or suffixes
- Netmask, as a string
- Default: None
-Enable DNS64 (:rfc:`6147`) support using the supplied /96 IPv6 prefix. This will generate 'fake' AAAA records for names
-with only `A` records, as well as 'fake' PTR records to make sure that reverse lookup of DNS64-generated IPv6 addresses
+Enable DNS64 (:rfc:`6147`) support using the supplied /96 IPv6 prefix. This will generate 'fake' ``AAAA`` records for names
+with only ``A`` records, as well as 'fake' ``PTR`` records to make sure that reverse lookup of DNS64-generated IPv6 addresses
generate the right name.
See :doc:`dns64` for more flexible but slower alternatives using Lua.
std::atomic<uint64_t> rebalancedQueries{0};
std::atomic<uint64_t> proxyProtocolInvalidCount{0};
std::atomic<uint64_t> nodLookupsDroppedOversize{0};
+ std::atomic<uint64_t> dns64prefixanswers{0};
RecursorStats() :
answers("answers", { 1000, 10000, 100000, 1000000 }),
MetricDefinition(PrometheusMetricType::counter,
"Number of outgoing DoT queries since starting")},
+ { "dns64-prefix-answers",
+ MetricDefinition(PrometheusMetricType::counter,
+ "Number of AAAA and PTR generated by a matching dns64-prefix")},
+
// For cumulative histogram, state the xxx_count name where xxx matches the name in rec_channel_rec
{ "cumul-answers-count",
MetricDefinition(PrometheusMetricType::histogram,