InfluxDB Docs

discord.endpoint() function

The discord.endpoint() function sends a single message to a Discord channel using a Discord webhook and data from table rows.

Function type: Output

import "contrib/chobbs/discord"

discord.endpoint(
  webhookToken: "mySuPerSecRetTokEn",
  webhookID: "123456789",
  username: "username",
  avatar_url: "https://example.com/avatar_pic.jpg"
)

Parameters

webhookToken

Discord webhook token.

Data type: String

webhookID

Discord webhook ID.

Data type: String

username

Override the Discord webhook’s default username.

Data type: String

avatar_url

Override the Discord webhook’s default avatar.

Data type: String

Usage

discord.endpoint is a factory function that outputs another function. The output function requires a mapFn parameter.

mapFn

A function that builds the object used to generate the Discord webhook request. Requires an r parameter.

Data type: Function

mapFn accepts a table row (r) and returns an object that must include the following field:

  • content

For more information, see the discord.send() content parameter.

Examples

Send critical statuses to a Discord channel
import "influxdata/influxdb/secrets"
import "contrib/chobbs/discord"

discordToken = secrets.get(key: "DISCORD_TOKEN")
endpoint = telegram.endpoint(
  webhookToken: discordToken,
  webhookID: "123456789",
  username: "critBot"
)

crit_statuses = from(bucket: "example-bucket")
  |> range(start: -1m)
  |> filter(fn: (r) => r._measurement == "statuses" and status == "crit")

crit_statuses
  |> endpoint(mapFn: (r) => ({
      content: "The status is critical!",
    })
  )()

Package author and maintainer

Github: @chobbs
InfluxDB Slack: @craig


New! Cloud or OSS?