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.
San Francisco, CA
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.