--- title: pagerduty.endpoint() function description: > `pagerduty.endpoint()` returns a function that sends a message to PagerDuty that includes output data. menu: flux_v0_ref: name: pagerduty.endpoint parent: pagerduty identifier: pagerduty/endpoint weight: 101 flux/v0/tags: [notification endpoints, transformations] --- `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 ```js ( ?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](/flux/v0/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 ```js 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}, }), )() ```