2.3 KiB
2.3 KiB
title | description | menu | weight | ||||||
---|---|---|---|---|---|---|---|---|---|
opsgenie.endpoint() function | The `opsgenie.endpoint()` function sends an alert message to Opsgenie using data from table rows. |
|
202 |
The opsgenie.endpoint()
function sends an alert message to Opsgenie using data from table rows.
Function type: Output
import "contrib/sranka/opsgenie"
opsgenie.endpoint(
url: "https://api.opsgenie.com/v2/alerts",
apiKey: "YoUrSup3R5ecR37AuThK3y",
entity: "example-entity"
)
Parameters
url
Opsgenie API URL.
Defaults to https://api.opsgenie.com/v2/alerts
.
Data type: String
apiKey
({{< req >}}) Opsgenie API authorization key.
Data type: String
entity
Alert entity used to specify the alert domain.
Data type: String
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.
Data type: Function
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()
.
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: []
})
)()
{{% note %}}