3.2 KiB
3.2 KiB
title | description | menu | weight | flux/v0/tags | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
pagerduty.endpoint() function | `pagerduty.endpoint()` returns a function that sends a message to PagerDuty that includes output data. |
|
101 |
|
pagerduty.endpoint()
returns a function that sends a message to PagerDuty that includes output data.
Usage
pagerduty.endpoint()
is a factory function that outputs another function.
The output function requires a mapFn
parameter.
mapFn
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 properties:
- routingKey
- client
- client_url
- class
- eventAction
- group
- severity
- source
- component
- summary
- timestamp
- customDetails
Function type signature
(
?url: string,
) => (
mapFn: (
r: {A with _pagerdutyDedupKey: string},
) => {
B with
timestamp: K,
summary: string,
source: J,
severity: I,
routingKey: H,
group: G,
eventAction: F,
clientURL: E,
client: D,
class: C,
},
) => (<-tables: stream[A]) => stream[{A with _status: string, _sent: string, _pagerdutyDedupKey: string, _body: string}]
{{% caption %}} For more information, see Function type signatures. {{% /caption %}}
Parameters
url
PagerDuty v2 Events API URL.
Default is https://events.pagerduty.com/v2/enqueue
.
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,
source: r.source,
component: r.component,
summary: r.summary,
timestamp: r._time,
customDetails: {"ping time": r.ping, load: r.load},
}),
)()