从特定请求中删除New Relic.NET代理RUM代码

从特定请求中删除New Relic.NET代理RUM代码,.net,newrelic,.net,Newrelic,我们正在使用.NET版本的New Relic。似乎在输出时,New Relic解析输出以查看是否包含任何元素,并在其前面插入var NREUMQ=…脚本 我的问题是,在一个特定的封闭源代码页面上,有一行js读取 document.write("<html><head></head><body></body></html>"); document.write(“”); …New Relic然后把它变成 document.w

我们正在使用.NET版本的New Relic。似乎在输出时,New Relic解析输出以查看是否包含任何
元素,并在其前面插入
var NREUMQ=…
脚本

我的问题是,在一个特定的封闭源代码页面上,有一行js读取

document.write("<html><head></head><body></body></html>");
document.write(“”);
…New Relic然后把它变成

document.write("<html><head><script type="text/javascript">var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()]);</script></head><body></body></html>");
document.write(“var NREUMQ=NREUMQ | | |[];NREUMQ.push([“标记”、“第一字节”、新日期().getTime());”;
…这会引起很大的麻烦,因为新的遗留代码没有逃脱

我想做的是告诉New Relic不要在这个特定页面上插入代码,因为我无法编辑该页面

干杯

这里是修改后的代码,格式很好-为了您的观看乐趣(不是响应中的实际内容)

document.write(“
var NREUMQ=NREUMQ | |[];
NREUMQ.push([“标记”、“第一字节”、新日期().getTime()]);
");

编辑2017-01-25
(新网址)


原创帖子
我已经收到了New Relic support的答复。这是

你好,迈克尔

这是一个奇妙的问题!有一种非常直接的方法 完成你想做的事

Net代理将javascript片段注入到标头和 发送到用户浏览器以测量页面负载的页面页脚 用户端的时间。我们称此功能为真正的用户监控或 简称朗姆酒。有关这方面的更多信息,请参见:

如果希望在所有可以编辑的页面上完全禁用RUM
newrelic.config
并更改此行:

<browserMonitoring autoInstrument="true"/>

为此:

<browserMonitoring autoInstrument="false"/>

您可以在单个页面上禁用RUM和/或手动指定位置 RUM页眉/页脚片段通过使用 .Net代理API调用。若要使用此库,请添加对的引用 将NewRelic.Api.Agent.dll添加到项目中。应该在中找到DLL 此文件夹:
%ProgramFiles%\New Relic\.NET代理“

然后,您可以使用此API调用在特定页面上禁用RUM:

或者,您可以手动将头部和脚部注射到您想要的位置 他们将使用以下API调用:


我今天遇到了同样的问题。我能够通过让Javascript在客户端上结合“he”和“ad”来修复它。这可以防止New Relic朗姆酒看到头部标签


document.write(“”)

我只想补充杰拉德的答案。。他的解决方案对我很管用,但我也不得不拆开尸体标签。。New Relic考虑周到,在检测不到我原来的头标签后,在我的身体标签之前添加了自己的头标签


作为旁注-这种自动插入在多个项目中给我带来了很多痛苦。

实际上有一个更简单的解决方案,可以将一行代码添加到cshtml或aspx文件中:

NewRelic.Api.Agent.NewRelic.DisableBrowserMonitoring();

是的,这就是我想做的,但是生成
文档的代码。write
是一个封闭源代码的第三方二进制文件:啊,这肯定让事情复杂化了。我想你可以重写document.write并添加必要的代码来分解head标签,但最好的答案可能是按照上面的建议禁用自动注入。哈!实际上,为了安全起见,我在代码中也分解了body标签。我把它从我分享的例子中删除了,因为我认为这没有必要。请随意编辑我的答案!如果您有权将服务器端代码添加到页面中,那么这一切都很好。。
NewRelic.Api.Agent.NewRelic.DisableBrowserMonitoring();