From 24107e993b1a15672de303744951099085f6c19d Mon Sep 17 00:00:00 2001 From: Koennecke Mark Date: Thu, 28 Apr 2016 10:41:36 +0200 Subject: [PATCH] Fixed a bug with a off by one severity number in sicslogquery.c Added a number of python utilities for querying the mongoDB --- sicslogquery.c | 2 +- utils/pymongo/errorstatistics | 35 +++++++++++++++++++++++++++++++++++ utils/pymongo/errorsummary | 24 ++++++++++++++++++++++++ utils/pymongo/makeindexes | 15 +++++++++++++++ 4 files changed, 75 insertions(+), 1 deletion(-) create mode 100755 utils/pymongo/errorstatistics create mode 100755 utils/pymongo/errorsummary create mode 100755 utils/pymongo/makeindexes diff --git a/sicslogquery.c b/sicslogquery.c index 15eb43b..35e258f 100644 --- a/sicslogquery.c +++ b/sicslogquery.c @@ -160,7 +160,7 @@ int sicslogQuery(int argc, char *argv[], ResultCallback_t func, void *userData) build the query */ snprintf(jsonQuery, sizeof(jsonQuery),"{ \"timestamp\" : {\"$gt\": %ld, \"$lt\": %ld}, \"severity\": {\"$lte\": %d}", - from,to,severity-1); + from,to,severity); if(sub != NULL){ snprintf(subQuery,sizeof(subQuery),", \"sub\" : \"%s\"", sub); strncat(jsonQuery,subQuery,sizeof(jsonQuery)); diff --git a/utils/pymongo/errorstatistics b/utils/pymongo/errorstatistics new file mode 100755 index 0000000..5484ea9 --- /dev/null +++ b/utils/pymongo/errorstatistics @@ -0,0 +1,35 @@ +#!/usr/bin/python + +import pymongo +import datetime +import time +import sys + +from pymongo import MongoClient +from datetime import timedelta + +if len(sys.argv) < 2: + print('Usage:\n\terrorstatistics instrument') + sys.exit() + +inst = sys.argv[1] + +mongodb = MongoClient('mongodb://logwriter:sinqsics@mpc1965:27017/?authSource=admin') + +totime = datetime.datetime.today() +totime = datetime.datetime(totime.year,totime.month,totime.day) +fromtime = totime - timedelta(1) + +messagedict = {} +db = mongodb[inst] +for entry in db.log.find({"timestamp" : {"$gt": time.mktime(fromtime.timetuple()), + "$lt" : time.mktime(totime.timetuple())}, "severity": {"$lte": 2} }): + mes = entry['message'] + if messagedict.has_key(mes): + messagedict[mes] = messagedict[mes] + 1 + else: + messagedict[mes] = 1 + + +for mes in sorted(messagedict, key=messagedict.get): + print('%8d %s' %(messagedict[mes], mes )) diff --git a/utils/pymongo/errorsummary b/utils/pymongo/errorsummary new file mode 100755 index 0000000..91e88b8 --- /dev/null +++ b/utils/pymongo/errorsummary @@ -0,0 +1,24 @@ +#!/usr/bin/python + +import pymongo +import datetime +import time + +from pymongo import MongoClient +from datetime import timedelta + +mongodb = MongoClient('mongodb://logwriter:sinqsics@mpc1965:27017/?authSource=admin') + +dblist = ['amor', 'boa', 'dmc', 'eiger', 'focus', 'hrpt', 'morpheus', + 'narziss', 'orion', 'poldi', 'rita2', 'sans', 'sans2', 'tasp'] + +totime = datetime.datetime.today() +totime = datetime.datetime(totime.year,totime.month,totime.day) +fromtime = totime - timedelta(1) + +print('Error counts between ' + str(fromtime) + ' to ' + str(totime) ) +for inst in dblist: + db = mongodb[inst] + ct = db.log.find({"timestamp" : {"$gt": time.mktime(fromtime.timetuple()), + "$lt" : time.mktime(totime.timetuple())}, "severity": {"$lte": 2} }).count() + print(inst + ',' + str(ct)) diff --git a/utils/pymongo/makeindexes b/utils/pymongo/makeindexes new file mode 100755 index 0000000..228b0ef --- /dev/null +++ b/utils/pymongo/makeindexes @@ -0,0 +1,15 @@ +#!/usr/bin/python + +import pymongo + +from pymongo import MongoClient + +mongodb = MongoClient('mongodb://logwriter:sinqsics@mpc1965:27017/?authSource=admin') + +dblist = ['amor', 'boa', 'dmc', 'eiger', 'focus', 'hrpt', 'morpheus', + 'narziss', 'orion', 'poldi', 'rita2', 'sans', 'sans2', 'tasp'] + +for inst in dblist: + db = mongodb[inst] + db.log.create_index([('timestamp',pymongo.ASCENDING)]) +