将 New Relic 与 Sitecore 结合使用

问题描述 投票:0回答:4

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

你知道我可能做错了什么吗?所有网络交易仍然显示为项目布局文件。

sitecore newrelic
4个回答
1
投票

我在

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

我与 Sitecore 进行的其他集成点:

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

1
投票

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

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


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


0
投票

听起来您已经采取了正确的步骤,使用 New Relic API 的

SetTransactionName
方法并将其放入
httpRequestBegin
管道中。但是,如果事务仍分组在布局文件下,请考虑以下事项:

  1. 确保您的自定义处理器确实正在执行。您可以通过添加日志语句来验证这一点。

  2. 仔细检查 New Relic 代理是否已正确配置以识别 API 调用。有时,代理可能需要重新启动才能获取新配置。

  3. 确保 New Relic API 程序集版本与您的 Sitecore 版本兼容。

我们正在寻找 New Relic 订阅者来参与付费研究项目。我们是一家市场研究公司,我们的目标是更好地了解企业。如果您有兴趣并想了解更多信息,请给我留言或查看我们的项目:https://www.data-bees.com/projects/new-relic/.

© www.soinside.com 2019 - 2024. All rights reserved.