我正在尝试在我的Web API中使用New Relic的.NET代理,但所有请求都显示为System.Web.Http.WebHost.HttpControllerHandler
,这正是文档known issues section所说的
MVC 4(注意:New Relic为MVC4的ASP .NET Web API提供有限的支持。所有Web API事务都将显示为 HttpControllerHandler,而不是Web API控制器的名称。)
我正在寻找能够产生更具人性化的仪表板的任何解决方法,我的应用程序或IIS中是否有任何配置可以更改为在我的仪表板中有更有意义的指标?或者有没有办法实现API调用以改变这种行为?
答案 0 :(得分:2)
NewRelic发布了.NET代理的更新,可以解决您的问题。
请参阅:https://newrelic.com/docs/releases/dotnet。 “改进了WebAPI支持。您现在应该看到按[controller]。[action]分组的Web事务,而不是报告为System.Web.Http.WebHost.HttpControllerHandler的所有WebAPI事务。”
答案 1 :(得分:1)
通过API设置事务名称可以获得更好的结果。但是,在New Relic改进对ASP.NET Web API的整体支持之前,没有办法随意将内容填充到Web事务中。
https://newrelic.com/docs/dotnet/the-net-agent-api SetTransactionName()
此外,如果您指定要跟踪的某些方法,当事情很慢并且生成事务跟踪时,您将看到这些自定义方法跟踪器出现在跟踪详细信息树视图中。
答案 2 :(得分:0)
这是一个相当古老的帖子,但我花了很多时间研究类似的问题,在我的情况下,这些延迟只出现在POST消息中有http消息有请求内容的时候。
从长远来看,这是由于网络性能问题(移动客户端)和POST试图读取需要很长时间才能传输的消息正文。在控制器处理程序中显示的这些延迟实际上只是在等待请求主体的传输。