将New Relic与Sitecore一起使用

将New Relic与Sitecore一起使用,sitecore,newrelic,Sitecore,Newrelic,我正在用Sitecore CMS测试New Relic。所有NewRelic web事务都被发送到项目布局文件,因此我无法深入了解NewRelic中的项目级详细信息 我试图使用New Relic API调用SetTransactionName,并将其设置为items URL,但似乎无法使其正常工作。我已经创建了一个httprequestbegin管道处理器,并将它放在了末尾,紧接着: <processor type="Sitecore.Pipelines.HttpRequest.Execu

我正在用Sitecore CMS测试New Relic。所有NewRelic web事务都被发送到项目布局文件,因此我无法深入了解NewRelic中的项目级详细信息

我试图使用New Relic API调用
SetTransactionName
,并将其设置为items URL,但似乎无法使其正常工作。我已经创建了一个
httprequestbegin
管道处理器,并将它放在了末尾,紧接着:

<processor type="Sitecore.Pipelines.HttpRequest.ExecuteRequest, Sitecore.Kernel"/>

你知道我可能做错了什么吗?所有web事务仍然显示为项目布局文件。

我正在
httpRequestProcessed
管道中设置事务名称,这是有效的。开始时使用的是
httpRequestBegin
,但我发现它每次都不起作用。还要记住,在NewRelic接收请求之前,执行请求的时间必须超过500毫秒

我对Sitecore所做的其他集成点:

  • 使用
    NoticeError
  • HttpModule提取应用程序错误并使用
    NoticeError
  • 使用项目路径命名事务,并使用
    AddCustomParameter
    添加语言、数据库、用户等

大约18个月前,当我们开始在Sitecore应用程序中使用New Relic时,我们遇到了类似的问题。不幸的是,当时没有人使用带有Sitecore的New Relic。我们决定将以下代码添加到我们站点中每个页面都继承的基本页面类中:

    // --- 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的时候,情况可能不再如此)。

市场上有一个模块可以解决所有这些问题:


请注意,这是不鼓励的,因此答案应该是搜索解决方案的终点(而不是参考文献的另一个中途停留,随着时间的推移,这些参考文献往往会过时)。请考虑在这里添加一个独立的概要,把链接作为一个参考。你能把你写的Log4NETApple分享到漏斗日志条目吗?@ Piedone,当然,你可以这样说:@ PBLIN你有兴趣把它变成一个社区模块吗?如果您准备与我共享代码,我将对其进行泛化并打包以供市场使用。
    // --- 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);