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

2.9 KiB

title description menu weight flux/v0/tags
bigpanda.sendAlert() function `bigpanda.sendAlert()` sends an alert to [BigPanda](https://www.bigpanda.io/).
flux_v0_ref
name parent identifier
bigpanda.sendAlert contrib/rhajek/bigpanda contrib/rhajek/bigpanda/sendAlert
301
single notification

bigpanda.sendAlert() sends an alert to BigPanda.

Function type signature
(
    appKey: A,
    rec: B,
    status: C,
    token: string,
    url: string,
) => int

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

Parameters

url

({{< req >}}) 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.

status

({{< req >}}) BigPanda alert status.

Supported statuses:

  • ok
  • critical
  • warning
  • acknowledged

rec

({{< req >}}) Additional alert parameters to send to the BigPanda alert API.

Examples

Send the last reported value and status to BigPanda

import "contrib/rhajek/bigpanda"
import "influxdata/influxdb/secrets"
import "json"

token = secrets.get(key: "BIGPANDA_API_KEY")

lastReported =
    from(bucket: "example-bucket")
        |> range(start: -1m)
        |> filter(fn: (r) => r._measurement == "example-measurement" and r._field == "level")
        |> last()
        |> findRecord(fn: (key) => true, idx: 0)

bigpanda.sendAlert(
    token: token,
    appKey: "example-app-key",
    status: bigpanda.statusFromLevel(level: "${lastReported.status}"),
    rec: {
        tags: json.encode(v: [{"name": "host", "value": "my-host"}]),
        check: "my-check",
        description: "${lastReported._field} is ${lastReported.status}: ${string(
                v: lastReported._value,
            )}",
    },
)