content/flux/v0/stdlib/contrib/bonitoo-io/zenoss/endpoint.md
zenoss.endpoint() sends events to Zenoss using data from input rows.
zenoss.endpoint is a factory function that outputs another function.
The output function requires a mapFn parameter.
A function that builds the object used to generate the POST request. Requires an r parameter.
mapFn accepts a table row (r) and returns an object that must include the following fields:
For more information, see zenoss.event() parameters.
(
url: string,
?action: A,
?apiKey: B,
?method: C,
?password: string,
?tid: D,
?type: E,
?username: string,
) => (
mapFn: (
r: F,
) => {
G with
summary: O,
severity: N,
message: M,
eventClassKey: L,
eventClass: K,
device: J,
component: I,
collector: H,
},
) => (<-tables: stream[F]) => stream[{F with _sent: string}] where B: Equatable
{{% caption %}} For more information, see Function type signatures. {{% /caption %}}
({{< req >}}) Zenoss router endpoint URL.
Zenoss username to use for HTTP BASIC authentication.
Default is "" (no authentication).
Zenoss password to use for HTTP BASIC authentication.
Default is "" (no authentication).
Zenoss cloud API key.
Default is "" (no API key).
Zenoss router name.
Default is "EventsRouter".
EventsRouter method.
Default is "add_event".
Event type. Default is "rpc".
Temporary request transaction ID.
Default is 1.
import "contrib/bonitoo-io/zenoss"
import "influxdata/influxdb/secrets"
url = "https://tenant.zenoss.io:8080/zport/dmd/evconsole_router"
username = secrets.get(key: "ZENOSS_USERNAME")
password = secrets.get(key: "ZENOSS_PASSWORD")
endpoint = zenoss.endpoint(url: url, username: username, password: password)
crit_events =
from(bucket: "example-bucket")
|> range(start: -1m)
|> filter(fn: (r) => r._measurement == "statuses" and status == "crit")
crit_events
|> endpoint(
mapFn: (r) =>
({
summary: "Critical event for ${r.host}",
device: r.deviceID,
component: r.host,
severity: "Critical",
eventClass: "/App",
eventClassKey: "",
collector: "",
message: "${r.host} is in a critical state.",
}),
)()