docs-v2/content/influxdb/cloud/reference/flux/stdlib/contrib/opsgenie/endpoint.md

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.
influxdb_cloud_ref
name parent
opsgenie.endpoint Opsgenie
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 %}}

Package author and maintainer

Github: @sranka
InfluxDB Slack: @sranka {{% /note %}}