3.0 KiB
3.0 KiB
title | description | menu | weight | flux/v0/tags | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
bigpanda.endpoint() function | `bigpanda.endpoint()` sends alerts to BigPanda using data from input rows. |
|
301 |
|
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:
status
- Additional alert parameters to send to the BigPanda alert API.
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}]),
}
},
)()