PagerDuty Server 是一个用于与PagerDuty API交互的Python客户端库,它能简化从PagerDuty获取数据的流程,并提供多种工具辅助处理和分析这些数据。
PagerDuty Server 可帮助您轻松与PagerDuty API交互。以下是一些基本操作示例:
获取所有事件的分页:
from pagerduty_mcp_server import incidents
incidents = incidents.get_all_incidents()
for incident in incidents:
print(incident.id)
列出当前用户的团队中的所有事件:
incidents_list = incidents.list_incidents()
# 列出特定服务的事件
service_incidents = incidents.list_incidents(service_ids=['SERVICE-1', 'SERVICE-2'])
# 根据状态筛选事件
active_incidents = incidents.list_incidents(statuses=['triggered', 'acknowledged'])
根据时间范围过滤事件:
date_range_incidents = incidents.list_incidents(
since='2024-03-01T00:00:00Z',
until='2024-03-14T23:59:59Z'
)
当 current_user_context=True 时,自动过滤与当前用户相关的团队和服务:
my_incidents = incidents.list_incidents(current_user_context=True)
获取所有团队:
teams = teams.list_teams()
for team in teams:
print(team.id)
列出特定团队的服务:
services = services.list_services(team_id='TEAM-1')
for service in services:
print(service.id)
PagerDuty Server 提供了一个命令行界面(CLI)来执行常见任务。
使用 pip 安装:
pip install pagerduty-mcp-server-cli
列出所有事件:
pagerduty-server incidents list
获取特定事件的详细信息:
pagerduty-server incidents get --id INCIDENT-123
使用 pip 安装:
pip install pagerduty-mcp-server
以下是获取所有事件分页的基础代码示例:
from pagerduty_mcp_server import incidents
incidents = incidents.get_all_incidents()
for incident in incidents:
print(incident.id)
# 列出特定服务的事件
service_incidents = incidents.list_incidents(service_ids=['SERVICE-1', 'SERVICE-2'])
# 根据状态筛选事件
active_incidents = incidents.list_incidents(statuses=['triggered', 'acknowledged'])
# 根据时间范围过滤事件
date_range_incidents = incidents.list_incidents(
since='2024-03-01T00:00:00Z',
until='2024-03-14T23:59:59Z'
)
# 列出所有团队
teams = teams.list_teams()
for team in teams:
print(team.id)
# 列出特定团队的服务
services = services.list_services(team_id='TEAM-1')
for service in services:
print(service.id)
# 列出所有事件
pagerduty-server incidents list
# 获取特定事件的详细信息
pagerduty-server incidents get --id INCIDENT-123
current_user_context=True 时,不能使用以下参数:
user_idsteam_idsservice_ids使用 pip 安装开发依赖:
pip install -r requirements.txt
运行单元测试:
pytest tests/
遵循 Git Flow 工作流进行提交。
遵循标准的提交规范,确保您的提交清晰且易于理解。
使用 poetry 进行版本管理:
poetry lock --no-update && poetry install
文档位于 docs/ 目录下,使用 Markdown 格式编写。
遇到问题?在 GitHub Issues 中报告。
PagerDuty Server 是一个强大的工具,帮助您更高效地与PagerDuty API交互。希望这个文档能为您提供清晰的指导!