telegram.endpoint() function
The telegram.endpoint()
function is a user-contributed function maintained by the package author and can be updated or removed at any time.
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()
parameters.
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