我已经在Java环境中设置了Jaeger,它可以很好地与跨度和跟踪的记录消息一起工作。但是,在捕获和记录异常时,我有点困扰。
try
{
span.log(ImmutableMap.of("Exeption", "ex"));
throw new IllegalArgumentException("Expecting one argument");
}
catch(Exception ex)
{
span.log(ImmutableMap.of("Error", ex));
span.log(ImmutableMap.of("Event", "error", "Error-object", ex, "message", ex.getStackTrace()));
}
但是,这种方式不会以良好的可读性方式格式化错误。
我已经四处寻找有关此的信息,因为这很明显应该存在,因为这是其记录的组件之一。但是我以某种方式从未见过。这主要是建造和结构跨度。希望任何人在捕获和登录例外时都能为我提供帮助。
这个问题看起来与java helf相比,要么是opentracing和jaeger。因为ex.getStackTrace()
更多是问题。因为它应该更像
StringWriter errors = new StringWriter();
ex.printStackTrace(new PrintWriter(errors));
span.setTag("error", true);
span.log(ImmutableMap.of("stack", errors));
解决问题。