docs-v2/content/flux/v0/stdlib/contrib/rhajek/bigpanda/endpoint.md

3.0 KiB

title description menu weight flux/v0/tags
bigpanda.endpoint() function `bigpanda.endpoint()` sends alerts to BigPanda using data from input rows.
flux_v0_ref
name parent identifier
bigpanda.endpoint contrib/rhajek/bigpanda contrib/rhajek/bigpanda/endpoint
301
notification endpoints
transformations

bigpanda.endpoint() sends alerts to BigPanda using data from input rows.

Usage

bigpanda.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.

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

For more information, see bigpanda.sendAlert() parameters.

Function type signature
(
    appKey: A,
    token: string,
    ?url: string,
) => (mapFn: (r: B) => {C with status: D}) => (<-tables: stream[B]) => stream[{B with _sent: string}]

{{% caption %}} For more information, see Function type signatures. {{% /caption %}}

Parameters

url

BigPanda alerts API URL. Default is the value of the bigpanda.defaultURL option.

token

({{< req >}}) BigPanda API Authorization token (API key).

appKey

({{< req >}}) BigPanda App Key.

Examples

Send critical alerts to BigPanda

import "influxdata/influxdb/secrets"
import "json"

token = secrets.get(key: "BIGPANDA_API_KEY")
endpoint = bigpanda.endpoint(token: token, appKey: "example-app-key")

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 status: "critical",
                check: "critical-status-check",
                description: "${r._field} is critical: ${string(v: r._value)}",
                tags: json.encode(v: [{"name": "host", "value": r.host}]),
            }
        },
    )()