pagerduty.endpoint() 函数
pagerduty.endpoint()
返回一个函数,该函数向 PagerDuty 发送包含输出数据的消息。
用法
pagerduty.endpoint()
是一个工厂函数,它输出另一个函数。输出函数需要 mapFn
参数。
mapFn
构建用于生成 POST 请求的记录的函数。需要 r
参数。
mapFn
接受表行 (r
) 并返回一个记录,该记录必须包含以下属性
- routingKey
- client
- client_url
- class
- eventAction
- group
- severity
- source
- component
- summary
- timestamp
- customDetails
函数类型签名
(
?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}]
有关更多信息,请参阅 函数类型签名。
参数
url
PagerDuty v2 Events API URL。
默认为 https://events.pagerduty.com/v2/enqueue
。
示例
将关键状态发送到 PagerDuty 端点
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},
}),
)()
此页是否对您有帮助?
感谢您的反馈!