sensu.endpoint() function
The sensu.endpoint()
function sends an event to the Sensu Events API using data from table rows.
*Function type: Output*
Required Base URL of without a trailing slash. Example: http://localhost:8080
.
*Data type: String*
apiKey
Required Sensu .
Sensu handlers to execute. Default is []
.
*Data type: Array of strings*
namespace
Sensu namespace. Default is default
.
*Data type: String*
Event source. Use alphanumeric characters, underscores (_
), periods (.
), and hyphens (-
). All other characters are replaced with an underscore. Default is influxdb
.
sensu.endpoint
is a factory function that outputs another function. The output function requires a mapFn
parameter.
mapFn
A function that builds the object used to generate the POST request. Requires an r
parameter.
*Data type: Function*
accepts a table row (r
) and returns an object that must include the following fields:
text
status
For more information, see sensu.event()
parameters.
Send critical status events to Sensu
import "influxdata/influxdb/secrets"
import "contrib/sranka/sensu"
token = secrets.get(key: "TELEGRAM_TOKEN")
endpoint = sensu.endpoint(
url: "http://localhost:8080",
)
crit_statuses = from(bucket: "example-bucket")
|> filter(fn: (r) => r._measurement == "statuses" and status == "crit")
crit_statuses
|> endpoint(mapFn: (r) => ({
checkName: "critStatus",
text: "Status is critical",
status: 2
)()