Tweak pagerduty colors and log all payloads

This commit is contained in:
Abel Luck 2022-07-22 14:32:49 +00:00
parent f4a36a3ce7
commit 29757b2e7d
2 changed files with 14 additions and 4 deletions

View file

@ -1,4 +1,6 @@
import asyncio
import json
import logging
from typing import Any, Dict, Optional, cast
import uvicorn
@ -87,6 +89,8 @@ async def pagerduty_hook(
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND, detail="Unknown routing key"
)
payload_str = json.dumps(payload, sort_keys=True, indent=2)
logging.info(f"received pagerduty payload: \n {payload_str}")
msg_plain, msg_formatted = pagerduty.parse_pagerduty_event(payload)
await matrix_client.room_send(
room_id,

View file

@ -4,9 +4,10 @@ from typing import Any, Tuple
def urgency_color(urgency: str) -> str:
if urgency == "high":
return "#dc3545"
return "#dc3545" # red
else:
return "#17a2b8"
return "#ffc107" # orange
# return "#17a2b8" # blue
def parse_pagerduty_event(payload: Any) -> Tuple[str, str]:
@ -29,13 +30,18 @@ def parse_pagerduty_event(payload: Any) -> Tuple[str, str]:
service_name: str = data["service"]["summary"]
urgency: str = data.get("urgency", "high")
plain = f"{status}: on {service_name}: {title} {url}"
formatted = f"<strong><font color={urgency_color(urgency)}>{status.upper()}</font></strong> on {service_name}: [{title}]({url})"
header_str = f"{status.upper()}[{urgency}]"
if status == "resolved":
color = "#33cc33" # green
else:
color = urgency_color(urgency)
formatted = f"<strong><font color={color}>{header_str}</font></strong> on {service_name}: [{title}]({url})"
return plain, formatted
payload_str = json.dumps(payload, sort_keys=True, indent=2)
return (
"unhandled",
f"""**unhandled pager duty event**
f"""**unhandled pager duty event** (this may or may not be a critical problem, please look carefully)
<pre><code class="language-json">{payload_str}</code></pre>
""",
)