]> granicus.if.org Git - pdns/commitdiff
implement and document tcp4-queries, tcp6-queries, tcp4-answers, tcp6-answers, thanks...
authorbert hubert <bert.hubert@netherlabs.nl>
Sat, 11 Apr 2015 17:43:38 +0000 (19:43 +0200)
committerbert hubert <bert.hubert@netherlabs.nl>
Sat, 11 Apr 2015 17:44:51 +0000 (19:44 +0200)
docs/markdown/authoritative/performance.md
pdns/common_startup.cc
pdns/tcpreceiver.cc

index 6b4b5df8cc88f28c53f18b69c165daef6e91adc9..43792e5ab2bfeb7fe43d450e59bbadf22146535a 100644 (file)
@@ -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
index ac9256d8e632542014690dfa933bbdba5b076787..f0a0638893f1a11ac2a6c71a985cd05d91971dd2 100644 (file)
@@ -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);
 
index a360a08e5fd811f087002f3214f9af44b7f76c79..2a1d4b21f264254d437797cf82d22dcb9224cc04 100644 (file)
@@ -246,6 +246,15 @@ static void proxyQuestion(shared_ptr<DNSPacket> 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<DNSPacket> 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<DNSPacket>(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);
     }
   }