我正在为R日志包添加一个哨兵处理程序.目前,django-sentry基于共享密钥验证客户端(应用程序发送日志记录),该共享密钥在安全通道中以明文传输.
我想知道是否可以从R进行加密,最好是非对称的,基于公钥,但我发现没有任何相关性.
好吧,不是"如果可能的话",而是"怎么做"以及是否有人已经这样做了.
在与django-sentry的作者交互之后,我们选择了hmac,我已经在digestR包中实现了(版本0.5+包含它).这并没有回答这个问题:"如何使用加密R数据",但它解决了形成了我最初的问题的基础问题.
在这一点上,我不再更加积极地参与R中的不对称编码,但是,如果您对它感兴趣并且想要提供想法或代码,请在此处留言!
我有一个使用Sentry进行异常跟踪的Spring Boot应用程序,我遇到了一些如下所示的错误:
ClientAbortExceptionorg.apache.catalina.connector.OutputBuffer in realWriteBytes
errorjava.io.IOException: Broken pipe
Run Code Online (Sandbox Code Playgroud)
我的理解是,它只是一个网络错误,因此我通常应该忽略它们.我想要做的是IOExceptions向Librato 报告所有其他和记录损坏的管道,这样我就可以关注我得到的数量(一个尖峰可能意味着客户端存在问题,这也是我用Java开发的):
我想出了这个:
@ControllerAdvice
@Priority(1)
@Order(1)
public class RestExceptionHandler {
@ExceptionHandler(ClientAbortException.class)
@ResponseStatus(HttpStatus.SERVICE_UNAVAILABLE)
public ResponseEntity<?> handleClientAbortException(ClientAbortException ex, HttpServletRequest request) {
Throwable rootCause = ex;
while (ex.getCause() != null) {
rootCause = ex.getCause();
}
if (rootCause.getMessage().contains("Broken pipe")) {
logger.info("count#broken_pipe=1");
} else {
Sentry.getStoredClient().sendException(ex);
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
这是解决这个问题的可接受方式吗?
我按照文档的方式配置了Sentry:
@Configuration
public class FactoryBeanAppConfig {
@Bean
public HandlerExceptionResolver sentryExceptionResolver() {
return new SentryExceptionResolver();
}
@Bean
public ServletContextInitializer sentryServletContextInitializer() {
return new SentryServletContextInitializer(); …Run Code Online (Sandbox Code Playgroud) 设置源地图的方法有两种:将其托管在站点上并在捆绑的文件中引用,或者将其直接上传到哨兵之类的服务中。我正在尝试完成后者。问题在于,如果没有将文件路径写入捆绑文件,似乎就无法使用angular cli生成源地图。
我的第一个想法是拥有两个版本-一个带有源映射生成,另一个不带。然后,我只部署没有源映射的构建,并将包含它们的构建上载到哨兵。那是行不通的,因为包的文件名是不同的(角度cli使用文件哈希作为缓存清除的文件名,当您生成源地图时,它将路径添加到.map文件作为注释的末尾,从而导致哈希和文档名称)。
我的另一个选择是使用源地图进行构建,将其上传到哨兵,然后在部署站点之前删除地图文件。那里的问题是捆绑文件仍然包含对现在不存在的映射文件的引用。这本身不应该是一个问题,但是它可能会引起扩展程序或浏览器的问题,并且似乎是一个棘手的解决方案。
您将如何在构建过程中实施类似的操作?
Sentry可以检测与异常相关的其他数据,例如:

你如何用你自己的additional data字段从Python(它是一个Django应用程序)中引发这样的异常?
即使错误成功发送,Sentry Dashboard未更新的原因是什么?
我已经尝试模拟错误并在Raven库中记录整个过程,从获取异常到发送到哨兵.Raven返回了一个200 Http代码(成功)但是当我检查它到Sentry Dashboard时,日志是空的.
我们的Raven版本是0.9.0
更新:
我已经试过了乌鸦CLI测试仪如图所示这里,它成功地发送了异常,但没有记录在哨兵仪表板显示.
更新:
通过重新安装Sentry并使用新的dsn解决了这个问题.如果有其他解决方案不需要重新安装和使用新的dsn.随意分享您的答案.
框架/SDK版本:
Flutter: 3.10.4
Dart: 3.0.3
Run Code Online (Sandbox Code Playgroud)
这是我的main()代码:
Future<void> main() async {
//debugPaintSizeEnabled = true;
//BindingBase.debugZoneErrorsAreFatal = true;
WidgetsFlutterBinding.ensureInitialized();
EasyLocalization.ensureInitialized()
.then((value) => Fimber.plantTree(DebugTree()))
.then((value) => SentryFlutter.init(
(options) {
options.dsn = '***';
// Set tracesSampleRate to 1.0 to capture 100% of transactions for performance monitoring.
// We recommend adjusting this value in production.
options.tracesSampleRate = 1.0;
//options.attachScreenshot = true;
},
appRunner: () => runApp(
EasyLocalization(
supportedLocales: const [Locale('en', 'US'), Locale('de', 'DE')],
path: '../assets/translations/',
fallbackLocale: const Locale('en', 'US'),
assetLoader: const CodegenLoader(),
child: …Run Code Online (Sandbox Code Playgroud) 我目前正在基于Django的项目中处理Celery任务.我们将raven配置为将所有未捕获的异常和日志消息发送到Sentry,如文档中所述.
一切都很好,除了芹菜任务中未被捕获的异常.例如,如果我运行此任务:
@app.task
def test_logging():
log.error('Testing logging inside a task')
raise IndexError('Testing exception inside a task')
Run Code Online (Sandbox Code Playgroud)
我只在Sentry中看到log.error(...)但未被IndexError捕获的异常.我尝试try-except在log.exception(...)内部使用一个块来处理异常并且它确实有效,但我认为它不可扩展来捕获这样的所有异常.
所以,问题只是未被捕获的异常,以某种方式处理不当.
这些是我目前的包版本:
celery (3.1.17)
raven (5.1.1)
Django (1.7.1)
Run Code Online (Sandbox Code Playgroud)
你能帮助我朝某个方向前进吗?
谢谢你的时间!
我们目前正在使用 Sentry 错误跟踪软件来查找 JavaScript 错误。我们一直收到以下错误:
Can't find variable: SymBrowser_ModifyWindowOpenWithTarget
在 iOS 上通过 Safari 浏览器查看我们的 react webapp 时似乎正在发生。
该问题并非特定于任何版本的 iOS,但似乎主要发生在 iOS 版本 11.4.1 上。
我试图自己重现这个问题,但没有运气,我很好奇是否有人以前见过这个问题。
我一直在我的哨兵例外中得到以下错误
AttributeError: 'RegexURLResolver' object has no attribute '_urlconf_module'
跟踪只指向带有django代码库的代码,而不指向我的应用程序中的任何位置.我的日志也很干净.这可能是什么原因?
raise Resolver404({'path' : path})
@property
def urlconf_module(self):
try:
return self._urlconf_module
except AttributeError:
self._urlconf_module = import_module(self.urlconf_name)
return self._urlconf_module
@property
'self'
<RegexURLResolver urls (None:None) ^/>
Run Code Online (Sandbox Code Playgroud) 到目前为止,我们py.test通过詹金斯打电话.
如果测试失败,我们会看到通常的堆栈跟踪
Traceback (most recent call last):
File "/home/u/src/foo/bar/tests/test_x.py", line 36, in test_schema_migrations
errors, out))
AssertionError: Unknown output: ["Migrations for 'blue':", ...]
Run Code Online (Sandbox Code Playgroud)
如果我能看到django调试页面中的局部变量(请参阅https://djangobook.com/wp-content/uploads/figure2_3a.png),那真的很棒.
......但是如果我想看到它们,它们应该只是可见的.我想这意味着我需要一种不同于文本的格式.也许HTML?
有没有办法实现这个?
我从未使用过Sentry工具.但是AFAIK可以显示带有局部变量的精美回溯.