问题标签 [raven]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 将 gunicorn 记录到哨兵而不是日志文件
我有一个使用 gunicorn 启动脚本的 Django 网站。它当前在日志文件中记录错误。
我正在尝试将其更改为登录到哨兵(我已经在 settings.py 中运行和配置)
这是启动脚本
我已将其更改为
这似乎导致网站崩溃(坏网关)
这是我的 settings.py 日志设置:
我认为这可能与 LOG LEVEL 设置有关,但我不确定,欢迎提出任何建议,谢谢
python - 如何配置哨兵以记录从 django 应用程序抛出的所有未捕获的异常?
老实说,我认为这是开箱即用的......
我有自己的哨兵服务器启动并运行。我的 django 应用程序完全按照此处所述进行配置:http ://raven.readthedocs.org/en/latest/config/django.html 。Raven 连接已经过测试,所以我知道我的哨兵服务器是可以访问的。
现在我的模型中有这段代码:
现在我在调试模式下运行'python manage.py runserver'。
我看到一堆这样的东西:
但是没有错误记录到哨兵。为什么?
python - Django sentry 默认标签
我正在使用 python-raven 自动捕获我的 django 项目中的所有 500 个,并且效果很好。我还转发了一些我处理的异常并将它们附加一个特殊标签以便能够将它们过滤掉。问题是我无法过滤缺少特定标签的消息,因此我想为所有消息设置默认标签,但无法使其正常工作。
我已经尝试了以下方法,但它只是被忽略了。
有谁知道如何将默认标签发送到哨兵?
python - 当 Django settings.py 中的 DEBUG = False 时,Raven/Sentry 不起作用
我已经安装了 Sentry(6.3.2)/Raven(3.5.1) 来监控我的 Django 1.5.5 应用程序,如果我的应用程序在我的 settings.py 中设置为 DEBUG=True,它就可以工作。但是,如果我将其设置为 False,则不再有错误消息到达 Sentry。我的 Raven 应用程序在使用“python manage.py raven test”进行测试时肯定可以工作(除了在调试模式下运行 Django 时出现的错误消息)。Sentry 在与我的 Django 应用程序不同的虚拟环境中运行,它们都通过 Nginx 反向代理运行。我正在运行 python 2.6。
我的 settings.py 看起来像这样:
我的 sentry.conf.py 是这样的:
在 Django 不处于调试模式时,如何让 Raven/Sentry 运行?
非常感谢您的帮助!
更新: 我只是想补充一点,即使调试模式关闭,我也会在 Sentry 上收到“SuspiciousOperation:无效的 HTTP _ HOST 标头(您可能需要设置 ALLOWED _ HOSTS) ”错误消息。
这些消息中的大部分来自这样一个事实,即我已从我的 ALLOWED_HOSTS 列表中删除了我以前的一个域,并且机器人仍在寻找它。
只是为了澄清一下:我在非调试模式下没有收到的消息是我在我的代码中放入“assert False”或者只是输入一些随机字符串来抛出错误的消息。
python - 本地 Django 服务器重定向到 Sentry 服务器
我已经设置了一个本地 django 服务器以及曾经位于的 celery 127.0.0.1
(我可以在运行命令时调整端口python manage.py runserver <port>
)。
然后,我想为我的应用设置 Sentry。我按照快速入门说明执行此操作。这是我在我的sentry.conf.py
这就是我在我的settings.py
我必须添加,ALLOWED_HOSTS = ['*']
否则python manage.py raven test
会由于可疑标题而失败。而且我必须添加from sentry.conf.sever import *
,因为否则我会在未设置一些哨兵变量的情况下遇到 raven 错误。设置 Sentry 后,我可以从127.0.0.1:9000
.
但是,我无法访问我的 django 应用程序。每次我去 127.0.0.1:8000 时,我都会被重定向到哨兵登录(登录后会出现内部服务器错误,因为它不在端口 9000 上)。此外,从控制台查看日志,SuspiciousOperation: Invalid HTTP_POST header
如果我没有放在文件ALLOWED_HOSTS = ['*']
末尾,我会看到一个错误settings.py
。
如何在同一 IP (localhost) 和不同端口上本地运行 django 应用程序和 Sentry?
python - 蟒蛇。发送部分帧
在我们的项目中,raven 花费了很多时间来创建并向 Sentry 发送消息。我们检查了创建有关帧的数据的许多时间成本,但我们并不经常需要有关所有帧的数据。是否有可能以及如何在出现异常或错误的帧之前创建关于并非所有帧的数据,大约在最后 2-3 帧,然后通过 raven 将其发送到哨兵。或者可能在消息级别上创建依赖全栈/部分栈?即在关键或异常或错误级别发送完整的堆栈和在调试或警告级别只是帧的一部分。
python - 如何防止来自 celery 任务的重复异常日志记录
第二次编辑:经过一番挖掘,问题从如何使用局部变量记录异常变为如何防止 celery 发送没有本地变量的第二条日志消息。在下面的尝试之后,我实际上注意到我总是收到两封电子邮件,一封每帧带有本地变量,另一封没有。
第一次编辑:我设法通过添加自定义 on_failure 覆盖来获取局部变量(对所有任务使用注释,如下所示:
但现在的问题是错误出现了 3 次,一次通过 celery 记录器,两次通过 root(尽管我没有在我的日志记录设置中传播“celery”记录器)
原始问题: 我有一个 django/celery 项目,我最近添加了一个哨兵处理程序作为级别为“错误”的根记录器。这适用于 django 中发生的大多数错误和异常,除了来自 celery 工人的错误和异常。
发生的情况是哨兵接收到一个带有回溯和守护进程本地变量的异常,但不包括f_locals
堆栈中每个帧的(本地变量)。这些确实出现在正常的 python/django 异常中。
我想我可以尝试捕获所有异常并手动使用 exc_info 记录。但这并不理想。
javascript - _oldOnerrorHandler 未定义;if 语句仍然运行
我有一个页面上有乌鸦。URL 可以在屏幕截图中看到,但无关紧要。
在 Sentry(记录 raven 错误的服务)中,我看到数千个与调用未定义函数相关的错误,这些错误将我带到了这个断点。
从屏幕截图中,变量_oldOnerrorHandler
未定义。此时观察到的表达式_oldOnerrorHandler
和_oldOnerrorHandler
变量都未定义。因此,该行if (_oldOnerrorHandler)
不应该执行。
从上面的截图可以看出 if 语句的内容确实在运行,也就是说_oldOnerrorHandler
不假。这在 JavaScript 中是如何实现的,以及存在哪些可能的解决方案来防止此错误?
nginx - 无法到达 Sentry 日志服务器:EOF 发生违反协议
我在 HTTPS 模式下设置 Sentry 服务器时遇到问题。Raven(Sentry 客户端)时不时地将这个错误消息写入日志文件:
Web UI 工作正常。绝大多数来自 Raven 的消息都被很好地接收,Sentry 将它们处理成可用的输出。但是,由于这些错误,有时会丢失一些东西。
我试图弄清楚这一点,但死胡同似乎紧随其后。基本上看起来很像这样:
Python Requests requests.exceptions.SSLError: [Errno 8] _ssl.c:504: EOF 发生违反协议
但是,当使用 TLS 1.2 用类似的 s_client 查询测试我的 Sentry 服务器时,它会导致一个有效的会话,这与那里的示例不同。
这也与此无关,因为未使用 SNI:
python-requests 2.0.0 - [Errno 8] _ssl.c:504: EOF 发生违反协议
我无法连贯地重现错误。Raven 的测试通过并且没有严重错误,直到日志中弹出错误。
我的设置是:Python 2.7.5 中的 Raven 4.2.1,Nginx 1.6.0 作为处理 HTTPS 的反向代理,最后是带有默认 Gunicorn 0.17.4 的 Sentry 6.4.4。Nginx 配置与官方文档 ( http://sentry.readthedocs.org/en/latest/quickstart/nginx.html )非常相似,但由于 HTTPS 而做了一些更改。
javascript - 仅捕获命名空间内的错误
是否可以将raven-js配置为忽略不在定义命名空间内的错误?
因此Foo.raiseWithinNamespace
将被捕获并被raiseOutOfNameSpace
忽略。