2.6 KiB
2.6 KiB
title | description | aliases | menu | weight | flux/v0.x/tags | introduced | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
pagerduty.endpoint() function | The `pagerduty.endpoint()` function sends a message to PagerDuty that includes output data. |
|
|
202 |
|
0.43.0 |
The pagerduty.endpoint()
function returns a function that can be used to send
a message to PagerDuty that includes output data.
import "pagerduty"
pagerduty.endpoint(
url: "https://events.pagerduty.com/v2/enqueue"
)
Parameters
url
PagerDuty v2 Events API URL.
Default is https://events.pagerduty.com/v2/enqueue
.
Usage
pagerduty.endpoint
is a factory function that outputs another function.
The output function requires a mapFn
parameter.
See the PagerDuty v2 Events API documentation
for more information about these parameters.
mapFn
({{< req >}}) A function that builds the record used to generate the POST request.
Requires an r
parameter.
mapFn
accepts a table row (r
) and returns a record that must include the following fields:
routingKey
client
client_url
class
eventAction
group
severity
component
source
summary
component
timestamp
customDetails
For more information, see pagerduty.sendEvent()
Examples
Send critical statuses to a PagerDuty endpoint
import "pagerduty"
import "influxdata/influxdb/secrets"
routingKey = secrets.get(key: "PAGERDUTY_ROUTING_KEY")
toPagerDuty = pagerduty.endpoint()
crit_statuses = from(bucket: "example-bucket")
|> range(start: -1m)
|> filter(fn: (r) => r._measurement == "statuses" and r.status == "crit")
crit_statuses
|> toPagerDuty(
mapFn: (r) => ({r with
routingKey: routingKey,
client: r.client,
clientURL: r.clientURL,
class: r.class,
eventAction: r.eventAction,
group: r.group,
severity: r.severity,
component: r.component,
source: r.source,
summary: r.summary,
component: r.component,
timestamp: r._time,
customDetails: {"ping time": lastReported.ping, load: lastReported.load},
}),
)()