New Relic Browser and the .NET agent

With the .NET agent, you can add New Relic Browser instrumentation to your webpages either automatically or manually. To enable Browser in the user interface, see Browser settings. Then follow the procedures in this section to set up the .NET agent.

To use Browser with your .NET agent, ensure you have the latest release. For more information, see the .NET agent installation instructions.

Auto-instrumentation

The .NET agent automatically injects the New Relic Browser JavaScript header into any page that has a content-type of text/html and also has <head> tag within the page. The <head> tag search starts at the beginning of the DOM. The .NET agent injects the JavaScript header through the addition of an HttpModule that modifies the page using HTTP response filters before streaming the content to the user.

The first time you enable auto-instrumentation, you may need to clean your asp.net cache directory so that aspx pages are recompiled. Use the following command:

flush_dotnet_temp.cmd

With this injection, previously functioning pages may stop working if a content-type is not set correctly. To correct, review and update the content-types in your app or disable auto-instrumentation.

There is a known issue in version 4.2.185.0 of the .NET agent which prevents auto-injection in certain specific cases. This issue only affects WebForms websites running in integrated pipeline mode, and only occurs when navigating to the website's root URL.

Manual instrumentation via agent API

If you cannot enable auto-instrumentation, you can still include the Browser agent manually by using the New Relic .NET agent API and including appropriate code in your pages.

  1. To download the NewRelic.Api.agent.dll, re-run the installation and reference the .dll:

    • From the New Relic .NET agent directory, select the New Relic.Net agent section, then select API Assembly.
    • NuGet: Install and reference the .dll by running Install-package NewRelic.Agent.Api.
  2. To set up your web application to call the New Relic .NET agent API, add a reference to NewRelic.Api.Agent.dll to your project.
  3. Optional: If you are modifying the deployed application directory on the web server, copy NewRelic.Api.Agent.dll into the application's bin directory.
  4. Call the API in your <head> tag. If a meta-tag with the X-UA-COMPATIBLE http-equiv attribute exists, set it after that meta tag.
.NET Web Forms view engine

When using .NET Web Forms view engine, be sure to use = and not :. That way the view engine will recognize the string of HTML returned from the API as HTML / JavaScript and render it appropriately.

If you are using .NET ASP Web Forms with master pages, add the header manually by calling GetBrowserTimingHeader() in your master page under the <head> tag:

<%= NewRelic.Api.Agent.NewRelic.GetBrowserTimingHeader() %>
Other view engines such as Razor

For other view engines such as Razor, you can use the GetBrowserTimingHeader() method to generate the header string. Here is a Razor-based view example:

<!DOCTYPE html>
<html lang="en">
  <head>
      @Html.Raw(NewRelic.Api.Agent.NewRelic.GetBrowserTimingHeader())
      ...
    </head>
</html>
.NET MVC

When using .NET MVC, call the Html.Raw helper. That way, .NET MVC will recognize the string of HTML returned from the API as HTML / JavaScript and render it appropriately.

Disable instrumentation

To disable instrumentation:

Disable auto-instrumentation

To fully disable auto-instrumentation, edit newrelic.config and set the autoInstrument flag to false:

<!-- disable auto instrumentation -->
<browserMonitoring autoInstrument="false"/>

If you change the flag or uninstall the .NET agent, be sure to flush your cache again so that references to the agent are removed from compiled files.

Disable auto-instrumentation on a particular view

To disable auto-instrumentation only on a particular view, use the agent API call DisableBrowserMonitoring(). Add this call in any view where Browser scripts are not needed or wanted. Put this API call as close as possible to the top of the view where you want it disabled.

Disable instrumentation manually

To disable Browser instrumentation manually for individual webpages, use the DisableBrowserMonitoring(System.Boolean) API call for the .NET agent API.

Troubleshooting

If you are unable to view any Browser timing data, see No Browser timing data appears.

For more help

Additional documentation resources include:

Join the discussion about .NET monitoring in the New Relic Online Technical Community! The Technical Community is a public platform to discuss and troubleshoot your New Relic toolset.

If you need additional help, get support at support.newrelic.com.