我正在使用Sitecore CMS测试New Relic。所有New Relic Web事务都被发送到items布局文件,因此我无法在New Relic中钻取项目级别的详细信息。
我正在尝试使用New Relic API来调用SetTransactionName
并将其设置为项目URL,但我似乎无法使其工作。我已经创建了一个httprequestbegin
管道处理器,我已经把它放在最后,紧接着:
<processor type="Sitecore.Pipelines.HttpRequest.ExecuteRequest, Sitecore.Kernel"/>
我安装了New Relic API程序集,并且也在我的bin文件夹中。这是我试图运行的代码行。
NewRelic.Api.Agent.NewRelic.SetTransactionName("Custom", Sitecore.Context.RawUrl);
任何想法我可能做错了什么?所有Web事务仍显示为项目布局文件。
答案 0 :(得分:1)
我在httpRequestProcessed
管道中设置了事务名称并且可以正常工作。使用httpRequestBegin
开始,但我发现每次都不起作用。还要记住,在NewRelic选择之前,您的请求必须花费超过500毫秒才能执行。
我使用Sitecore做的其他集成点:
NoticeError
NoticeError
AddCustomParameter
添加语言,数据库,用户等。答案 1 :(得分:1)
市场上有一个模块可以对所有这些进行排序:
答案 2 :(得分:0)
当我们在大约18个月前开始使用New Relic和Sitecore应用程序时,我们遇到了类似的问题。遗憾的是,当时没有人使用New Relic和Sitecore。我们确定的是将以下代码添加到我们网站中每个页面都继承的基页面类:
// --- Set custom transaction name for New Relic.
NewRelic.Api.Agent.NewRelic.SetTransactionName("Pages", Sitecore.Context.Item.Template.FullName));
// --- Set custom parameter to store raw url to assist with diagnostics.
NewRelic.Api.Agent.NewRelic.AddCustomParameter("RawUrl", Request.RawUrl);
对于我们的应用程序模板名称足以区分趋势,我们添加了自定义参数来填充整个RawUrl(我们注意到New Relic没有为我们捕获完整URL的时候的奇怪,可能不是这种情况不再)。