pagerduty.endpoint() function
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}]
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},
}),
)()
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for Flux and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.