docs-v2/content/flux/v0.x/stdlib/contrib/sranka/opsgenie/endpoint.md

2.4 KiB

title description aliases menu weight flux/v0.x/tags introduced
opsgenie.endpoint() function The `opsgenie.endpoint()` function sends an alert message to Opsgenie using data from table rows.
/influxdb/v2.0/reference/flux/stdlib/contrib/opsgenie/endpoint/
/influxdb/cloud/reference/flux/stdlib/contrib/opsgenie/endpoint/
flux_0_x_ref
name parent
opsgenie.endpoint opsgenie
301
notification endpoints
0.84.0

The opsgenie.endpoint() function sends an alert message to Opsgenie using data from table rows.

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.

apiKey

({{< req >}}) Opsgenie API authorization key.

entity

Alert entity used to specify the alert domain.

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().

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: [],
            }),
    )()