chg: [pdns-cof-server/feeder] add basic statistics per `sensor_id`

master
Alexandre Dulaunoy 2022-07-16 09:35:16 +02:00
parent 61ca8afecd
commit e7b559c5d4
No known key found for this signature in database
GPG Key ID: 09E2CD4944E6CBCD
2 changed files with 13 additions and 0 deletions

View File

@ -727,6 +727,7 @@ def getRecord(t=None):
if setsize < 200:
rs = r.smembers(rec)
else:
# TODO: improve with a new API end-point with SSCAN
# rs = r.srandmember(rec, number=300)
rs = False
@ -784,7 +785,17 @@ def JsonQOF(rrfound=None, RemoveDuplicate=True):
class InfoHandler(tornado.web.RequestHandler):
def get(self):
stats = int(r.get("stats:processed"))
response = {'version': 'git', 'software': 'analyzer-d4-passivedns'}
response['stats'] = stats
sensors = r.zrevrange('stats:sensors', 0, -1, withscores=True)
rsensors = []
for x in sensors:
d = dict()
d['sensor_id'] = x[0].decode()
d['count'] = int(float(x[1]))
rsensors.append(d)
response['sensors'] = rsensors
self.write(response)

View File

@ -110,6 +110,8 @@ def add_record(rdns=None):
if stats:
r.incrby('stats:processed', amount=1)
r.sadd('sensors:seen', rdns["sensor_id"])
r.zincrby('stats:sensors', 1, rdns["sensor_id"])
if not r:
logger.info('empty passive dns record')
return False