What it proves
A starter alerting repo gets more reusable when it normalizes severity, resource context, and message shape before the notification ever reaches a human reader.
OCI Functions starter patterns
This guide exists because alerting paths are often technically connected and still hard to use. The repo stays close to one repeated problem: turn inconsistent payloads into one readable incident message before chat becomes another noisy system boundary.
A short site-side guide before the proof layer on GitHub.
What it proves
A starter alerting repo gets more reusable when it normalizes severity, resource context, and message shape before the notification ever reaches a human reader.
Why it matters in this track
It extends the OCI Functions starter pattern beyond routing and validation into the human-facing edge of the workflow. The boundary here is not only machine-to-machine. It is raw alert payload to readable incident message.
What survives the first run
The Slack-ready payload is the artifact. It gives the next alerting step one compact message shape that is easier to route, reuse, or review.
oci-fn-slack-alert-normalizer as a first useful success, not only a demo.
The first useful run is a Slack-ready alert that already has the normalized severity, resource, and summary in one stable shape. That makes the repo useful before you wire in a real chat webhook or incident routing layer.
Use this when a noisy alert source should become a cleaner chat payload first, whether the next step is Slack delivery, incident triage, or a broader alert-handling workflow.
python3 - <<'PY'
import json
from func import normalize_alert
payload = '{"title":"DB CPU High","severity":"ERROR","resourceName":"db-prod-1","message":"CPU above threshold"}'
print(json.dumps(normalize_alert(payload), indent=2))
PY
{
"text": "[high] DB CPU High",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*DB CPU High*\nSeverity: `high`\nResource: `db-prod-1`\nCPU above threshold"
}
}
]
}
Normalizes noisy alert payloads into a cleaner Slack-friendly incident message.