Skip to content

Datadog

Freesbe takes monitor alerts from Datadog. Once an admin connects it:

  • Each alert posts into the channel you pick as one card, with its severity, the monitor’s title, the host, the message and the monitor’s tags.
  • The same card stays current. When the monitor recovers, the card turns green and says how long it was alerting, and a reply under it lets everyone following the thread know. Datadog’s re-notifications don’t post again.
  • Mute for 1 hour on the card mutes the monitor for the host or group that alerted, when you give Freesbe an API key and an application key.
  • A live problems board pinned in the channel lists every monitor alerting right now, worst first, and reports post on their own every morning or every Monday.

Alerts post as their own member, Datadog, so their cards are easy to tell apart from people.

Only owners and admins can connect it. You need someone who can manage integrations in Datadog.

  1. Open Workspace settings → Integrations & apps → Integrations → Monitoring and click Connect under Datadog.
  2. Give the connection a name, like Datadog: production, and pick the channel it posts to.
  3. Pick which alerts to post under Alerts to post (see Severities).
  4. For the Mute for 1 hour button, fill in Datadog site and API token (see Mute from the card). You can add them later.
  5. Click Connect Datadog. Freesbe shows the Freesbe URL and the Payload for Datadog. Copy the URL now: it’s only shown once.

Then, in Datadog:

  1. Open Integrations, find Webhooks and open it. Under Webhooks, click New.
  2. Name it freesbe, paste the Freesbe URL in URL, and replace what’s in Payload with the payload Freesbe showed you. Save it.
  3. Add @webhook-freesbe to the message of each monitor that should post, or to a notification rule that covers them. The next time one alerts, a card shows up.

The payload is the same for every connection:

{
"cycle": "$ALERT_CYCLE_KEY",
"monitor": "$ALERT_ID",
"transition": "$ALERT_TRANSITION",
"type": "$ALERT_TYPE",
"priority": "$ALERT_PRIORITY",
"title": "$EVENT_TITLE",
"message": "$TEXT_ONLY_MSG",
"status": "$ALERT_STATUS",
"host": "$HOSTNAME",
"scope": "$ALERT_SCOPE",
"tags": "$TAGS",
"link": "$LINK",
"date": "$DATE"
}

Freesbe goes by the monitor’s priority when it has one:

In Datadog On the card Icon
P1 Critical 🚨
P2, or no priority and an alert High 🔴
P3, or no priority and No Data Minor 🟠
P4, or no priority and a warning Warning 🟡
P5 Info 🔵

Alerts to post leaves out alerts below the severity you pick. A monitor that goes from warning to alert changes the same card’s severity.

With keys, everyone in the channel can press Mute for 1 hour on an alerting card. Freesbe mutes the monitor for the scope that alerted (like host:web-02), or the whole monitor when it isn’t grouped, until an hour from now. The card shows who muted it, and the board lists it as muted. To mute for longer or unmute early, use Datadog.

To set it up, open Organization Settings in Datadog:

  1. Under API Keys, copy a key (or make one for Freesbe).
  2. Under Application Keys, make a key with the monitors_read and monitors_downtime scopes.
  3. In the connection’s settings in Freesbe, fill in Datadog site, where you open Datadog (like https://app.datadoghq.com, https://us5.datadoghq.com or https://app.datadoghq.eu), and in API token paste both keys with a colon between them: API key:application key.

Freesbe checks the keys before saving them, and keeps them encrypted.

Like Zabbix, each connection pins a live problems board in its channel, listing the monitors alerting right now, worst first, with how long and who muted them. Reports count the alerts Freesbe got over the last day or week: by severity, still alerting, total time, the typical time to recover, the noisiest monitors and the busiest hosts. See The live problems board and Reports for more.

Which monitors post? The ones whose message or notification rule mentions @webhook-freesbe. Use a different webhook name for each connection (@webhook-freesbe-db, say) to send different monitors to different channels.

Who can see the cards? Everyone in the channel. Use a private channel for alerts only some people should see.

Is the URL a secret? Yes: anyone with it can post alerts into the channel. If it leaks, delete the connection and connect again for a new URL.