InfluxDB Docs

telegram.endpoint() function

The telegram.endpoint() function sends a message to a Telegram channel using data from table rows.

Function type: Output

import "contrib/sranka/telegram"

telegram.endpoint(
  url: "https://api.telegram.org/bot",
  token: "S3crEtTel3gRamT0k3n",
  parseMode: "MarkdownV2",
  disableWebPagePreview: false,
)

For information about retrieving your Telegram bot token and channel ID, see Set up a Telegram bot.

Parameters

url

URL of the Telegram bot endpoint. Default is https://api.telegram.org/bot.

Data type: String

token

Required Telegram bot token.

Data type: String

parseMode

Parse mode of the message text. Default is "MarkdownV2".

Data type: String

disableWebPagePreview

Disable preview of web links in the sent message. Default is false.

Data type: Boolean

Usage

telegram.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 POST request. Requires an r parameter.

Data type: Function

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

  • channel
  • text
  • silent

For more information, see telegram.message().

Examples

Send critical statuses to a Telegram channel
import "influxdata/influxdb/secrets"
import "contrib/sranka/telegram"

token = secrets.get(key: "TELEGRAM_TOKEN")
endpoint = telegram.endpoint(token: token)

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

crit_statuses
  |> endpoint(mapFn: (r) => ({
      channel: "-12345",
      text: "Disk usage is **${r.status}**.",
      silent: true
    })
  )()

Package author and maintainer

Github: @sranka
InfluxDB Slack: @sranka


New! Cloud or OSS?