From 99fe4f68ab19aded678b0b959ad879e9d0328924 Mon Sep 17 00:00:00 2001 From: Dominik Rimpf Date: Sun, 17 Sep 2023 04:44:50 +0200 Subject: [PATCH] fix: grafana timestamp parsing --- alertbot.py | 17 ++++++++--------- maubot.yaml | 2 ++ requirements.txt | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/alertbot.py b/alertbot.py index 966e02d..9a6fea3 100644 --- a/alertbot.py +++ b/alertbot.py @@ -1,6 +1,6 @@ -import datetime import json +import dateutil.parser from aiohttp.web import Request, Response, json_response from maubot import Plugin, MessageEvent from maubot.handlers import web, command @@ -75,11 +75,11 @@ def get_alert_type(data): # Grafana try: - data["alerts"][0]["labels"]["grafana_folder"] - if data['status'] == "firing": - return "grafana-alert" - else: - return "grafana-resolved" + if data["alerts"][0]["labels"]["grafana_folder"]: + if data['status'] == "firing": + return "grafana-alert" + else: + return "grafana-resolved" except KeyError: pass @@ -186,7 +186,6 @@ def grafana_alert_to_markdown(alert_data: dict) -> list: """ messages = [] for alert in alert_data["alerts"]: - datetime_format = "%Y-%m-%dT%H:%M:%S%z" if alert['status'] == "firing": message = ( f"""**Firing 🔥**: {alert['labels']['alertname']} @@ -198,8 +197,8 @@ def grafana_alert_to_markdown(alert_data: dict) -> list: """ ) if alert['status'] == "resolved": - end_at = datetime.datetime.strptime(alert['endsAt'], datetime_format) - start_at = datetime.datetime.strptime(alert['startsAt'], datetime_format) + end_at = dateutil.parser.isoparse(alert['endsAt']) + start_at = dateutil.parser.isoparse(alert['startsAt']) message = ( f"""**Resolved 🥳**: {alert['labels']['alertname']} diff --git a/maubot.yaml b/maubot.yaml index 66f4be2..82cc339 100644 --- a/maubot.yaml +++ b/maubot.yaml @@ -5,4 +5,6 @@ license: AGPL-3.0-or-later modules: - alertbot main_class: AlertBot +dependencies: + - python-dateutil>=2.8.2,<3.0.0 webapp: true diff --git a/requirements.txt b/requirements.txt index 04c98df..ea13f7f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ maubot aiohttp -datetime \ No newline at end of file +python-dateutil \ No newline at end of file