4

我正在使用 Sitecore CMS 测试 New Relic。所有 New Relic 网络事务都被发送到项目布局文件,因此我无法深入了解 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 事务仍显示为项目布局文件。

4

3 回答 3

1

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

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

于 2014-02-12T10:18:16.680 回答
1

我在httpRequestProcessed管道中设置事务名称并且有效。开始使用,httpRequestBegin但我发现不是每次都有效。还请记住,在 NewRelic 接收请求之前,您的请求必须花费超过 500 毫秒的时间才能执行。

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

  • 使用向 NewRelic 报告的 Log4Net AppenderNoticeError
  • HttpModule 拾取 Application_Error 并使用向 NewRelic 报告NoticeError
  • 使用项目路径命名交易并用于AddCustomParameter添加语言、数据库、用户等。
于 2013-07-05T15:26:07.573 回答
0

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

    // --- 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 时的奇怪之处,可能不再是这种情况了) .

于 2013-07-08T11:07:00.073 回答