#include "pdns/packetcache.hh"
#include "dnspacket.hh"
#include "dns.hh"
+#include "statbag.hh"
+
+extern StatBag S;
// this has to be somewhere central, and not in a file that requires Lua
// this is so the geoipbackend can set this pointer if loaded for lua-record.cc
bool DNSBackend::getSOA(const DNSName &domain, SOAData &sd)
{
this->lookup(QType(QType::SOA),domain,-1);
+ S.inc("backend-queries");
DNSResourceRecord rr;
rr.auth = true;
bool UeberBackend::s_doANYLookupsOnly=false;
std::mutex UeberBackend::d_mut;
std::condition_variable UeberBackend::d_cond;
+AtomicCounter* UeberBackend::s_backendQueries = nullptr;
//! Loads a module and reports it to all UeberBackend threads
bool UeberBackend::loadmodule(const string &name)
s_doANYLookupsOnly = true;
}
+ S.declare("backend-queries", "Number of queries sent to the backend(s)");
+ s_backendQueries = S.getPointer("backend-queries");
+
{
std::unique_lock<std::mutex> l(d_mut);
d_go = true;
d_negcached=d_cached=false;
d_answers.clear();
(d_handle.d_hinterBackend=backends[d_handle.i++])->lookup(d_handle.qtype, d_handle.qname, d_handle.zoneId, d_handle.pkt_p);
+ ++(*s_backendQueries);
}
else if(cstat==0) {
// cout<<"UeberBackend::lookup("<<qname<<"|"<<DNSRecordContent::NumberToType(qtype.getCode())<<"): NEGcached"<<endl;
d_hinterBackend=parent->backends[i++];
d_hinterBackend->lookup(qtype,qname,zoneId,pkt_p);
+ ++(*s_backendQueries);
}
else
break;
$SDIG ::1 $port example.com SOA tcp >&2 >/dev/null
$PDNSCONTROL --config-name= --no-config --socket-dir=./ 'show *' | \
- tr ',' '\n'| grep -v -E '(user-msec|sys-msec|cpu-iowait|cpu-steal|uptime|udp-noport-errors|udp-in-errors|real-memory-usage|special-memory-usage|udp-recvbuf-errors|udp-sndbuf-errors|-hit|-miss|fd-usage|latency)' | LC_ALL=C sort
+ tr ',' '\n'| grep -v -E '(user-msec|sys-msec|cpu-iowait|cpu-steal|uptime|udp-noport-errors|udp-in-errors|real-memory-usage|special-memory-usage|udp-recvbuf-errors|udp-sndbuf-errors|-hit|-miss|fd-usage|latency|backend-queries)' | LC_ALL=C sort
kill $(cat pdns*.pid)
rm pdns*.pid