2013-05-31 83 views
4

我想在我的Web API使用了New Relic的.NET代理,但所有請求都被顯示爲System.Web.Http.WebHost.HttpControllerHandler,這正是該文檔known issues sectionNew Relic的的ASP.NET Web API

MVC 4(注:新的文物提供了ASP .NET的Web API爲MVC4有限支持所有的Web API交易將顯示爲 HttpControllerHandler,不作爲web API控制器的名稱)

我要找什麼解決辦法這會產生一個更具人性化的儀表盤,我的配置是否有任何配置應用程序或IIS,我可以更改在儀表板中具有更有意義的指標?或者是否有一種實現API調用的方式來改變這種行爲?

回答

2

NewRelic的已發佈的更新到.NET代理應該解決您的問題。

參見:https://newrelic.com/docs/releases/dotnet。 「改進的WebAPI支持,現在您應該看到[Transactions] [action]分組的web事務,而不是所有WebAPI事務報告爲System.Web.Http.WebHost.HttpControllerHandler。」

1

通過API設置事務名稱,您可能會獲得更好的結果。但是,在New Relic提高對ASP.NET Web API的全面支持之前,沒有辦法將任何東西塞進網絡交易中。

https://newrelic.com/docs/dotnet/the-net-agent-api SetTransactionName()

另外,如果你指定某些方法來跟蹤,當事情很慢,被生成的事務跟蹤,你會看到這些自定義的方法示蹤劑出現在跟蹤信息樹視圖。

https://newrelic.com/docs/dotnet/CustomInstrumentation

0

這是一個相當古老的帖子,但我花了相當多的時間尋找類似的問題,在我的情況下,這些延遲只出現在POST消息中有http請求內容。

從長遠來看,這是由於網絡性能問題(移動客戶端),而POST正試圖讀取需要很長時間傳輸的消息正文。在控制器處理程序中顯示的這些延遲實際上只是等待請求主體被傳輸。