12

即使成功发送错误,Sentry Dashboard 也没有更新的原因是什么?

我尝试过模拟错误并将整个过程记录在 Raven 库中,从获取异常到发送到哨兵。Raven 返回了一个 200 Http 代码(成功),但是当我将它检查到 Sentry Dashboard 时,日志是空的。

我们的 Raven 版本是 0.9.0

更新:

我已经尝试过 Raven CLI 测试器,如此处所示,它成功发送了异常,但 Sentry 仪表板中没有显示日志。

更新:

通过重新安装 Sentry 并使用新的 dsn 来解决此问题。如果有其他解决方案不需要重新安装和使用新的 dsn。随时分享您的答案。

4

1 回答 1

2

如果您使用的是 SENTRY ON-PREMISE,如果工作进程未运行或您的队列未备份,则可能会发生这种情况。官方文档说:

Sentry 带有一个内置队列,可以以更异步的方式处理任务。例如,当一个事件出现而不是立即将其写入数据库时​​,它会向队列发送一个作业,以便可以立即返回请求,并且后台工作人员会实际处理保存该数据。

请注意,它依赖 Celery 库来管理工人。所以从 CLI 运行一个 worker 可能会解决这个问题:

$ sentry celery worker

建议将其作为服务运行,使用主管的示例配置:

[program:sentry-worker]
directory=/www/sentry/
command=/www/sentry/bin/sentry celery worker -l WARNING
autostart=true
autorestart=true
redirect_stderr=true
killasgroup=true

Sentry 支持两个主要代理,可以根据您的工作量进行调整:

RabbitMQ  and `Redis`

.

雷迪斯

默认代理是 Redis,可以在大多数情况下工作。使用 Redis 的主要限制是所有待处理的工作必须适合内存。

BROKER_URL = "redis://localhost:6379/0"

如果您的 Redis 连接需要密码进行身份验证,则需要使用以下格式:

BROKER_URL = "redis://:password@localhost:6379/0"

兔MQ

如果您在高负载下运行,或者担心将待处理的负载放入内存中,那么 RabbitMQ 是支持 Sentry 工作人员的理想人选。

BROKER_URL = "amqp://guest:guest@localhost:5672/sentry"
于 2016-05-04T09:47:45.417 回答