2014-10-29 59 views
3

Helllo,如何忽略來自New Relic儀表板的特定錯誤

我的應用程序是一個Web服務器,可以觸發很多請求到其他服務器。我們爲這些請求設置了最大超時時間,並且每當達到超時時間,連接就會關閉,並且ESOCKETTIMEDOUT上升。

Error: socket hang up 
at createHangUpError (http.js:1472:15) 
at Socket.socketCloseListener (http.js:1522:23) 
at Socket.EventEmitter.emit (events.js:117:20) 
at TCP.close (net.js:465:12) 

我想從New Relic Dashboard中排除這些錯誤,因爲它們會扭曲錯誤率和其他指標。隱藏它們也不起作用,因爲它們仍然計入錯誤率。

如何從我的儀表板中刪除特定的錯誤(沒有HTTP狀態碼)?

回答

0

我注意到你有javascript,我不確定我的解決方案是否可以幫助你,但我會在希望它回答。

我使用Java代理,並且遇到同樣的問題。到目前爲止,我發現可以做一些我想要的東西的唯一方法是將特定的錯誤包裝在一個專用的異常(「NewRelicIgnorableException」)中,幷包裝我不想在其中看到的任何錯誤。

然後,我必須進入儀表板/應用程序並選擇「錯誤收集」。最後,我會用完整的包名稱和異常類名填寫「忽略這些錯誤」,例如com.mypackage.NewRelicIgnorableException。保存並享受。這些特定的錯誤不應該影響你的apdex,但他們仍然會計入RPM和其他指標。

其他解決方案有缺點。例如,如果我調用ignoreexception,則RPM和時間度量標準將不計數。如果你點擊「隱藏錯誤」按鈕,你只能將它們從錯誤面板中隱藏起來,但其他一切都會照常。如果你忽略了狀態碼,你可以得到或多或少的結果,而忽略特定的異常,但沒有任何希望進行精細控制。

很遺憾,他們的網站上只有很少的文檔,我不得不運行測試來發現這些。

3

您可以將狀態代碼忽略到錯誤收集器。如果您使用環境變量配置New Relic代理,則可以使用逗號分隔的代碼列表作爲NEW_RELIC_ERROR_COLLECTOR_IGNORE_ERROR_CODES的值。

請參閱the README

如果使用newrelic.js這樣做,你可以設置error_collector.ignore_codes值的狀態代碼數組忽略:

example config

重要的警告:手動設置此值時要覆蓋的404的默認值,這意味着如果你沒有在你的手動配置中指定404錯誤收集器將開始記錄應用程序中的所有404錯誤(您可能不想要)。