Documentation

alerta.endpoint() function

The alerta.endpoint() function is a user-contributed function maintained by the package author and can be updated or removed at any time.

The alerta.endpoint() function sends alerts to Alerta using data from input rows.

Function type: Output

import "contrib/bonitoo-io/alerta"

alerta.endpoint(
  url: "https://alerta.io:8080/alert,
  apiKey: "0Xx00xxXx00Xxx0x0X",
  environment: "",
  origin: "InfluxDB"
)

Parameters

url

(Required) Alerta URL.

Data type: String

apiKey

(Required) Alerta API key.

Data type: String

environment

Alert environment. Default is "".

Data type: String

Valid values:

  • ""
  • "Production"
  • "Development"

origin

Alert origin. Default is "InfluxDB".

Data type: String

Usage

alerta.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:

  • resource
  • event
  • severity
  • service
  • group
  • value
  • text
  • tags
  • attributes
  • type
  • timestamp

For more information, see alerta.alert() parameters.

Examples

Send critical alerts to Alerta
import "contrib/bonitoo-io/alerta"
import "influxdata/influxdb/secrets"

apiKey = secrets.get(key: "ALERTA_API_KEY")
endpoint = alerta.endpoint(
  url: "https://alerta.io:8080/alert",
  apiKey: apiKey,
  environment: "Production",
  origin: "InfluxDB"
)

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

crit_events
  |> endpoint(mapFn: (r) => {
    return { r with
      resource: "example-resource",
      event: "example-event",
      severity: "critical",
      service: r.service,
      group: "example-group",
      value: r.status,
      text: "Status is critical.",
      tags: ["ex1", "ex2"],
      attributes: {},
      type: "exampleAlertType",
      timestamp: now(),
    }
  })()

Package author and maintainer

Github: @alespour, @bonitoo-io
InfluxDB Slack: @Ales Pour


Select your region

Upgrade to InfluxDB Cloud or InfluxDB 2.0!

InfluxDB Cloud and InfluxDB OSS 2.0 ready for production.