名称: sentry-alerts-issues 描述: 用于配置Sentry警报、管理问题或设置通知时使用。涵盖警报规则、问题分类和集成。 允许工具:
- 读取
- 写入
- 编辑
- Bash
- Grep
- Glob
Sentry - 警报与问题管理
配置警报、管理问题和设置通知。
警报类型
问题警报
当问题匹配特定条件时触发:
- 新问题创建
- 问题状态更改(已解决 → 未解决)
- 问题频率超过阈值
- 问题影响特定用户/版本
指标警报
基于聚合指标触发:
- 错误计数超过阈值
- 事务延迟(p50, p95, p99)
- 失败率百分比
- Apdex 分数下降
可用性监控
监控端点可用性:
- HTTP 状态码
- 响应时间阈值
- SSL 证书过期
警报条件
基于频率
当一个问题在1小时内被看到超过100次
用户影响
当一个问题在1小时内影响超过50个唯一用户
首次出现
当一个新问题被创建
回归
当一个问题状态从已解决变为未解决
警报操作
通知渠道
- 电子邮件: 个人或团队分发
- Slack: 频道或直接消息
- PagerDuty: 值班升级
- Discord: Webhook 通知
- Microsoft Teams: 频道帖子
- Webhooks: 自定义集成
问题操作
- 分配给团队成员
- 添加标签
- 创建工单(Jira, Linear, GitHub)
问题状态
生命周期
- 未解决: 需要关注的活动问题
- 已解决: 在版本中修复
- 已忽略: 故意忽略
- 已归档: 历史记录,不再跟踪
子状态
- 待审查: 需要分类
- 升级中: 频率增加
- 已回归: 先前已解决,现在复发
- 新建: 最近首次出现
问题管理
合并问题
合并具有不同堆栈跟踪的重复问题:
- 选择要合并的问题
- 选择主要问题
- 所有事件出现在主要问题下
忽略规则
忽略此问题:
- 永远
- 直到再次发生
- 未来24小时内
- 直到影响100个用户
所有权规则
# 在项目设置中定义
path:src/payments/* #payments-team
path:src/auth/* user@example.com
tags.component:checkout #checkout-team
API 集成
列出问题
curl "https://sentry.io/api/0/projects/{org}/{project}/issues/" \
-H "Authorization: Bearer $SENTRY_AUTH_TOKEN"
更新问题
curl -X PUT "https://sentry.io/api/0/issues/{issue_id}/" \
-H "Authorization: Bearer $SENTRY_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{"status": "resolved"}'
创建警报规则
curl -X POST "https://sentry.io/api/0/projects/{org}/{project}/rules/" \
-H "Authorization: Bearer $SENTRY_AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "高错误率",
"conditions": [...],
"actions": [...],
"frequency": 30
}'
集成示例
Slack 警报
{
"action": "notify_slack",
"workspace": "你的工作区",
"channel": "#alerts",
"tags": ["level", "environment"]
}
PagerDuty 升级
{
"action": "notify_pagerduty",
"service": "你的服务密钥",
"severity": "critical"
}
Jira 工单创建
{
"action": "create_jira_ticket",
"integration": "jira-integration-id",
"project": "PROJ",
"issueType": "Bug"
}
最佳实践
- 从保守的阈值开始,随时间调整
- 对不同严重程度使用不同渠道
- 为关键警报设置值班轮换
- 定期审查和归档陈旧问题
- 定义所有权规则以自动分配
- 为常见警报类型创建运行手册
- 使用指标警报进行SLO监控