Messengers¶
Muster delivers Alert Groups to Destinations. A Destination is a place where Alert Groups arrive: a channel of a messenger, or an outgoing webhook. There are four types:
- Mattermost, through a bot account on your Mattermost server;
- Telegram, through a bot, to a channel with comments;
- Bridge, for any other messenger: a small service that you or someone else writes speaks the Bridge protocol with Muster and talks to the messenger;
- Outgoing webhook, which sends the lifecycle events of Alert Groups, or requests you build from templates, to any HTTP endpoint.
A Connection holds the credentials Muster uses to reach one messenger: a bot on a Mattermost server, a Telegram bot, or a Bridge. Many Destinations can share a Connection. An outgoing webhook has no Connection; the Destination carries its own address, Secrets and proxy.
To start, create the Connection, check it, create a Destination for a channel, and add the Destination to a Route. A Route decides which Alert Groups reach which Destinations; see Routes and Group keys.
What each Destination type can do¶
Every entry is true for this release. An entry that depends on the bridge says "if the bridge declares it": a Bridge
offers only what its info announces, and Muster adapts to the rest. Write a bridge lists the
features.
- Needs a Connection
-
- Mattermost — yes
- Telegram — yes
- Bridge — yes
- Outgoing webhook, events mode — no
- Outgoing webhook, template mode — no
- One message per Alert Group, kept up to date
-
- Mattermost — yes
- Telegram — yes
- Bridge — yes
- Outgoing webhook, events mode — no: one request per event
- Outgoing webhook, template mode — yes, through your requests
- Edits of the Root message
-
- Mattermost — yes
- Telegram — yes
- Bridge — yes, until the bridge's edit window
- Outgoing webhook, events mode — no
- Outgoing webhook, template mode — yes, through the
updaterequest
- Buttons
-
- Mattermost — yes
- Telegram — yes
- Bridge — if the bridge declares
buttons - Outgoing webhook, events mode — no
- Outgoing webhook, template mode — no
- Without buttons
-
- Mattermost — the web UI and the API
- Telegram — the web UI and the API
- Bridge — Text commands in the Thread if the bridge declares
thread_messages; otherwise the web UI and the API - Outgoing webhook, events mode — the web UI and the API
- Outgoing webhook, template mode — the web UI and the API
- Thread
-
- Mattermost — replies under the Root message
- Telegram — the comments of the Root message, in the channel's discussion group
- Bridge — replies under the Root message
- Outgoing webhook, events mode — no: each event is separate
- Outgoing webhook, template mode — optional
reply_in_thread, with an optionalopen_thread
- Loud
-
- Mattermost — a new post with Mentions
- Telegram — a new message
- Bridge — a new message that the bridge posts with
notify - Outgoing webhook, events mode —
notifyis true - Outgoing webhook, template mode —
.Notifyis true
- Quiet
-
- Mattermost — an edit, or a post without a Mention
- Telegram — an edit, or a message sent with
disable_notification - Bridge — an edit, or a message without a notification if the bridge declares
quiet_messages - Outgoing webhook, events mode —
notifyis false - Outgoing webhook, template mode —
.Notifyis false
- Mentions
-
- Mattermost — nobody,
@channel@all@here, users, Mattermost groups - Telegram — nobody, users
- Bridge — nobody, users
- Outgoing webhook, events mode — nobody, everyone, users, groups, as data
- Outgoing webhook, template mode — the same, as data
- Mattermost — nobody,
- Account links
-
- Mattermost — yes: a code the bot sends by direct message
- Telegram — yes: a link that opens the bot
- Bridge — yes: a token sent to the bot, and a code if the bridge can find people and send direct messages
- Outgoing webhook, events mode — not needed: no one presses anything
- Outgoing webhook, template mode — not needed
- Rate limits
-
- Mattermost — Connection 5 requests/s; Destination the same by default
- Telegram — Connection 15 messages/s; Destination 10 requests/min, sends and edits together
- Bridge — Connection 10 requests/s, Destination 30 requests/min, or half of what the bridge's info declares
- Outgoing webhook, events mode — Destination 5 requests/s
- Outgoing webhook, template mode — Destination 5 requests/s
- Edit window
-
- Mattermost — none by default; the server setting
PostEditTimeLimitis unlimited, so keep it - Telegram — none for the bot's own messages
- Bridge — the bridge declares it, or none; Muster publishes a new Root message past it
- Outgoing webhook, events mode — not applicable
- Outgoing webhook, template mode — the chat's own; Muster does not know it
- Mattermost — none by default; the server setting
- Storms
-
- Mattermost — one Storm summary per Route
- Telegram — one Storm summary per Route
- Bridge — one Storm summary per Route
- Outgoing webhook, events mode — every event is sent, no summary
- Outgoing webhook, template mode — one Storm summary
- Proxy
-
- Mattermost — on the Connection
- Telegram — on the Connection
- Bridge — on the Connection
- Outgoing webhook, events mode — on the Destination
- Outgoing webhook, template mode — on the Destination
- Destination check
-
- Mattermost — yes
- Telegram — yes
- Bridge — yes,
checkChannel, which posts nothing - Outgoing webhook, events mode — no
- Outgoing webhook, template mode — no
- Test message and preview
-
- Mattermost — yes
- Telegram — yes
- Bridge — yes
- Outgoing webhook, events mode — yes, sends the event
test - Outgoing webhook, template mode — yes, sends the
createrequest
Notes on the entries:
- Rate limits. These are the defaults of the limiters, and you can change them. Mattermost's own rate limit is off by
default; when an administrator turns it on, it allows 10 requests per second per client address, so keep the limiters of
all Connections to one server below that together. A Telegram chat takes about 20 messages and edits per minute, which is
why its Destination limiter is half of that. A bridge says its own limits in its info, and its
rate_limitedanswers always win. A429from a messenger holds the Destinations that share it, for as long as it asks. - Account links. Pressing a button as a Muster user, and being Mentioned, need an Account link. See Link your messenger accounts.
- Loud and Quiet. Edits never notify anybody, so every Loud change is a new message. See Loud and Quiet.
- Edit windows. See Broken Destinations.
- Destination check. It asks the messenger whether the bot can still post, without posting. Muster runs it when you save a Destination, from Check, and as the probe of a Broken Destination when nothing waits. An outgoing webhook has no Destination check, so a Broken one is probed by its next delivery.
Pages¶
- Connect Mattermost: the bot account, the setting that lets the server call Muster for button presses, and who gets notified.
- Connect Telegram: the bot, a channel with comments, long polling or a webhook; Telegram in restricted networks for networks where it is blocked.
- Connect a messenger through a bridge, and Write a bridge for a messenger Muster does not support.
- Outgoing webhooks: the events mode, the template mode and some recipes.
- Proxies: the proxy of each client, and what the outbound address policy checks.
- Link your messenger accounts: how people tie their messenger accounts to their Muster user.
- Request log: the recent requests Muster sent to a messenger, a bridge or an outgoing webhook, with secrets masked, for troubleshooting.