如何为从后台任务报告给New Relic的错误设置“URL”

时间:2013-03-14 22:02:45

标签: java error-reporting newrelic

New Relic中的事件:错误选项卡显示我的应用程序使用NewRelic.noticeError(exception)报告的异常(日期,时间,消息和堆栈跟踪)。对于从Web事务报告的那些,它显示了完美的事务的URL。但对于使用@Trace注释报告的后台任务,它会显示线程的名称。这没有意义,因为线程的名称类似于pool-23-thread-9927

我可以为每个后台任务指定一个显示名称,还是在报告错误时传递一个显示名称,以便它显示在 URL 列而不是线程的名称中?

注意:如果可以避免,我希望更改帖子的名称。

更新

以下是代码概述。该事务包含在PingJob中,用于捕获并报告异常。

public class PingJob implements Callable<PingStatus>
{
    @Trace(metricName = "ping", dispatcher = true)
    @Override
    public PingStatus call() {
        try {
            // calls that may throw exceptions
        }
        catch (RuntimeException e) {
            // pass to utility method to log and/or report to New Relic
            ExceptionLogger.log(e, LOG);
        }
    }
}

我在New Relic网站上看到ExceptionLogger报告的异常,但是URL列列出了线程的名称而不是事务,在本例中为ping

1 个答案:

答案 0 :(得分:1)

根据您在@Trace注释中设置的参数,您将看到New Relic UI中记录的错误URL的不同值,用于后台任务中的错误。

指定metricName并将dispatcher设为true,如

@Trace(metricName = "YourErrorNameHere", dispatcher = true)

会将显示的网址设置为 YourErrorNameHere

指定暂无metricName但仍将dispatcher设为true,如

@Trace(dispatcher = true)

会将显示的URL设置为您的类名/方法名,例如 com.example.task.BackgroundTask / run

如果您只是单独使用@Trace而未将dispatcher设置为true,则会显示该主题名称。

我们将来会更新我们的文档以使其更清晰。