Merge pull request #5 from pauvos/prom-alert-labels

Handle missing labels of prometheus alerts more gracefully
This commit is contained in:
Julian-Samuel Gebühr 2023-03-29 07:44:21 +02:00 committed by GitHub
commit ab9625ea61
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -162,14 +162,15 @@ def prometheus_alert_to_markdown(alert_data: dict) -> str:
:return: Alert as fomatted markdown
"""
messages = []
known_labels = ['alertname', 'instance', 'job']
for alert in alert_data["alerts"]:
message = (
f"""**{alert['status']}** {'💚' if alert['status'] == 'resolved' else '🔥'}: {alert['annotations']['description']}
* **Alertname:** {alert["labels"]['alertname']}
* **Instance:** {alert["labels"]['instance']}
* **Job:** {alert["labels"]['job']}
"""
)
title = alert['annotations']['description'] if hasattr(alert['annotations'], 'description') else alert['annotations']['summary']
message = f"""**{alert['status']}** {'💚' if alert['status'] == 'resolved' else '🔥'}: {title}"""
for label_name in known_labels:
try:
message += "\n* **{0}**: {1}".format(label_name.capitalize(), alert["labels"][label_name])
except:
pass
messages.append(message)
return messages