From: bert hubert Date: Sat, 11 Apr 2015 17:43:38 +0000 (+0200) Subject: implement and document tcp4-queries, tcp6-queries, tcp4-answers, tcp6-answers, thanks... X-Git-Tag: dnsdist-1.0.0-alpha1~248^2~88^2~17 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5fd567ec67ed10a0934b4574254f47107233e686;p=pdns implement and document tcp4-queries, tcp6-queries, tcp4-answers, tcp6-answers, thanks to Henk Kraal for noticing we weren't doing this! --- diff --git a/docs/markdown/authoritative/performance.md b/docs/markdown/authoritative/performance.md index 6b4b5df8c..43792e5ab 100644 --- a/docs/markdown/authoritative/performance.md +++ b/docs/markdown/authoritative/performance.md @@ -57,6 +57,10 @@ A number of counters and variables are set during PDNS Authoritative Server oper * **servfail-packets**: Amount of packets that could not be answered due to database problems * **tcp-answers**: Number of answers sent out over TCP * **tcp-questions**: Number of questions received over TCP +* **tcp4-answers**: Number of answers sent out over IPv4 TCP +* **tcp4-questions**: Number of questions received over IPv4 TCP +* **tcp6-answers**: Number of answers sent out over IPv6 TCP +* **tcp6-questions**: Number of questions received over IPv6 TCP * **timedout-questions**: Amount of packets that were dropped because they had to wait too long internally * **udp-answers**: Number of answers sent out over UDP * **udp-queries**: Number of questions received over UDP diff --git a/pdns/common_startup.cc b/pdns/common_startup.cc index ac9256d8e..f0a063889 100644 --- a/pdns/common_startup.cc +++ b/pdns/common_startup.cc @@ -241,6 +241,12 @@ void declareStats(void) S.declare("signatures", "Number of DNSSEC signatures made"); S.declare("tcp-queries","Number of TCP queries received"); S.declare("tcp-answers","Number of answers sent out over TCP"); + S.declare("tcp4-queries","Number of IPv4 TCP queries received"); + S.declare("tcp4-answers","Number of IPv4 answers sent out over TCP"); + + S.declare("tcp6-queries","Number of IPv6 TCP queries received"); + S.declare("tcp6-answers","Number of IPv6 answers sent out over TCP"); + S.declare("qsize-q","Number of questions waiting for database attention", getQCount); diff --git a/pdns/tcpreceiver.cc b/pdns/tcpreceiver.cc index a360a08e5..2a1d4b21f 100644 --- a/pdns/tcpreceiver.cc +++ b/pdns/tcpreceiver.cc @@ -246,6 +246,15 @@ static void proxyQuestion(shared_ptr packet) return; } + +static void incTCPAnswerCount(const ComboAddress& remote) +{ + S.inc("tcp-answers"); + if(remote.sin4.sin_family == AF_INET6) + S.inc("tcp6-answers"); + else + S.inc("tcp4-answers"); +} void *TCPNameserver::doConnection(void *data) { shared_ptr packet; @@ -287,6 +296,10 @@ void *TCPNameserver::doConnection(void *data) getQuestion(fd, mesg.get(), pktlen, remote); S.inc("tcp-queries"); + if(remote.sin4.sin_family == AF_INET6) + S.inc("tcp6-queries"); + else + S.inc("tcp4-queries"); packet=shared_ptr(new DNSPacket); packet->setRemote(&remote); @@ -297,13 +310,13 @@ void *TCPNameserver::doConnection(void *data) if(packet->qtype.getCode()==QType::AXFR) { if(doAXFR(packet->qdomain, packet, fd)) - S.inc("tcp-answers"); + incTCPAnswerCount(remote); continue; } if(packet->qtype.getCode()==QType::IXFR) { if(doIXFR(packet, fd)) - S.inc("tcp-answers"); + incTCPAnswerCount(remote); continue; } @@ -331,7 +344,7 @@ void *TCPNameserver::doConnection(void *data) if(LPE) LPE->police(&(*packet), &(*cached), true); sendPacket(cached, fd); // presigned, don't do it again - S.inc("tcp-answers"); + incTCPAnswerCount(remote); continue; } @@ -358,7 +371,7 @@ void *TCPNameserver::doConnection(void *data) if(!reply) // unable to write an answer? break; - S.inc("tcp-answers"); + incTCPAnswerCount(remote); sendPacket(reply, fd); } }