You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何导出PagerDuty全部历史事件?API及脚本调用遇阻

解决方案:导出PagerDuty全部历史事件

PagerDuty的List Incidents接口默认仅返回最近30天的事件,这就是你只能拿到一个月数据的原因。要获取全部历史事件,只需在请求中显式指定时间范围参数即可,pdpyras的iter_all方法支持传入额外的请求参数。

修改后的脚本示例

import os
from pdpyras import APISession

api_key = os.environ['PD_API_KEY']
session = APISession(api_key, default_from="fake.email.com")

# 指定起始时间为足够早的日期(比如账户创建的时间,这里用1970年作为兜底)
# 若需要指定结束时间,可添加 'until' 参数,格式同样为ISO 8601 UTC时间
request_params = {
    'since': '1970-01-01T00:00:00Z'
}

# 传入params参数,获取全量历史事件
for incident in session.iter_all('incidents', params=request_params):
    print(incident)

关键说明

  • 时间格式要求:since和until参数必须使用ISO 8601格式的UTC时间(结尾带Z),比如2020-01-01T00:00:00Z。
  • 自动分页处理:iter_all会自动处理PagerDuty API的分页逻辑,无需手动处理翻页。
  • 状态过滤:如果需要包含所有状态的事件(比如已关闭、已解决),可以额外添加'statuses[]': ['triggered', 'acknowledged', 'resolved']到参数中。
  • 速率限制:PagerDuty API有调用速率限制,若数据量极大,建议添加适当的请求间隔,避免触发限流。

内容的提问来源于stack exchange,提问作者Gary Turner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 21:40:22