2

New Relic 中的事件:错误NewRelic.noticeError(exception)选项卡显示我的应用程序使用. 对于那些从网络交易报告的交易,它显示了完美的交易 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

4

1 回答 1

1

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

指定metricName和 设置dispatchertrue,如

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

将显示的 URL 设置为YourErrorNameHere

指定 nometricName但仍设置dispatchertrue,如

@Trace(dispatcher = true)

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

如果你只是单独使用@Trace而不设置dispatchertrue,将显示线程名称。

我们将在未来更新我们的文档以使其更加清晰。

于 2013-03-29T15:45:52.700 回答