L<<Logger::Error<<"stats: "<<qcounter<<" questions, "<<RC.size()<<" cache entries, "<<SyncRes::s_negcache.size()<<" negative entries, "
<<(int)((RC.cacheHits*100.0)/(RC.cacheHits+RC.cacheMisses))<<"% cache hits"<<endl;
L<<Logger::Error<<"stats: throttle map: "<<SyncRes::s_throttle.size()<<", ns speeds: "
- <<SyncRes::s_nsSpeeds.size()<<", bytes: "<<RC.bytes()<<endl;
+ <<SyncRes::s_nsSpeeds.size()<<endl; // ", bytes: "<<RC.bytes()<<endl;
L<<Logger::Error<<"stats: outpacket/query ratio "<<(int)(SyncRes::s_outqueries*100.0/SyncRes::s_queries)<<"%";
L<<Logger::Error<<", "<<(int)(SyncRes::s_throttledqueries*100.0/(SyncRes::s_outqueries+SyncRes::s_throttledqueries))<<"% throttled, "
<<SyncRes::s_nodelegated<<" no-delegation drops"<<endl;
if(words[0]=="GET")
return doGet(begin, end);
+
+ if(words[0]=="QUIT")
+ exit(1);
return "Unknown command '"+cmd+"'\n";
unsigned int MemRecursorCache::size()
{
- unsigned int ret=0;
- for(cache_t::const_iterator i=d_cache.begin(); i!=d_cache.end(); ++i) {
- ret+=i->d_records.size();
- }
- return ret;
+ return d_cache.size();
}
unsigned int MemRecursorCache::bytes()
// cout<<"Walk took "<< dt.udiff()<<"usec\n";
// dt.set();
ttdindex.erase(ttdindex.begin(), j);
- // cout<<"Erase took "<< dt.udiff()<<" usec, looked: "<<looked<<", quick: "<<quickZonk<<", full: ";
- // cout<<fullZonk<<", partial: "<<partialZonk<<", no: "<<noZonk<<"\n";
+// cout<<"Erase took "<< dt.udiff()<<" usec, looked: "<<looked<<", quick: "<<quickZonk<<", full: ";
+ // cout<<fullZonk<<", partial: "<<partialZonk<<", no: "<<noZonk<<"\n";
// cache_t(d_cache).swap(d_cache);
}
rrdtool create pdns_recursor.rrd -s 60 \
DS:questions:COUNTER:600:0:100000 \
DS:cache-entries:GAUGE:600:0:U \
+DS:throttle-entries:GAUGE:600:0:U \
DS:concurrent-queries:GAUGE:600:0:50000 \
DS:noerror-answers:COUNTER:600:0:100000 \
DS:nxdomain-answers:COUNTER:600:0:100000 \
DS:answers10-100:COUNTER:600:0:100000 \
DS:answers100-1000:COUNTER:600:0:100000 \
DS:answers-slow:COUNTER:600:0:100000 \
+DS:qa-latency:COUNTER:600:0:10000000 \
RRA:AVERAGE:0.5:1:9600 \
RRA:AVERAGE:0.5:4:9600 \
RRA:AVERAGE:0.5:24:6000 \
</table>
<img src="latencies-day.png">
<br>
+<img src="qa-latency-day.png">
+<br>
<img src="qoutq-day.png">
<br>
<img src="timeouts-day.png">
<br>
<img src="caches-day.png">
<br>
+<img src="caches2-day.png">
+<br>
<img src="load-day.png">
<br>
<img src="hitrate-day.png">
LINE2:questions#ff0000:"questions/s"\
LINE2:alloutqueries#00ff00:"outqueries/s"
+ rrdtool graph --start -$1 $WWWPREFIX/qa-latency-$2.png -w $WSIZE -h $HSIZE -l 0 \
+ -t "Questions/answer latency in milliseconds" \
+ -v "msec" \
+ DEF:qalatency=pdns_recursor.rrd:qa-latency:AVERAGE \
+ CDEF:mqalatency=qalatency,1000,/ \
+ LINE2:mqalatency#ff0000:"questions/s"
+
+
rrdtool graph --start -$1 $WWWPREFIX/timeouts-$2.png -w $WSIZE -h $HSIZE -l 0\
-t "Outqueries/timeouts counts per second" \
-v "events" \
DEF:cacheentries=pdns_recursor.rrd:cache-entries:AVERAGE \
DEF:negcacheentries=pdns_recursor.rrd:negcache-entries:AVERAGE \
DEF:nsspeedsentries=pdns_recursor.rrd:nsspeeds-entries:AVERAGE \
+ DEF:throttleentries=pdns_recursor.rrd:throttle-entries:AVERAGE \
LINE2:cacheentries#ff0000:"cache entries" \
LINE2:negcacheentries#0000ff:"negative cache entries" \
- LINE2:nsspeedsentries#00ff00:"NS speeds entries"
+ LINE2:nsspeedsentries#00ff00:"NS speeds entries" \
+ LINE2:throttleentries#00ff00:"throttle map entries"
+ rrdtool graph --start -$1 $WWWPREFIX/caches2-$2.png -w $WSIZE -h $HSIZE -l 0\
+ -t "Cache sizes" \
+ -v "entries" \
+ DEF:negcacheentries=pdns_recursor.rrd:negcache-entries:AVERAGE \
+ DEF:nsspeedsentries=pdns_recursor.rrd:nsspeeds-entries:AVERAGE \
+ DEF:throttleentries=pdns_recursor.rrd:throttle-entries:AVERAGE \
+ LINE2:negcacheentries#0000ff:"negative cache entries" \
+ LINE2:nsspeedsentries#00ff00:"NS speeds entries" \
+ LINE2:throttleentries#ffa000:"throttle map entries"
+
rrdtool graph --start -$1 $WWWPREFIX/load-$2.png -w $WSIZE -h $HSIZE -l 0\
-v "MThreads" \
-t "Concurrent queries" \
nxdomain-answers noerror-answers\
servfail-answers tcp-outqueries\
outgoing-timeouts nsspeeds-entries negcache-entries all-outqueries throttled-out\
- cache-hits cache-misses answers0-1 answers1-10 answers10-100 answers100-1000 answers-slow"
+ cache-hits cache-misses answers0-1 answers1-10 answers10-100 answers100-1000 answers-slow\
+ qa-latency throttle-entries"
UVARIABLES=$(echo $VARIABLES | tr '[a-z]' '[A-Z]' | tr - _ )