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

3.2 KiB

title description menu weight flux/v0/tags
opsgenie.sendAlert() function `opsgenie.sendAlert()` sends an alert message to Opsgenie.
flux_v0_ref
name parent identifier
opsgenie.sendAlert contrib/sranka/opsgenie contrib/sranka/opsgenie/sendAlert
301
single notification

opsgenie.sendAlert() sends an alert message to Opsgenie.

Function type signature
(
    apiKey: string,
    message: string,
    ?actions: A,
    ?alias: string,
    ?description: string,
    ?details: B,
    ?entity: string,
    ?priority: string,
    ?responders: [string],
    ?tags: C,
    ?url: string,
    ?visibleTo: [string],
) => int where B: 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.

message

({{< req >}}) (Required) Alert message text. 130 characters or less.

alias

Opsgenie alias usee to de-deduplicate alerts. 250 characters or less. Defaults to message.

description

Alert description. 15000 characters or less.

priority

Opsgenie alert priority.

Valid values include:

  • P1
  • P2
  • P3 (default)
  • P4
  • P5

responders

List of responder teams or users. Use the user: prefix for users and teams: prefix for teams.

tags

Alert tags.

entity

Alert entity used to specify the alert domain.

actions

List of actions available for the alert.

details

Additional alert details. Must be a JSON-encoded map of key-value string pairs.

visibleTo

List of teams and users the alert will be visible to without sending notifications. Use the user: prefix for users and teams: prefix for teams.

Examples

Send the last reported status to a Opsgenie

import "influxdata/influxdb/secrets"
import "contrib/sranka/opsgenie"

apiKey = secrets.get(key: "OPSGENIE_APIKEY")

lastReported =
    from(bucket: "example-bucket")
        |> range(start: -1m)
        |> filter(fn: (r) => r._measurement == "statuses")
        |> last()
        |> findRecord(fn: (key) => true, idx: 0)

opsgenie.sendAlert(
    apiKey: apiKey,
    message: "Disk usage is: ${lastReported.status}.",
    alias: "example-disk-usage",
    responders: ["user:john@example.com", "team:itcrowd"],
)