p_config "total.num.queries" "total queries from clients"
p_config "total.num.cachehits" "cache hits"
p_config "num.query.tcp" "TCP queries"
+ p_config "num.query.ipv6" "IPv6 queries"
p_config "unwanted.queries" "queries that failed acl"
p_config "unwanted.replies" "unwanted or unsolicited replies"
echo "u_replies.warning $warn"
for x in thread0.num.queries thread1.num.queries thread2.num.queries \
thread3.num.queries thread4.num.queries thread5.num.queries \
thread6.num.queries thread7.num.queries total.num.queries \
- total.num.cachehits num.query.tcp unwanted.queries \
- unwanted.replies; do
+ total.num.cachehits num.query.tcp num.query.ipv6 \
+ unwanted.queries unwanted.replies; do
if grep "^"$x"=" $state >/dev/null 2>&1; then
print_qps $x
fi
/* transport */
if(!ssl_printf(ssl, "num.query.tcp"SQ"%u\n",
(unsigned)s->svr.qtcp)) return 0;
+ if(!ssl_printf(ssl, "num.query.ipv6"SQ"%u\n",
+ (unsigned)s->svr.qipv6)) return 0;
/* flags */
if(!ssl_printf(ssl, "num.query.flags.QR"SQ"%u\n",
(unsigned)s->svr.qbit_QR)) return 0;
total->svr.qtype_big += a->svr.qtype_big;
total->svr.qclass_big += a->svr.qclass_big;
total->svr.qtcp += a->svr.qtcp;
+ total->svr.qipv6 += a->svr.qipv6;
total->svr.qbit_QR += a->svr.qbit_QR;
total->svr.qbit_AA += a->svr.qbit_AA;
total->svr.qbit_TC += a->svr.qbit_TC;
}
void server_stats_insquery(struct server_stats* stats, struct comm_point* c,
- uint16_t qtype, uint16_t qclass, struct edns_data* edns)
+ uint16_t qtype, uint16_t qclass, struct edns_data* edns,
+ struct comm_reply* repinfo)
{
uint16_t flags = ldns_buffer_read_u16_at(c->buffer, 2);
if(qtype < STATS_QTYPE_NUM)
stats->qopcode[ LDNS_OPCODE_WIRE(ldns_buffer_begin(c->buffer)) ]++;
if(c->type != comm_udp)
stats->qtcp++;
+ if(repinfo && addr_is_ip6(&repinfo->addr, repinfo->addrlen))
+ stats->qipv6++;
if( (flags&BIT_QR) )
stats->qbit_QR++;
if( (flags&BIT_AA) )
struct worker;
struct config_file;
struct comm_point;
+struct comm_reply;
struct edns_data;
/** number of qtype that is stored for in array */
size_t qopcode[STATS_OPCODE_NUM];
/** number of queries over TCP */
size_t qtcp;
+ /** number of queries over IPv6 */
+ size_t qipv6;
/** number of queries with QR bit */
size_t qbit_QR;
/** number of queries with AA bit */
size_t ans_rcode_nodata;
/** answers that were secure (AD) */
size_t ans_secure;
- /** answers with bogus content */
+ /** answers that were bogus (withheld as SERVFAIL) */
size_t ans_bogus;
/** rrsets marked bogus by validator */
size_t rrset_bogus;
* @param qtype: query type
* @param qclass: query class
* @param edns: edns record
+ * @param repinfo: reply info with remote address
*/
void server_stats_insquery(struct server_stats* stats, struct comm_point* c,
- uint16_t qtype, uint16_t qclass, struct edns_data* edns);
+ uint16_t qtype, uint16_t qclass, struct edns_data* edns,
+ struct comm_reply* repinfo);
/**
* Add rcode for this query.
}
if(worker->stats.extended)
server_stats_insquery(&worker->stats, c, qinfo.qtype,
- qinfo.qclass, &edns);
+ qinfo.qclass, &edns, repinfo);
if(c->type != comm_udp)
edns.udp_size = 65535; /* max size for TCP replies */
if(qinfo.qclass == LDNS_RR_CLASS_CH && answer_chaos(worker, &qinfo,
17 December 2008: Wouter
- follows ldns makedist.sh. -rc option. autom4te dir removed.
- unbound-control status command.
+ - extended statistics has a number of ipv6 queries counter.
+ contrib/unbound_munin_ was updated to draw ipv6 in the hits graph.
16 December 2008: Wouter
- follow makedist improvements from ldns, for maintainers prereleases.
is a non-goal.
o configure option to force use of builtin ldns tarball.
o include /etc/pki/dnssec-keys/production/*.conf with wildcard support.
-o add extended stat counter for num queries over ipv6, ipv6 usage.
o make so revoke bit keys cannot verify signatures
.I num.query.tcp
Number of queries that were made using TCP towards the unbound server.
.TP
+.I num.query.ipv6
+Number of queries that were made using IPv6 towards the unbound server.
+.TP
.I num.query.flags.RD
The number of queries that had the RD flag set in the header.
Also printed for flags QR, AA, TC, RA, Z, AD, CD.