initial commit; version 22.5.12042
This commit is contained in:
41
scripts/logparser
Executable file
41
scripts/logparser
Executable file
@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env python
|
||||
import argparse
|
||||
import collections
|
||||
import re
|
||||
logfile = "/opt/observium/logs/discovery_log"
|
||||
topnumber = 10
|
||||
def strip_ansi_codes(s):
|
||||
|
||||
return re.sub(r'\x1b\[([0-9,A-Z]{1,2}(;[0-9]{1,2})?(;[0-9]{3})?)?[m|K]?', '', s)
|
||||
|
||||
parser = argparse.ArgumentParser(description='Process Observium logfile and print the slowest SNMP-commands')
|
||||
parser.add_argument('--logfile', dest='logfile', action='store',
|
||||
help='path to the logfile (default: /opt/observium/logs/discovery_log)')
|
||||
parser.add_argument('topnumber', metavar='N', type=int, nargs='?', default=10,
|
||||
help='show top n commands (default: 10)')
|
||||
args = parser.parse_args()
|
||||
if args.logfile:
|
||||
logfile = args.logfile
|
||||
topnumber = args.topnumber
|
||||
|
||||
buf = collections.deque((), 4)
|
||||
commandlist = []
|
||||
with open(logfile) as log:
|
||||
for line in log:
|
||||
buf.append(line)
|
||||
if 'CMD RUNTIME' in line:
|
||||
snmp_result = '\n'.join(buf)
|
||||
commandresult = re.search(r'CMD\[(.*?)\]', snmp_result)
|
||||
runtimeresult = re.search(r'RUNTIME\[(.*?)s', line)
|
||||
command = commandresult.group(1)
|
||||
runtime = runtimeresult.group(1)
|
||||
runtime_stripped = strip_ansi_codes(runtime)
|
||||
commandlist.append((float(runtime_stripped), command))
|
||||
buf.clear()
|
||||
|
||||
sortedlist = list(reversed(sorted(commandlist)))
|
||||
toplist = sortedlist[:topnumber]
|
||||
print "Time - SNMP Command"
|
||||
print "-------------------"
|
||||
for row in toplist:
|
||||
print "%s - %s" % (row[0],row[1])
|
Reference in New Issue
Block a user