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

自建Sentry事件保留异常:升级后无法查看全量历史事件

解决Sentry WebUI仅显示90天事件的问题

1. 检查并修改ClickHouse表的TTL配置

Sentry在ClickHouse中的sentry_local、discover_local等表可能带有默认90天的TTL(生存时间)配置,这会导致旧数据被标记为过期,WebUI无法检索。需要手动调整:

  • 登录ClickHouse客户端:clickhouse-client
  • 查询表的TTL设置:
    SHOW CREATE TABLE sentry_local;
    SHOW CREATE TABLE discover_local;
    
  • 如果输出包含TTL timestamp + INTERVAL 90 DAY,执行ALTER语句修改为3650天:
    ALTER TABLE sentry_local MODIFY TTL timestamp + INTERVAL 3650 DAY;
    ALTER TABLE discover_local MODIFY TTL timestamp + INTERVAL 3650 DAY;
    
    注意:若存在discover_local_*这类分区表,需同步修改对应配置。

2. 确认Sentry全局配置的retention参数

检查sentry.conf.py文件,避免硬编码配置覆盖环境变量:

  • 查找是否存在SENTRY_EVENT_RETENTION_DAYS = 90这类配置
  • 若有,修改为3650或直接注释,让.env中的设置生效

3. 验证旧事件的实际存储状态

确认ClickHouse中的旧数据未被物理删除:

  • 查询90天前的事件数量:
    SELECT count(*) FROM sentry_local WHERE timestamp < now() - INTERVAL 90 DAY;
    SELECT count(*) FROM discover_local WHERE timestamp < now() - INTERVAL 90 DAY;
    
  • 若结果大于0,说明数据存在,只是TTL限制了WebUI的检索;若结果为0,需从备份恢复旧数据。

4. 检查Sentry内部清理任务

即使移除了sentry-cleanup服务,Sentry后台可能仍有其他清理任务:

  • 进入Sentry管理后台的Settings > Cron Jobs,查看cleanup.events这类任务的配置
  • 确认任务使用的retention天数为3650,若配置错误则修改参数,或禁用不必要的清理任务

5. 刷新缓存与索引

修改配置后,需重启服务并刷新索引:

  • 重启Sentry服务:docker-compose restart web worker cron
  • 手动触发索引更新:
    docker-compose exec web sentry cleanup --days 3650
    docker-compose exec web sentry update-index
    

内容的提问来源于stack exchange,提问作者Боян Бонев

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:44:59