docs-v2/content/flux/v0/stdlib/contrib/sranka/sensu/event.md

3.6 KiB

title description menu weight flux/v0/tags
sensu.event() function `sensu.event()` sends a single event to the [Sensu Events API](https://docs.sensu.io/sensu-go/latest/api/events/#create-a-new-event).
flux_v0_ref
name parent identifier
sensu.event contrib/sranka/sensu contrib/sranka/sensu/event
301
single notification

sensu.event() sends a single event to the Sensu Events API.

Function type signature
(
    apiKey: string,
    checkName: string,
    text: A,
    url: string,
    ?entityName: string,
    ?handlers: B,
    ?namespace: string,
    ?state: string,
    ?status: C,
) => int where C: Equatable

{{% caption %}} For more information, see Function type signatures. {{% /caption %}}

Parameters

url

({{< req >}}) Base URL of Sensu API without a trailing slash.

Example: http://localhost:8080

apiKey

({{< req >}}) Sensu API Key.

checkName

({{< req >}}) Check name.

Use alphanumeric characters, underscores (_), periods (.), and hyphens (-). All other characters are replaced with an underscore.

text

({{< req >}}) Event text.

Mapped to output in the Sensu Events API request.

handlers

Sensu handlers to execute. Default is [].

status

Event status code that indicates state. Default is 0.

Status code State
0 OK
1 WARNING
2 CRITICAL
Any other value UNKNOWN or custom state

state

Event state. Default is "passing" for 0 status and "failing" for other statuses.

Accepted values:

  • "failing"
  • "passing"
  • "flapping"

namespace

Sensu namespace. Default is "default".

entityName

Event source. Default is influxdb.

Use alphanumeric characters, underscores (_), periods (.), and hyphens (-). All other characters are replaced with an underscore.

Examples

Send the last reported status to Sensu

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

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

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

sensu.event(
    url: "http://localhost:8080",
    apiKey: apiKey,
    checkName: "diskUsage",
    text: "Disk usage is **${lastReported.status}**.",
)