Mercurial > prosody-modules
view mod_pubsub_alertmanager/README.md @ 5265:f845c218e52c
mod_http_oauth2: Allow revoking a token without OAuth client credentials
If you have a valid token, and you're not supposed to have it, revoking
it seems the most responsible thing to do with it, so it should be
allowed, while if you are supposed to have it, you should also be
allowed to revoke it.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 21 Mar 2023 22:02:38 +0100 |
parents | eba7e68120d8 |
children | 67190744b1eb |
line wrap: on
line source
--- labels: - 'Stage-Alpha' summary: Alertmanager webhook receiver for pubsub --- # Introduction This module lets [Alertmanager](https://prometheus.io/docs/alerting/latest/alertmanager/) publish alerts to [pubsub][doc:pubsub] via [webhooks](https://prometheus.io/docs/alerting/latest/configuration/#webhook_config). # Setup The relevant pubsub nodes must be created and configured somehow. Because the request IP address is used to publish, the `publisher` affiliation should be given to the IP address Alertmanager sends webhooks from. # Configuration ## Prometheus A Prometheus `rule_files` might contain something along these lines: ``` yaml groups: - name: Stuff rules: - alert: Down expr: up == 0 for: 5m annotations: title: 'Stuff is down!' labels: severity: 'critical' ``` ## Alertmanager On the Alertmanager site the webhook configuration may look something like this: ``` yaml receivers: - name: pubsub webhook_configs: - url: http://pubsub.localhost:5280/pubsub_alertmanager ``` And then finally some Alertmanager routes would point at that receiver: ``` yaml route: receiver: pubsub ``` ## Prosody On the Prosody side, apart from creating and configuring the node(s) that will be used, configure your pubsub service like this: ``` lua Component "pubsub.example.com" "pubsub" modules_enabled = { "pubsub_alertmanager", } -- optional extra settings: alertmanager_body_template = [[ *ALARM!* {annotations.title?Alert} is {status} Since {startsAt}{endsAt& until {endsAt}} Labels: {labels% {idx}: {item}} Annotations: {annotations% {idx}: {item}} ]] alertmanager_node_template = "alerts/{alert.labels.severity}" ``` If no node template is given, either an optional part after "pubsub_alertmanager" in the HTTP path is used as node, or the string "alerts". Here, an alerts would be published to different nodes based on the 'severity' label, so e.g. `alerts/critical` in this example. ## All Options Available configuration options: `alertmanager_body_template` : Template for the textual representation of alerts. `alertmanager_node_template` : Template for the pubsub node name, defaults to `"{path?alerts}"`