Skip to content

v1.20.0

Choose a tag to compare

@loks0n loks0n released this 14 Aug 08:53
· 28 commits to main since this release
ffc83eb

Adds Discord as a messaging backend. OnCall posts alert groups to Discord, handles the button presses, and notifies users through their notification policies, in the same way as the Slack and Mattermost integrations.

Configuration

FEATURE_DISCORD_INTEGRATION_ENABLED=True
DISCORD_BOT_TOKEN=<bot token>
DISCORD_PUBLIC_KEY=<application public key>
CELERY_WORKER_QUEUE=...,discord

Set the application's Interactions Endpoint URL to /api/internal/v1/discord/interaction. Nothing is posted until a channel is connected under Settings, ChatOps, Discord.

The card

  • Title, message, image and source link from the alert, with emoji shortcodes expanded and a masked link with no target reduced to its label.
  • Buttons for acknowledge, resolve, add note, a link to OnCall, and a link to the alert source when it has one.
  • A silence menu of durations, a menu to page a responder, and a modal for a resolution note.
  • A Timeline field using Discord timestamps, so each reader sees their own clock.
  • A footer with the integration name, the alert group number, and the number of alerts in the group.

Forum channels

Connecting a forum channel makes each alert group a post instead of a message in a shared channel. Posts are tagged with the group's state where the forum has tags with matching names. OnCall unarchives a post before editing it, because Discord rejects edits to an archived post.

On retry, an existing post is identified by the custom_id its buttons carry rather than by its name, so two alerts with similar titles are not confused.

Routing

  • A route selects the Discord channel its alert groups are posted to.
  • A route selects whether its alert groups read as an alert or a warning.
  • A route can name a Discord role, mentioned when escalation reaches a step that notifies everyone.
  • Shift starts are announced in the default channel.

Linking accounts

Users run /oncall-link in Discord, or use the Discord tab of their OnCall profile. A linked user can be mentioned by escalation and can use the card's buttons. An unlinked user is named in the message but not mentioned.

Full Changelog: v1.19.1...v1.20.0