PHP错误日志已成功发送到Sentry,但在Sentry仪表板上没有显示任何日志。

12
尽管错误已成功发送,为什么Sentry Dashboard没有更新的原因是什么?
我尝试模拟错误并记录整个过程,在Raven库中从获取异常到发送到Sentry。Raven返回了200 Http代码(成功),但当我检查Sentry Dashboard时,日志为空。
我们的Raven版本是0.9.0
更新: 我已经尝试了Raven CLI测试工具,如此处所示,它成功地发送了异常,但在Sentry Dashboard中没有显示日志。
更新: 通过重新安装Sentry并使用新的dsn,问题已解决。如果有其他解决方案不需要重新安装并使用新的dsn,请随意分享您的答案。

抱歉,我不明白...如果返回代码是200 OK,你期望的异常是什么? - Gestudio Cloud
当Raven客户端返回200 Http代码时,这意味着日志应该出现在我们的Sentry仪表板中,但我们的Sentry仪表板没有更新的错误日志。 - jhnferraris
1个回答

2
如果您正在使用SENTRY ON-PREMISE,可能是由于工作进程未运行或者队列没有备份导致的。官方文档指出:
Sentry内置了一个队列以更加异步地处理任务。例如,当事件到来时,它不会立即写入数据库,而是将作业发送到队列中,以便请求可以立即返回,后台工作者负责实际保存数据。
需要注意的是,它依赖于Celery库来管理工作进程。因此,从CLI运行工作进程可能会解决此问题。
$ sentry celery worker

建议将其作为服务运行,以下是使用supervisor的示例配置:

[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,通常情况下可以使用。使用Redis的主要限制是所有待处理任务都必须放在内存中。

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

如果您的Redis连接需要密码进行身份验证,您需要使用以下格式:
BROKER_URL = "redis://:password@localhost:6379/0"

RabbitMQ

如果您有高工作量或担心内存无法容纳待处理的工作量,那么RabbitMQ是作为Sentry工作者后台的理想选择。

BROKER_URL = "amqp://guest:guest@localhost:5672/sentry"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接