用途
sentry-create-alert 用于通过 Sentry 的工作流引擎 API 创建告警。当用户要求创建 Sentry 告警、设置通知、配置问题优先级告警或构建工作流自动化时,可以调用此技能。
注意:该 API 目前处于测试阶段,可能发生变化。它属于新版监控与告警功能,可能无法在旧版告警界面中查看。
主要能力
- 创建基于触发事件和过滤条件的告警工作流。
- 支持多种通知动作类型:email、slack、pagerduty、discord、msteams、opsgenie、jira、github。
- 可配置触发事件类型,如 first_seen_event、regression_event、reappeared_event、issue_resolved_trigger。
- 支持丰富的过滤条件,包括问题优先级、事件频率、受影响用户数、标签匹配、分配对象、事件级别、问题年龄、问题类别、问题出现次数等。
- 可设置通知频率(分钟间隔)。
- 支持对已创建的工作流进行列出、获取、更新和删除操作。
使用方式
前置条件
- shell 中可用 curl。
- 具有 alerts:write 权限的 Sentry 组织认证令牌(也接受 org:admin 或 org:write)。
阶段 1:收集配置
向用户询问缺失的详细信息,包括:组织 slug、认证令牌、区域(默认 us,us 对应 us.sentry.io,de 对应 de.sentry.io)、告警名称、触发事件、条件(可选)、动作类型、动作目标。
阶段 2:查找 ID
使用 API 调用将名称解析为 ID,例如通过邮箱查找用户 ID、列出团队、列出集成(用于 Slack/PagerDuty)。
阶段 3:构建负载
选择触发事件,使用 logicType: "any-short"。设置过滤条件,使用 logicType: "all"、"any-short" 或 "none"。comparison 字段是多态的,其形状取决于条件类型。配置动作,不同动作类型有不同的关键配置。
完整负载结构示例:
{
"name": "<Alert Name>",
"enabled": true,
"environment": null,
"config": { "frequency": 30 },
"triggers": {
"logicType": "any-short",
"conditions": [
{ "type": "first_seen_event", "comparison": true, "conditionResult": true }
],
"actions": []
},
"actionFilters": [{
"logicType": "all",
"conditions": [
{ "type": "issue_priority_greater_or_equal", "comparison": 75, "conditionResult": true },
{ "type": "event_frequency_count", "comparison": {"value": 50, "interval": "1hr"}, "conditionResult": true }
],
"actions": [{
"type": "email",
"integrationId": null,
"data": {},
"config": {
"targetType": "user",
"targetIdentifier": "<user_id>",
"targetDisplay": null
},
"status": "active"
}]
}]
}
frequency 为重复通知之间的分钟数,允许值:0、5、10、30、60、180、720、1440。
结构说明:triggers.actions 始终为 [],动作位于 actionFilters[].actions 内。
阶段 4:创建告警
使用 curl 发送 POST 请求到工作流端点,预期返回 HTTP 201,响应包含工作流 id。
阶段 5:验证
确认告警已创建,并提供 UI 链接。如果组织缺少 workflow-engine-ui 功能标志,告警会出现在另一个链接下。
管理告警
可列出所有工作流、获取单个工作流、更新工作流、删除工作流(预期返回 204)。
适用场景
- 用户要求创建 Sentry 告警或设置通知。
- 用户希望在问题匹配特定条件时收到邮件或通知。
- 用户提到优先级告警、降级告警或工作流自动化。
- 用户希望为 Sentry 问题配置 Slack、PagerDuty 或邮件通知。
限制
- API 处于测试阶段,可能发生变化。
- 可能无法在旧版告警界面中查看。
- 需要具备相应权限的认证令牌。
- 需要 shell 中可用 curl。
- 故障排除:401 表示令牌需要 alerts:write 权限;403 表示令牌必须属于目标组织;404 检查组织 slug 和区域;400 验证负载 JSON 结构和必填字段;用户 ID 未找到时验证邮箱是否匹配组织成员。