From 34aa84a8b01ede09a2e483a6db1201595c86ec96 Mon Sep 17 00:00:00 2001 From: jwansek Date: Thu, 8 Jun 2023 14:26:51 +0000 Subject: Switched to older logging system, added plotting --- api_plotter.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 api_plotter.py (limited to 'api_plotter.py') diff --git a/api_plotter.py b/api_plotter.py new file mode 100755 index 0000000..83d4f08 --- /dev/null +++ b/api_plotter.py @@ -0,0 +1,38 @@ +import matplotlib.pyplot as plt +import datetime +import math +import os +import re + +def round_to_min(dt: datetime.datetime): + return datetime.datetime( + year = dt.year, + month = dt.month, + day = dt.day, + hour = dt.hour, + minute = math.floor(dt.minute) + ) + +with open(os.path.join("logs", "api.log"), "r") as f: + s = f.read().split("\n") + +timestamps = set() + +for l in s: + x = re.search(r"^.*\tResponse: 200", l) + if x is not None: + timestamps.add(datetime.datetime.strptime(x.group()[1:24], "%Y-%m-%d %H:%M:%S,%f")) + +d = {} +for timestamp in timestamps: + nearest = round_to_min(timestamp) + + try: + d[nearest] += 1 + except KeyError: + d[nearest] = 1 + +fig, ax = plt.subplots() +ax.plot(list(d.keys()), list(d.values())) + +plt.show() \ No newline at end of file -- cgit v1.2.3