3.3 KiB
3.3 KiB
title | description | menu | weight | flux/v0/tags | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
opsgenie.endpoint() function | `opsgenie.endpoint()` sends an alert message to Opsgenie using data from table rows. |
|
301 |
|
opsgenie.endpoint()
sends an alert message to Opsgenie using data from table rows.
Usage
opsgenie.endpoint is a factory function that outputs another function.
The output function requires a mapFn
parameter.
mapFn
A function that builds the record used to generate the POST request. Requires an r
parameter.
mapFn
accepts a table row (r
) and returns a record that must include the following fields:
- message
- alias
- description
- priority
- responders
- tags
- actions
- details
- visibleTo
For more information, see opsgenie.sendAlert
.
Function type signature
(
apiKey: string,
?entity: string,
?url: string,
) => (
mapFn: (
r: A,
) => {
B with
visibleTo: [string],
tags: E,
responders: [string],
priority: string,
message: string,
details: D,
description: string,
alias: string,
actions: C,
},
) => (<-tables: stream[A]) => stream[{A with _sent: string}] where D: Stringable
{{% caption %}} For more information, see Function type signatures. {{% /caption %}}
Parameters
url
Opsgenie API URL. Defaults to https://api.opsgenie.com/v2/alerts
.
apiKey
({{< req >}}) (Required) Opsgenie API authorization key.
entity
Alert entity used to specify the alert domain.
Examples
Send critical statuses to Opsgenie
import "influxdata/influxdb/secrets"
import "contrib/sranka/opsgenie"
apiKey = secrets.get(key: "OPSGENIE_APIKEY")
endpoint = opsgenie.endpoint(apiKey: apiKey)
crit_statuses =
from(bucket: "example-bucket")
|> range(start: -1m)
|> filter(fn: (r) => r._measurement == "statuses" and status == "crit")
crit_statuses
|> endpoint(
mapFn: (r) =>
({
message: "Great Scott!- Disk usage is: ${r.status}.",
alias: "disk-usage-${r.status}",
description: "",
priority: "P3",
responders: ["user:john@example.com", "team:itcrowd"],
tags: [],
entity: "my-lab",
actions: [],
details: "{}",
visibleTo: [],
}),
)()