使用Sitecore的New Relic

时间:2013-07-05 05:22:29

标签: sitecore newrelic

我正在使用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事务仍显示为项目布局文件。

3 个答案:

答案 0 :(得分:1)

我在httpRequestProcessed管道中设置了事务名称并且可以正常工作。使用httpRequestBegin开始,但我发现每次都不起作用。还要记住,在NewRelic选择之前,您的请求必须花费超过500毫秒才能执行。

我使用Sitecore做的其他集成点:

  • 使用NoticeError
  • 向NewRelic报告的Log4Net Appender
  • HttpModule使用NoticeError
  • 获取Application_Error并向NewRelic报告
  • 使用项目路径命名事务并使用AddCustomParameter添加语言,数据库,用户等。

答案 1 :(得分:1)

市场上有一个模块可以对所有这些进行排序:

http://marketplace.sitecore.net/en/Modules/New_Relic.aspx

答案 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的时候的奇怪,可能不是这种情况不再)。