log processor script
This commit is contained in:
parent
7c20aa3744
commit
4b7f1752ec
86
benchmark/classic/data/log_analyze.py
Normal file
86
benchmark/classic/data/log_analyze.py
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
|
||||||
|
import json
|
||||||
|
import datetime
|
||||||
|
import re
|
||||||
|
import pprint
|
||||||
|
|
||||||
|
|
||||||
|
def average(lst: list) -> float:
|
||||||
|
return sum(lst) / len(lst)
|
||||||
|
|
||||||
|
|
||||||
|
def listtodict(inlist: list) -> dict:
|
||||||
|
it = iter(inlist)
|
||||||
|
res_dct = dict(zip(it, it))
|
||||||
|
return res_dct
|
||||||
|
|
||||||
|
|
||||||
|
def readfile() -> list:
|
||||||
|
lines = []
|
||||||
|
with open("log.txt", 'r') as inputFile:
|
||||||
|
line = inputFile.readline()
|
||||||
|
while line:
|
||||||
|
line = inputFile.readline()
|
||||||
|
try:
|
||||||
|
linedict = json.loads(line)
|
||||||
|
lines.append(linedict)
|
||||||
|
except json.JSONDecodeError:
|
||||||
|
continue
|
||||||
|
return lines
|
||||||
|
|
||||||
|
|
||||||
|
def readconfigdates() -> dict:
|
||||||
|
dates = {}
|
||||||
|
with open("dates.txt", 'r') as inputFile:
|
||||||
|
line = inputFile.readline()
|
||||||
|
currline = 0
|
||||||
|
while line:
|
||||||
|
line = inputFile.readline()
|
||||||
|
currline += 1
|
||||||
|
dateformatted = datetime.datetime.strptime(
|
||||||
|
line, '%Y-%m-%d %H:%M:%S')
|
||||||
|
dates[currline] = dateformatted
|
||||||
|
return dates
|
||||||
|
|
||||||
|
|
||||||
|
def procesfile(file: list, start: datetime, end: datetime) -> dict:
|
||||||
|
dictofsecs = {}
|
||||||
|
for line in file:
|
||||||
|
try:
|
||||||
|
currdate = line['ts'].split('.')[0].replace('T', ' ')
|
||||||
|
dateformatted = datetime.datetime.strptime(
|
||||||
|
currdate, '%Y-%m-%d %H:%M:%S')
|
||||||
|
if start < dateformatted < end:
|
||||||
|
message = line['msg']
|
||||||
|
messagelist = re.split(' |=', message)
|
||||||
|
messagedict = listtodict(messagelist)
|
||||||
|
messagedict['ts'] = dateformatted
|
||||||
|
if 'ObservedStableValue' in messagedict:
|
||||||
|
if messagedict['ts'] not in dictofsecs:
|
||||||
|
dictofsecs[messagedict['ts']] = []
|
||||||
|
dictofsecs[messagedict['ts']].append(
|
||||||
|
float(messagedict['ObservedStableValue']))
|
||||||
|
else:
|
||||||
|
dictofsecs[messagedict['ts']].append(
|
||||||
|
float(messagedict['ObservedStableValue']))
|
||||||
|
except Exception as exception:
|
||||||
|
print(exception)
|
||||||
|
return dictofsecs
|
||||||
|
|
||||||
|
|
||||||
|
def averagepersec(dictoftimes: dict, shouldprint: bool = False) -> dict:
|
||||||
|
dictofsecs = {}
|
||||||
|
for key, value in dictoftimes.items():
|
||||||
|
dictofsecs[key] = average(value)
|
||||||
|
if shouldprint:
|
||||||
|
print(dictofsecs[key])
|
||||||
|
return dictofsecs
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
filelines = readfile()
|
||||||
|
config = readconfigdates()
|
||||||
|
fitdates = procesfile(filelines, config[0], config[1])
|
||||||
|
averageofdict = averagepersec(fitdates, True)
|
@ -5,6 +5,6 @@ function=hello-kubeless-go-sc
|
|||||||
|
|
||||||
for (( i = 1 ; i <= $time ; i++ )); do
|
for (( i = 1 ; i <= $time ; i++ )); do
|
||||||
kubectl get deployment | grep $function | awk '{print $2}' | cut -d/ -f1 >> ./data/$function.monitor.csv
|
kubectl get deployment | grep $function | awk '{print $2}' | cut -d/ -f1 >> ./data/$function.monitor.csv
|
||||||
echo '\n' >> ./data/$function.monitor.csv
|
# echo '\n' >> ./data/$function.monitor.csv
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
|
Loading…
Reference in New Issue
Block a user