@cryptotaxi247 / netdata-1 / commits / 32065eb91

dns_query_time py module: saving dns request in 'r', checking response for answer, recording '-… (#6237)

* saving dns request in 'r', checking response for answer, recording '-50' if no data in dns answer * removed time import, removes dns_start and dns_end in favor of time provided by dnspython, updated lack of answer to '-100' value, re-organized code to update query_time with only a sing q.put in finally block * fixing logic error from last commit * fixing logic error from last commit * removing divisor

Nate committed Jun 9, 2019 at 23:24 UTC 32065eb9164ce0f574f41574fe29778195c5b3f3
1 file changed +8 -11
collectors/python.d.plugin/dns_query_time/dns_query_time.chart.py
+8 -11
@@ -7,11 +7,6 @@ from random import choice
7 from socket import getaddrinfo, gaierror
8 from threading import Thread
9
10 -try:
11 - from time import monotonic as time
12 -except ImportError:
13 - from time import time
14 -
10 try:
11 import dns.message
12 import dns.query
@@ -89,13 +84,15 @@ def dns_request(server_list, timeout, domains):
84 request = dns.message.make_query(domain, dns.rdatatype.A)
85
86 try:
92 - dns_start = time()
93 - dns.query.udp(request, ns, timeout=t)
94 - dns_end = time()
95 - query_time = round((dns_end - dns_start) * 1000)
96 - q.put({'_'.join(['ns', ns.replace('.', '_')]): query_time})
87 + resp = dns.query.udp(request, ns, timeout=t)
88 + if (resp.rcode() == dns.rcode.NOERROR and resp.answer):
89 + query_time = resp.time * 1000
90 + else:
91 + query_time = -100
92 except dns.exception.Timeout:
98 - q.put({'_'.join(['ns', ns.replace('.', '_')]): -100})
93 + query_time = -100
94 + finally:
95 + q.put({'_'.join(['ns', ns.replace('.', '_')]): query_time})
96
97 for server in server_list:
98 th = Thread(target=dns_req, args=(server, timeout, que))