Documentation

sensu.event() function

The sensu.event() function is a user-contributed function maintained by the package author and can be updated or removed at any time.

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

import "contrib/sranka/sensu"

sensu.event(
    url: "http://localhost:8080",
    apiKey: "mYSuP3rs3cREtApIK3Y",
    checkName: "checkName",
    text: "Event output text",
    handlers: [],
    status: 0,
    state: "passing",
    namespace: "default",
    entityName: "influxdb",
)

Parameters

url

(Required) Base URL of Sensu API without a trailing slash. Example: http://localhost:8080.

apiKey

(Required) Sensu API Key.

checkName

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

text

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

The following values are accepted:

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

namespace

Sensu namespace. Default is "default".

entityName

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

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}**.",
)

Package author and maintainer

Github: @sranka
InfluxDB Slack: @sranka


Upgrade to InfluxDB Cloud or InfluxDB 2.0!

InfluxDB Cloud and InfluxDB OSS 2.0 ready for production.