我正在使用 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);
你知道我可能做错了什么吗?所有网络交易仍然显示为项目布局文件。
我在
httpRequestProcessed
管道中设置事务名称并且有效。开始使用 httpRequestBegin
但我发现它并不每次都起作用。另请记住,您的请求必须花费超过 500 毫秒的时间才能执行,NewRelic 才会接收它。
我与 Sitecore 进行的其他集成点:
NoticeError
NoticeError
AddCustomParameter
添加语言、数据库、用户等。市场上有一个模块可以解决所有这些问题:
大约 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 时的奇怪之处,现在可能不再是这种情况了).
听起来您已经采取了正确的步骤,使用 New Relic API 的
SetTransactionName
方法并将其放入 httpRequestBegin
管道中。但是,如果事务仍分组在布局文件下,请考虑以下事项:
确保您的自定义处理器确实正在执行。您可以通过添加日志语句来验证这一点。
仔细检查 New Relic 代理是否已正确配置以识别 API 调用。有时,代理可能需要重新启动才能获取新配置。
确保 New Relic API 程序集版本与您的 Sitecore 版本兼容。
我们正在寻找 New Relic 订阅者来参与付费研究项目。我们是一家市场研究公司,我们的目标是更好地了解企业。如果您有兴趣并想了解更多信息,请给我留言或查看我们的项目:https://www.data-bees.com/projects/new-relic/.