2013-03-14 16 views
2

事件:錯誤 New Relic中的選項卡顯示我的應用程序使用NewRelic.noticeError(exception)報告的異常(日期,時間,消息和堆棧跟蹤)。對於那些從網絡交易中報告的人來說,它顯示了完美的交易的URL。但對於使用@Trace註釋報告的後臺任務,它會顯示線程的名稱。這是沒有意義的,因爲這些線程的名字如pool-23-thread-9927如何爲從後臺任務報告給New Relic的錯誤設置「URL」

我可以爲每個後臺任務分配一個顯示名稱,或者在報告錯誤時傳遞一個顯示名稱,以便它在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); 
     } 
    } 
} 

我看到ExceptionLogger在New Relic的網站報道例外,但網址列中列出了線程,而不是交易的名稱,在這種情況下ping

回答

1

根據您在@Trace註釋中設置的參數,您將在後臺任務中看到New Relic UI中記錄的錯誤URL的錯誤值。

指定metricName和設置dispatchertrue,如

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

將設置所顯示的URL來YourErrorNameHere

不指定任何metricName,但仍然設置dispatchertrue,如

​​

將設置顯示的網址,你的類名/方法名,如com.example.task.BackgroundTask /運行

如果只是用本身@Trace沒有設置dispatchertrue,線程的名字將是顯示。

我們將在未來更新我們的文檔以使其更清晰。

+0

現在工作。在實際拋出異常的後臺任務中,我錯誤地將'@ Trace'註釋放在調用鏈的下一個方法中,以便在事務之外調用'noticeError'。 – 2013-03-29 22:22:07