diff --git a/docs/collectors/BindCollector.md b/docs/collectors/BindCollector.md
index 377e3e943..8744f7b9a 100644
--- a/docs/collectors/BindCollector.md
+++ b/docs/collectors/BindCollector.md
@@ -32,6 +32,11 @@ publish | resolver, server, zonemgmt, sockets, memory, | Available stats:
| list
publish_view_bind | False | | bool
publish_view_meta | False | | bool
+data_format | xml_v2 | Bind stats version:
+ - xml_v2 (Original bind stats version from 9.5)
+ - xml_v3 (New xml version)
+ - json_v1 (JSON replacement for XML)
+ | str
#### Example Output
diff --git a/src/collectors/bind/bind.py b/src/collectors/bind/bind.py
old mode 100644
new mode 100755
index fa033ec35..220e292b5
--- a/src/collectors/bind/bind.py
+++ b/src/collectors/bind/bind.py
@@ -35,6 +35,10 @@ def get_default_config_help(self):
" - memory (Global memory usage)\n",
'publish_view_bind': "",
'publish_view_meta': "",
+ 'data_format': "Bind stats version:\n" +
+ " - xml_v2 (Original bind stats version from 9.5)\n" +
+ " - xml_v3 (New xml version)\n" +
+ " - json_v1 (JSON replacement for XML)\n",
})
return config_help
@@ -63,6 +67,7 @@ def get_default_config(self):
# By default we don't publish these special views
'publish_view_bind': False,
'publish_view_meta': False,
+ 'data_format': 'xml_v2',
})
return config
@@ -73,7 +78,62 @@ def clean_counter(self, name, value):
self.publish(name, value)
def collect(self):
+ if self.config['data_format'] == 'json_v1':
+ return self.collect_json_v1()
+ if self.config['data_format'] == 'xml_v3':
+ return self.collect_xml_v3()
+ if self.config['data_format'] == 'xml_v2':
+ return self.collect_xml_v2()
+
+ def collect_json_v1(self):
+ try:
+ # Try newest interface first (JSON has least impact)
+ import json
+ req = urllib2.urlopen('http://%s:%d/json/v1/status' % (
+ self.config['host'], int(self.config['port'])))
+ except Exception, e:
+ self.log.error('JSON v1 not supported: %s', e)
+ return {}
+
+ if 'server' in self.config['publish']:
+ try:
+ req = urllib2.urlopen('http://%s:%d/json/v1/server' % (
+ self.config['host'], int(self.config['port'])))
+ except Exception, e:
+ self.log.error('Couldnt connect to bind: %s', e)
+ return {}
+
+ response = json.load(req)
+ self.parse_json_v1_server(response)
+
+ def collect_xml_v3(self):
+ try:
+ # Try newer interface first
+ req = urllib2.urlopen('http://%s:%d/xml/v3/status' % (
+ self.config['host'], int(self.config['port'])))
+ except Exception, e:
+ self.log.error('XML v3 not supported: %s', e)
+ return {}
+
+ if 'server' in self.config['publish']:
+ try:
+ req = urllib2.urlopen('http://%s:%d/xml/v3/server' % (
+ self.config['host'], int(self.config['port'])))
+ except Exception, e:
+ self.log.error('Couldnt connect to bind: %s', e)
+ return {}
+ # Proceed with v3 parsing
+ tree = ElementTree.parse(req)
+
+ if not tree:
+ raise ValueError("Corrupt XML file, no statistics found")
+
+ self.parse_xml_v3_server(tree)
+
+ def collect_xml_v2(self):
try:
+ # NOTE: Querying this node on a large server can impact bind
+ # answering queriesfor sometimes hundreds of milliseconds.
req = urllib2.urlopen('http://%s:%d/' % (
self.config['host'], int(self.config['port'])))
except Exception, e:
@@ -87,6 +147,10 @@ def collect(self):
root = tree.find('bind/statistics')
+ if not root:
+ raise ValueError(
+ "Missing bind/statistics tree - Wrong data_format?")
+
if 'resolver' in self.config['publish']:
for view in root.findall('views/view'):
name = view.find('name').text
@@ -153,3 +217,45 @@ def collect(self):
'memory.%s' % counter.tag,
int(counter.text)
)
+
+ def parse_xml_v3_server(self, root):
+ for counters in root.findall('server/counters'):
+ for counter in counters:
+ self.clean_counter(
+ 'server.counters.%s.%s' % (counters.attrib['type'],
+ counter.attrib['name']),
+ int(counter.text)
+ )
+
+ for view in root.findall('views/view'):
+ for counters in view.iter('counters'):
+ for counter in counters:
+ self.clean_counter(
+ 'views.%s.counters.%s.%s' % (view.attrib['name'],
+ counters.attrib['type'],
+ counter.attrib['name']),
+ int(counter.text)
+ )
+
+ def parse_json_v1_server(self, response):
+ for counter_metric_name in [
+ 'nsstat', 'opcode', 'qtype', 'rcode', 'zonestat'
+ ]:
+ for counter in response[counter_metric_name+'s']:
+ self.clean_counter(
+ 'server.counters.%s.%s' % (counter_metric_name, counter),
+ int(response[counter_metric_name+'s'][counter])
+ )
+
+ for view in response['views']:
+ for counters in response['views'][view]:
+ # This mapping maps from XML v3 layout to JSON v1
+ for section_name in response['views'][view]['resolver']:
+ for counter in \
+ response['views'][view]['resolver'][section_name]:
+ self.clean_counter(
+ 'views.%s.counters.%s.%s' %
+ (view, section_name, counter),
+ int(response['views'][view]['resolver']
+ [section_name][counter])
+ )
diff --git a/src/collectors/bind/test/fixtures/bind_v1.json b/src/collectors/bind/test/fixtures/bind_v1.json
new file mode 100644
index 000000000..cb6e18472
--- /dev/null
+++ b/src/collectors/bind/test/fixtures/bind_v1.json
@@ -0,0 +1,2020 @@
+{
+ "json-stats-version":"1.2",
+ "boot-time":"2016-12-07T01:14:37.013Z",
+ "config-time":"2016-12-15T19:58:17.915Z",
+ "current-time":"2016-12-15T19:59:23.907Z",
+ "version":"9.11.0",
+ "opcodes":{
+ "QUERY":2467958,
+ "IQUERY":0,
+ "STATUS":0,
+ "RESERVED3":0,
+ "NOTIFY":21860,
+ "UPDATE":0,
+ "RESERVED6":0,
+ "RESERVED7":0,
+ "RESERVED8":0,
+ "RESERVED9":0,
+ "RESERVED10":0,
+ "RESERVED11":0,
+ "RESERVED12":0,
+ "RESERVED13":0,
+ "RESERVED14":0,
+ "RESERVED15":0
+ },
+ "rcodes":{
+ "NOERROR":2470452,
+ "FORMERR":0,
+ "SERVFAIL":0,
+ "NXDOMAIN":18220,
+ "NOTIMP":0,
+ "REFUSED":1148,
+ "YXDOMAIN":0,
+ "YXRRSET":0,
+ "NXRRSET":0,
+ "NOTAUTH":0,
+ "NOTZONE":0,
+ "RESERVED11":0,
+ "RESERVED12":0,
+ "RESERVED13":0,
+ "RESERVED14":0,
+ "RESERVED15":0,
+ "BADVERS":0,
+ "17":0,
+ "18":0,
+ "19":0,
+ "20":0,
+ "21":0,
+ "22":0,
+ "BADCOOKIE":0
+ },
+ "qtypes":{
+ "RESERVED0":4,
+ "A":1649760,
+ "NS":14053,
+ "CNAME":2652,
+ "SOA":6,
+ "PTR":14242,
+ "MX":784,
+ "TXT":302,
+ "AAAA":785744,
+ "SRV":26,
+ "A6":242,
+ "DS":10,
+ "TLSA":1,
+ "SPF":8,
+ "ANY":124
+ },
+ "nsstats":{
+ "Requestv4":2489820,
+ "ReqEdns0":1772130,
+ "ReqTCP":41,
+ "AuthQryRej":1449,
+ "RecQryRej":57,
+ "Response":2489820,
+ "TruncatedResp":9,
+ "RespEDNS0":1772130,
+ "QrySuccess":1845895,
+ "QryAuthAns":2466779,
+ "QryNoauthAns":31,
+ "QryReferral":31,
+ "QryNxrrset":602664,
+ "QryNXDOMAIN":18220,
+ "QryFailure":1148,
+ "QryUDP":2466772,
+ "QryTCP":38,
+ "OtherOpt":12,
+ "CookieIn":5184,
+ "CookieNew":2313,
+ "CookieNoMatch":363,
+ "CookieMatch":2508,
+ "ECSOpt":1182
+ },
+ "zonestats":{
+ "NotifyOutv4":21860,
+ "NotifyInv4":21860
+ },
+ "views":{
+ "InstartOffice":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1974,
+ "Queryv6":11763,
+ "Responsev4":1973,
+ "Truncated":987,
+ "Retry":12756,
+ "QueryTimeout":1,
+ "ValAttempt":491,
+ "ValOk":491,
+ "QryRTT10":2,
+ "QryRTT100":977,
+ "QryRTT500":695,
+ "QryRTT1600":237,
+ "QryRTT1600+":62,
+ "BucketSize":31,
+ "ClientCookieOut":13735,
+ "ServerCookieOut":1,
+ "CookieIn":2,
+ "CookieClientOk":2
+ },
+ "qtypes":{
+ "NS":6868,
+ "DNSKEY":6869
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26897,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31416,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "BritishColumbia":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1972,
+ "Queryv6":11766,
+ "Responsev4":1970,
+ "Truncated":985,
+ "Retry":12756,
+ "QueryTimeout":2,
+ "ValAttempt":492,
+ "ValOk":492,
+ "QryRTT100":976,
+ "QryRTT500":680,
+ "QryRTT1600":241,
+ "QryRTT1600+":73,
+ "BucketSize":31,
+ "ClientCookieOut":13735,
+ "ServerCookieOut":3,
+ "CookieIn":6,
+ "CookieClientOk":6
+ },
+ "qtypes":{
+ "NS":6864,
+ "DNSKEY":6874
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26948,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31416,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "US-South":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1976,
+ "Queryv6":11764,
+ "Responsev4":1976,
+ "Truncated":988,
+ "Retry":12757,
+ "ValAttempt":493,
+ "ValOk":493,
+ "QryRTT10":1,
+ "QryRTT100":976,
+ "QryRTT500":643,
+ "QryRTT1600":282,
+ "QryRTT1600+":74,
+ "BucketSize":31,
+ "ClientCookieOut":13740
+ },
+ "qtypes":{
+ "NS":6864,
+ "DNSKEY":6876
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26897,
+ "CacheMisses":56,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31416,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "NewYork":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1970,
+ "Queryv6":11760,
+ "Responsev4":1970,
+ "Truncated":985,
+ "Retry":12750,
+ "ValAttempt":490,
+ "ValOk":490,
+ "QryRTT10":2,
+ "QryRTT100":974,
+ "QryRTT500":622,
+ "QryRTT1600":300,
+ "QryRTT1600+":72,
+ "BucketSize":31,
+ "ClientCookieOut":13730
+ },
+ "qtypes":{
+ "NS":6866,
+ "DNSKEY":6864
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26896,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Canada-NE":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1974,
+ "Queryv6":11766,
+ "Responsev4":1974,
+ "Truncated":987,
+ "Retry":12758,
+ "ValAttempt":492,
+ "ValOk":492,
+ "QryRTT10":2,
+ "QryRTT100":971,
+ "QryRTT500":590,
+ "QryRTT1600":324,
+ "QryRTT1600+":87,
+ "BucketSize":31,
+ "ClientCookieOut":13739,
+ "ServerCookieOut":1,
+ "CookieIn":2,
+ "CookieClientOk":2
+ },
+ "qtypes":{
+ "NS":6862,
+ "DNSKEY":6878
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26948,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31416,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "US-Illinois":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1976,
+ "Queryv6":11764,
+ "Responsev4":1975,
+ "Truncated":988,
+ "Retry":12758,
+ "QueryTimeout":1,
+ "ValAttempt":492,
+ "ValOk":492,
+ "QryRTT100":973,
+ "QryRTT500":674,
+ "QryRTT1600":255,
+ "QryRTT1600+":73,
+ "BucketSize":31,
+ "ClientCookieOut":13737,
+ "ServerCookieOut":2,
+ "CookieIn":4,
+ "CookieClientOk":4
+ },
+ "qtypes":{
+ "NS":6868,
+ "DNSKEY":6872
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26898,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31416,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "US-Florida":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1993,
+ "Queryv6":11768,
+ "Responsev4":1990,
+ "Truncated":996,
+ "Retry":12778,
+ "QueryTimeout":3,
+ "ValAttempt":493,
+ "ValOk":493,
+ "QryRTT100":985,
+ "QryRTT500":560,
+ "QryRTT1600":349,
+ "QryRTT1600+":96,
+ "BucketSize":31,
+ "ClientCookieOut":13755,
+ "ServerCookieOut":4,
+ "CookieIn":8,
+ "CookieClientOk":8
+ },
+ "qtypes":{
+ "NS":6878,
+ "DNSKEY":6883
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26947,
+ "CacheMisses":56,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31416,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "US-West":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1970,
+ "Queryv6":11760,
+ "Responsev4":1970,
+ "Truncated":985,
+ "Retry":12750,
+ "ValAttempt":490,
+ "ValOk":490,
+ "QryRTT100":977,
+ "QryRTT500":552,
+ "QryRTT1600":349,
+ "QryRTT1600+":92,
+ "BucketSize":31,
+ "ClientCookieOut":13730
+ },
+ "qtypes":{
+ "NS":6866,
+ "DNSKEY":6864
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26920,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":24,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "HongKong":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1986,
+ "Queryv6":11765,
+ "Responsev4":1986,
+ "Truncated":993,
+ "Retry":12769,
+ "ValAttempt":492,
+ "ValOk":492,
+ "QryRTT10":2,
+ "QryRTT100":979,
+ "QryRTT500":467,
+ "QryRTT1600":428,
+ "QryRTT1600+":110,
+ "BucketSize":31,
+ "ClientCookieOut":13749,
+ "ServerCookieOut":2,
+ "CookieIn":4,
+ "CookieClientOk":4
+ },
+ "qtypes":{
+ "NS":6870,
+ "DNSKEY":6881
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26923,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31416,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "India":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1978,
+ "Queryv6":11763,
+ "Responsev4":1976,
+ "Truncated":988,
+ "Retry":12760,
+ "QueryTimeout":2,
+ "ValAttempt":491,
+ "ValOk":491,
+ "QryRTT10":1,
+ "QryRTT100":977,
+ "QryRTT500":707,
+ "QryRTT1600":229,
+ "QryRTT1600+":62,
+ "BucketSize":31,
+ "ClientCookieOut":13741
+ },
+ "qtypes":{
+ "NS":6870,
+ "DNSKEY":6871
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26922,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Israel":{
+ "resolver":{
+ "stats":{
+ "Queryv4":2002,
+ "Queryv6":11765,
+ "Responsev4":2001,
+ "Truncated":1001,
+ "Retry":12785,
+ "QueryTimeout":1,
+ "ValAttempt":492,
+ "ValOk":492,
+ "QryRTT10":4,
+ "QryRTT100":992,
+ "QryRTT500":239,
+ "QryRTT1600":513,
+ "QryRTT1600+":253,
+ "BucketSize":31,
+ "ClientCookieOut":13761,
+ "ServerCookieOut":5,
+ "CookieIn":10,
+ "CookieClientOk":10
+ },
+ "qtypes":{
+ "NS":6880,
+ "DNSKEY":6887
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26921,
+ "CacheMisses":56,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "USA":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1976,
+ "Queryv6":11765,
+ "Responsev4":1976,
+ "Truncated":988,
+ "Retry":12760,
+ "ValAttempt":491,
+ "ValOk":491,
+ "QryRTT10":3,
+ "QryRTT100":979,
+ "QryRTT500":627,
+ "QryRTT1600":301,
+ "QryRTT1600+":66,
+ "BucketSize":31,
+ "ClientCookieOut":13741
+ },
+ "qtypes":{
+ "NS":6868,
+ "DNSKEY":6873
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26922,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Canada":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1986,
+ "Queryv6":11767,
+ "Responsev4":1986,
+ "Truncated":993,
+ "Retry":12769,
+ "ValAttempt":494,
+ "ValOk":494,
+ "QryRTT10":4,
+ "QryRTT100":979,
+ "QryRTT500":516,
+ "QryRTT1600":382,
+ "QryRTT1600+":105,
+ "BucketSize":31,
+ "ClientCookieOut":13753
+ },
+ "qtypes":{
+ "NS":6874,
+ "DNSKEY":6879
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26950,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Mexico":{
+ "resolver":{
+ "stats":{
+ "Queryv4":2006,
+ "Queryv6":11767,
+ "Responsev4":2006,
+ "Truncated":1003,
+ "Retry":12789,
+ "ValAttempt":494,
+ "ValOk":494,
+ "QryRTT10":12,
+ "QryRTT100":984,
+ "QryRTT500":468,
+ "QryRTT1600":430,
+ "QryRTT1600+":112,
+ "BucketSize":31,
+ "ClientCookieOut":13773
+ },
+ "qtypes":{
+ "NS":6878,
+ "DNSKEY":6895
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26923,
+ "CacheMisses":56,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Japan":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1982,
+ "Queryv6":11766,
+ "Responsev4":1982,
+ "Truncated":991,
+ "Retry":12766,
+ "ValAttempt":492,
+ "ValOk":492,
+ "QryRTT10":4,
+ "QryRTT100":974,
+ "QryRTT500":572,
+ "QryRTT1600":340,
+ "QryRTT1600+":92,
+ "BucketSize":31,
+ "ClientCookieOut":13747,
+ "ServerCookieOut":1,
+ "CookieIn":2,
+ "CookieClientOk":2
+ },
+ "qtypes":{
+ "NS":6870,
+ "DNSKEY":6878
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26898,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Korea":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1996,
+ "Queryv6":11766,
+ "Responsev4":1996,
+ "Truncated":998,
+ "Retry":12780,
+ "ValAttempt":492,
+ "ValOk":492,
+ "QryRTT10":6,
+ "QryRTT100":985,
+ "QryRTT500":299,
+ "QryRTT1600":491,
+ "QryRTT1600+":215,
+ "BucketSize":31,
+ "ClientCookieOut":13761,
+ "ServerCookieOut":1,
+ "CookieIn":2,
+ "CookieClientOk":2
+ },
+ "qtypes":{
+ "NS":6876,
+ "DNSKEY":6886
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26921,
+ "CacheMisses":56,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Turkey":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1984,
+ "Queryv6":11766,
+ "Responsev4":1984,
+ "Truncated":992,
+ "Retry":12767,
+ "ValAttempt":493,
+ "ValOk":493,
+ "QryRTT10":10,
+ "QryRTT100":976,
+ "QryRTT500":469,
+ "QryRTT1600":430,
+ "QryRTT1600+":99,
+ "BucketSize":31,
+ "ClientCookieOut":13749,
+ "ServerCookieOut":1,
+ "CookieIn":2,
+ "CookieClientOk":2
+ },
+ "qtypes":{
+ "NS":6870,
+ "DNSKEY":6880
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26899,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "EasternEurope":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1988,
+ "Queryv6":11771,
+ "Responsev4":1988,
+ "Truncated":994,
+ "Retry":12775,
+ "ValAttempt":494,
+ "ValOk":494,
+ "QryRTT10":6,
+ "QryRTT100":978,
+ "QryRTT500":264,
+ "QryRTT1600":527,
+ "QryRTT1600+":213,
+ "BucketSize":31,
+ "ClientCookieOut":13756,
+ "ServerCookieOut":3,
+ "CookieIn":6,
+ "CookieClientOk":6
+ },
+ "qtypes":{
+ "NS":6870,
+ "DNSKEY":6889
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26975,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31416,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Europe":{
+ "resolver":{
+ "stats":{
+ "Queryv4":2009,
+ "Queryv6":11764,
+ "Responsev4":2008,
+ "Truncated":1004,
+ "Retry":12792,
+ "QueryTimeout":1,
+ "ValAttempt":491,
+ "ValOk":491,
+ "QryRTT10":3,
+ "QryRTT100":1001,
+ "QryRTT500":197,
+ "QryRTT1600":474,
+ "QryRTT1600+":333,
+ "BucketSize":31,
+ "ClientCookieOut":13771,
+ "ServerCookieOut":2,
+ "CookieIn":4,
+ "CookieClientOk":4
+ },
+ "qtypes":{
+ "NS":6887,
+ "DNSKEY":6886
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26897,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "SW-Europe":{
+ "resolver":{
+ "stats":{
+ "Queryv4":2018,
+ "Queryv6":11763,
+ "Responsev4":2018,
+ "Truncated":1009,
+ "Retry":12799,
+ "ValAttempt":492,
+ "ValOk":492,
+ "QryRTT10":3,
+ "QryRTT100":1007,
+ "QryRTT500":209,
+ "QryRTT1600":502,
+ "QryRTT1600+":297,
+ "BucketSize":31,
+ "ClientCookieOut":13779,
+ "ServerCookieOut":2,
+ "CookieIn":4,
+ "CookieClientOk":4
+ },
+ "qtypes":{
+ "NS":6890,
+ "DNSKEY":6891
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26923,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31416,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "UK":{
+ "resolver":{
+ "stats":{
+ "Queryv4":2017,
+ "Queryv6":11768,
+ "Responsev4":2015,
+ "Truncated":1008,
+ "Retry":12803,
+ "QueryTimeout":2,
+ "ValAttempt":492,
+ "ValOk":492,
+ "QryRTT10":14,
+ "QryRTT100":985,
+ "QryRTT500":230,
+ "QryRTT1600":476,
+ "QryRTT1600+":310,
+ "BucketSize":31,
+ "ClientCookieOut":13781,
+ "ServerCookieOut":3,
+ "CookieIn":6,
+ "CookieClientOk":6
+ },
+ "qtypes":{
+ "NS":6886,
+ "DNSKEY":6899
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26923,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "N-Europe":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1984,
+ "Queryv6":11768,
+ "Responsev4":1984,
+ "Truncated":992,
+ "Retry":12769,
+ "ValAttempt":493,
+ "ValOk":493,
+ "QryRTT10":2,
+ "QryRTT100":981,
+ "QryRTT500":420,
+ "QryRTT1600":474,
+ "QryRTT1600+":107,
+ "BucketSize":31,
+ "ClientCookieOut":13750,
+ "ServerCookieOut":2,
+ "CookieIn":4,
+ "CookieClientOk":4
+ },
+ "qtypes":{
+ "NS":6870,
+ "DNSKEY":6882
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26924,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31416,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Netherlands":{
+ "resolver":{
+ "stats":{
+ "Queryv4":2017,
+ "Queryv6":11769,
+ "Responsev4":2015,
+ "Truncated":1008,
+ "Retry":12803,
+ "QueryTimeout":2,
+ "ValAttempt":493,
+ "ValOk":493,
+ "QryRTT10":21,
+ "QryRTT100":989,
+ "QryRTT500":234,
+ "QryRTT1600":512,
+ "QryRTT1600+":259,
+ "BucketSize":31,
+ "ClientCookieOut":13784,
+ "ServerCookieOut":1,
+ "CookieIn":2,
+ "CookieClientOk":2
+ },
+ "qtypes":{
+ "NS":6886,
+ "DNSKEY":6900
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26972,
+ "CacheMisses":56,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":3,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31640,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Italy":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1984,
+ "Queryv6":11762,
+ "Responsev4":1984,
+ "Truncated":992,
+ "Retry":12765,
+ "ValAttempt":491,
+ "ValOk":491,
+ "QryRTT100":982,
+ "QryRTT500":534,
+ "QryRTT1600":372,
+ "QryRTT1600+":96,
+ "BucketSize":31,
+ "ClientCookieOut":13745,
+ "ServerCookieOut":1,
+ "CookieIn":2,
+ "CookieClientOk":2
+ },
+ "qtypes":{
+ "NS":6870,
+ "DNSKEY":6876
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26897,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Spain":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1980,
+ "Queryv6":11761,
+ "Responsev4":1980,
+ "Truncated":990,
+ "Retry":12760,
+ "ValAttempt":491,
+ "ValOk":491,
+ "QryRTT10":2,
+ "QryRTT100":976,
+ "QryRTT500":402,
+ "QryRTT1600":483,
+ "QryRTT1600+":117,
+ "BucketSize":31,
+ "ClientCookieOut":13739,
+ "ServerCookieOut":2,
+ "CookieIn":4,
+ "CookieClientOk":4
+ },
+ "qtypes":{
+ "NS":6866,
+ "DNSKEY":6875
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26922,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Scandanavia":{
+ "resolver":{
+ "stats":{
+ "Queryv4":2002,
+ "Queryv6":11762,
+ "Responsev4":2002,
+ "Truncated":1001,
+ "Retry":12782,
+ "ValAttempt":492,
+ "ValOk":492,
+ "QryRTT10":6,
+ "QryRTT100":987,
+ "QryRTT500":224,
+ "QryRTT1600":480,
+ "QryRTT1600+":305,
+ "BucketSize":31,
+ "ClientCookieOut":13762,
+ "ServerCookieOut":2,
+ "CookieIn":4,
+ "CookieClientOk":4
+ },
+ "qtypes":{
+ "NS":6882,
+ "DNSKEY":6882
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26923,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31416,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "UAE":{
+ "resolver":{
+ "stats":{
+ "Queryv4":2018,
+ "Queryv6":11763,
+ "Responsev4":2015,
+ "Truncated":1008,
+ "Retry":12799,
+ "QueryTimeout":3,
+ "ValAttempt":492,
+ "ValOk":492,
+ "QryRTT10":14,
+ "QryRTT100":995,
+ "QryRTT500":207,
+ "QryRTT1600":359,
+ "QryRTT1600+":440,
+ "BucketSize":31,
+ "ClientCookieOut":13779,
+ "ServerCookieOut":1,
+ "CookieIn":2,
+ "CookieClientOk":2
+ },
+ "qtypes":{
+ "NS":6882,
+ "DNSKEY":6899
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26921,
+ "CacheMisses":56,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":3,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31632,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "NewZealand":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1990,
+ "Queryv6":11762,
+ "Responsev4":1989,
+ "Truncated":995,
+ "Retry":12771,
+ "QueryTimeout":1,
+ "ValAttempt":491,
+ "ValOk":491,
+ "QryRTT10":5,
+ "QryRTT100":982,
+ "QryRTT500":414,
+ "QryRTT1600":449,
+ "QryRTT1600+":139,
+ "BucketSize":31,
+ "ClientCookieOut":13749,
+ "ServerCookieOut":2,
+ "CookieIn":4,
+ "CookieClientOk":4
+ },
+ "qtypes":{
+ "NS":6874,
+ "DNSKEY":6878
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26897,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31416,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Asia":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1989,
+ "Queryv6":11763,
+ "Responsev4":1988,
+ "Truncated":994,
+ "Retry":12771,
+ "QueryTimeout":1,
+ "ValAttempt":491,
+ "ValOk":491,
+ "QryRTT10":2,
+ "QryRTT100":988,
+ "QryRTT500":400,
+ "QryRTT1600":472,
+ "QryRTT1600+":126,
+ "BucketSize":31,
+ "ClientCookieOut":13752
+ },
+ "qtypes":{
+ "NS":6878,
+ "DNSKEY":6874
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26922,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Oceania":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1975,
+ "Queryv6":11763,
+ "Responsev4":1974,
+ "Truncated":987,
+ "Retry":12757,
+ "QueryTimeout":1,
+ "ValAttempt":491,
+ "ValOk":491,
+ "QryRTT10":6,
+ "QryRTT100":972,
+ "QryRTT500":631,
+ "QryRTT1600":286,
+ "QryRTT1600+":79,
+ "BucketSize":31,
+ "ClientCookieOut":13738
+ },
+ "qtypes":{
+ "NS":6871,
+ "DNSKEY":6867
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26922,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":3,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31632,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Brazil-AWS":{
+ "resolver":{
+ "stats":{
+ "Queryv4":2032,
+ "Queryv6":11767,
+ "Responsev4":2031,
+ "Truncated":1016,
+ "Retry":12817,
+ "QueryTimeout":1,
+ "ValAttempt":492,
+ "ValOk":492,
+ "QryRTT10":4,
+ "QryRTT100":1008,
+ "QryRTT500":231,
+ "QryRTT1600":377,
+ "QryRTT1600+":411,
+ "BucketSize":31,
+ "ClientCookieOut":13795,
+ "ServerCookieOut":3,
+ "CookieIn":6,
+ "CookieClientOk":6
+ },
+ "qtypes":{
+ "NS":6890,
+ "DNSKEY":6909
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26921,
+ "CacheMisses":56,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31416,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Brazil":{
+ "resolver":{
+ "stats":{
+ "Queryv4":1993,
+ "Queryv6":11765,
+ "Responsev4":1992,
+ "Truncated":996,
+ "Retry":12775,
+ "QueryTimeout":1,
+ "ValAttempt":493,
+ "ValOk":493,
+ "QryRTT10":2,
+ "QryRTT100":979,
+ "QryRTT500":388,
+ "QryRTT1600":490,
+ "QryRTT1600+":133,
+ "BucketSize":31,
+ "ClientCookieOut":13753,
+ "ServerCookieOut":5,
+ "CookieIn":10,
+ "CookieClientOk":10
+ },
+ "qtypes":{
+ "NS":6874,
+ "DNSKEY":6884
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26897,
+ "CacheMisses":56,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Chile":{
+ "resolver":{
+ "stats":{
+ "Queryv4":2014,
+ "Queryv6":11760,
+ "Responsev4":2014,
+ "Truncated":1007,
+ "Retry":12794,
+ "ValAttempt":490,
+ "ValOk":490,
+ "QryRTT10":10,
+ "QryRTT100":989,
+ "QryRTT500":209,
+ "QryRTT1600":392,
+ "QryRTT1600+":414,
+ "BucketSize":31,
+ "ClientCookieOut":13770,
+ "ServerCookieOut":4,
+ "CookieIn":8,
+ "CookieClientOk":8
+ },
+ "qtypes":{
+ "NS":6886,
+ "DNSKEY":6888
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26896,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "SouthAfrica":{
+ "resolver":{
+ "stats":{
+ "Queryv4":2008,
+ "Queryv6":11766,
+ "Responsev4":2008,
+ "Truncated":1004,
+ "Retry":12792,
+ "ValAttempt":492,
+ "ValOk":492,
+ "QryRTT10":9,
+ "QryRTT100":995,
+ "QryRTT500":199,
+ "QryRTT1600":384,
+ "QryRTT1600+":421,
+ "BucketSize":31,
+ "ClientCookieOut":13773,
+ "ServerCookieOut":1,
+ "CookieIn":2,
+ "CookieClientOk":2
+ },
+ "qtypes":{
+ "NS":6886,
+ "DNSKEY":6888
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26921,
+ "CacheMisses":56,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31416,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "China":{
+ "resolver":{
+ "stats":{
+ "Queryv4":2012,
+ "Queryv6":11765,
+ "Responsev4":2012,
+ "Truncated":1006,
+ "Retry":12793,
+ "ValAttempt":494,
+ "ValOk":494,
+ "QryRTT10":6,
+ "QryRTT100":998,
+ "QryRTT500":196,
+ "QryRTT1600":509,
+ "QryRTT1600+":303,
+ "BucketSize":31,
+ "ClientCookieOut":13775,
+ "ServerCookieOut":2,
+ "CookieIn":4,
+ "CookieClientOk":4
+ },
+ "qtypes":{
+ "NS":6884,
+ "DNSKEY":6893
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26923,
+ "CacheMisses":56,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "Default":{
+ "resolver":{
+ "stats":{
+ "Queryv4":2020,
+ "Queryv6":11766,
+ "Responsev4":2020,
+ "Truncated":1010,
+ "Retry":12803,
+ "ValAttempt":493,
+ "ValOk":493,
+ "QryRTT10":4,
+ "QryRTT100":1000,
+ "QryRTT500":201,
+ "QryRTT1600":407,
+ "QryRTT1600+":408,
+ "BucketSize":31,
+ "ClientCookieOut":13783,
+ "ServerCookieOut":3,
+ "CookieIn":6,
+ "CookieClientOk":6
+ },
+ "qtypes":{
+ "NS":6886,
+ "DNSKEY":6900
+ },
+ "cache":{
+ "NS":1,
+ "RRSIG":2,
+ "DNSKEY":1
+ },
+ "cachestats":{
+ "CacheHits":26999,
+ "CacheMisses":54,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":1,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":31408,
+ "HeapMemMax":9216,
+ "HeapMemTotal":270336,
+ "HeapMemInUse":9216
+ },
+ "adb":{
+ "nentries":1021,
+ "entriescnt":26,
+ "nnames":1021,
+ "namescnt":14
+ }
+ }
+ },
+ "_bind":{
+ "resolver":{
+ "stats":{
+ "BucketSize":31
+ },
+ "qtypes":{
+ },
+ "cache":{
+ },
+ "cachestats":{
+ "CacheHits":0,
+ "CacheMisses":0,
+ "QueryHits":0,
+ "QueryMisses":0,
+ "DeleteLRU":0,
+ "DeleteTTL":0,
+ "CacheNodes":0,
+ "CacheBuckets":64,
+ "TreeMemTotal":287408,
+ "TreeMemInUse":29312,
+ "HeapMemMax":1024,
+ "HeapMemTotal":262144,
+ "HeapMemInUse":1024
+ },
+ "adb":{
+ "nentries":1021,
+ "nnames":1021
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/collectors/bind/test/fixtures/bind_v3.xml b/src/collectors/bind/test/fixtures/bind_v3.xml
new file mode 100755
index 000000000..27f242cbb
--- /dev/null
+++ b/src/collectors/bind/test/fixtures/bind_v3.xml
@@ -0,0 +1,3387 @@
+
+
+