• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Browser agent release notesRSS

November 8, 2019
Browser agent v1153

New features

Support for End User Originated Spans in Distributed Tracing

New Relic now supports end-to-end distributed tracing with this release. For our Browser & APM Pro customers, you can now enable the Browser spans for any app that uses our Browser Pro + SPA agent.
This MVP includes support for same-origin AJAX requests that originate during a BrowserInteraction event. This AJAX request will be listed as the root entry span for a trace.

Learn More

Known Issues

  • Enabling Browser in Distributed Tracing for use with current versions of these language agents, Java, PHP, and C, will result in disconnected traces (single span traces for all Browser requests) and potentially the loss of APM transaction traces and spans. Please see the APM compatibility requirements for supported versions and estimated release dates.

New PageViewTiming Event to capture User Centric Perceived Performance metrics in real time

With this release, we are tying together the visual and responsiveness performance for our customer's site. With every page view, the agent is now capturing the time of the first interaction along with FID (First Input Delay). The existing paint timing metrics (First Paint and First Contentful Paint) are now collected even when they occur after the load event. All of these new metrics are captured on the new PageViewTiming events, available in Insights. This new event type is available for all agents, but requires a Browser Pro subscription.

Visit our New Relic Event Data Dictionary for a list of attributes and more details about the PageViewTiming event.

First Interaction

First Interaction timing captures the moment in time that a user first engages with a site. Within this timing, we also capture the type of interaction (click, key, mousedown, etc). This timing represents the first step in calculating the First Input Delay, which is the time from First Interaction to the moment that the site responds (is interactive).

First Input Delay

FID is a metric that tracks the delay between the time a user can attempt to interact with a part of the site (for example, when they click a link, tap on a button, or use a custom, JavaScript-powered control), and the time that the interface is able to respond to that interaction. We have all experienced situations where a webpage has visibly loaded, but when we try to click around on buttons or any JavaScript-powered interactive elements, nothing responds. This delay is what the FID metric tracks.

The FID metric is in some ways an intersection of the First Contentful Paint and Time to Interactive metrics. It lies in the middle of those two points, measuring the time between the FCP (and therefore when a first input can be made) and when the browser’s main thread is able to respond to any interactions. One major point of FID that differentiates it from Time to Interactive is that it requires a user to interact! TTI can be calculated without user input, so it is somewhat less powerful in the sense that it isn't providing any new information about my user's active experience or frustration, we can only assume that slow = bad. Why only consider the first input

Learn more

Improvements

  • Browser interactions now wait on external scripts to finish loading: Browser interactions measure the time of all Javascript code that runs as a result of an interaction. The agent now includes the time it takes to load and execute external scripts. This is useful, for example, when the code started by an interaction must be loaded first (lazy loading).

How to upgrade

To upgrade your agent to the latest version, see Upgrade the Browser agent.

July 16, 2019
Browser agent v1130

New Features

First Paint and First Contentful Paint values are now being collected: For browsers that support the Paint Timing API, these two values are now collected and made available as attributes on the PageView and BrowserInteraction (initial load) events.

Improvements

  • Updated instrumentation of the History API: The history API methods are now instrumented on the History object constructor. This is to ensure that our instrumentation does not override other libraries that wrap these methods.
  • Updated instrumentation of DOM API methods: The DOM API methods used for JSONP instrumentation are now instrumented on the Node object prototype (as opposed to HTMLElement lower in the prototype chain). This is to ensure that our instrumentation does not override other libraries that wrap these methods.

How to upgrade

To upgrade your agent to the latest version, see Upgrade the Browser agent.

April 19, 2019
Browser agent v1123

Bug fixes

  • Fixed issue with capturing AJAX status code in Angular apps: Angular calls abort() on the XHR object after it successfully finishes. This was seen by our instrumentation as a call that did not finish, and as a result status code was set to 0 and reported as a network error. This fix addresses this use case by capturing status code before the call is aborted.

January 4, 2019
Browser agent v1118

New features

  • Custom attributes are now added to JavascriptError events: Custom attributes collected with the setCustomAttribute() and interaction.setAttribute() API methods are now added to JavascriptError events.
  • Updated the noticeError() API: The noticeError() API method now accepts a second argument for custom attributes. For more details and examples, see the noticeError() documentation.

Improvements

  • Updated the timing of when page URL is collected: The URL collected by the agent and used for page view names is now collected after the load event to account for redirects. Currently, we are using the referrer header value from the initial agent call for transaction naming and for URL attributes on Insights events. The agent also sends the URL value as a part of its payload to get around HTTP header stripping. This update brings this value on a par with the HTTP header by capturing it at the time the agent call is made.

How to upgrade

To upgrade your agent to the latest version, see Upgrade the Browser agent.

October 4, 2018
Browser agent v1099

Notes

The Browser agent, sometimes called the JavaScript agent, has multiple variants: Lite, Pro, and Pro+SPA. Unless noted otherwise, all features/improvements/bug fixes are available in all variants of the agent.

New features

  • Action Text: The agent now captures the text of the HTML element that was clicked when a browser interaction started. This value is stored as an attribute called actionText on the BrowserInteraction events. There is also a new API actionText, which can be used to manually set the action text value.

Bug fixes

  • The agent now uses a fallback method for collecting data when sendBeacon fails: Browsers can return false from sendBeacon call when it cannot be completed. The agent now detects it and falls back to a different method to ensure data is captured.
  • Fixed calculating stackHash value in Safari 10 and 11: The stackHash value was not being properly calculated for global errors in Safari 10 and 11, causing incorrect grouping of errors across all browsers.
  • Fixed issue with calling fetch without any arguments: On certain versions of the Safari browser, calling fetch without any arguments is permitted. Other browsers, in contrast, do not allow this and throw an error. This also prevented the agent from working properly.
  • Removed response size calculation for streaming fetch calls: Previously, the agent cloned the response of a fetch call and read the response body in order to capture its size. In certain versions of the Safari browser this caused other clone calls to fail. As a result, the agent now only uses the content-length header, when available, to capture response size.

How to upgrade

To upgrade your agent to the latest version, see Upgrade the Browser agent.

December 4, 2017
Browser agent v1071

Notes

The Browser agent, sometimes called the JavaScript agent, has multiple variants: Lite, Pro, and Pro+SPA. Unless noted otherwise, all features/improvements/bug fixes are available in all variants of the agent.

New features

  • Link JS Errors to Browser Interactions (relevant only for PRO+SPA): When a JS error occurs inside a browser interaction event, the error will now be associated with the interaction via Insights attributes.

BrowserInteraction, AjaxRequest, and BrowserTiming events will now have the following attributes: browserInteractionId, eventId, and parentEventId.

Bug fixes

  • JSONP Tracking Breaks in some versions of Safari (relevant only for PRO+SPA): Previously, the agent would cause Safari browsers to lock up when JSONP requests returned large data. The agent no longer calculates JSONP response size.

How to upgrade

To upgrade your agent to the latest version, see Upgrade the Browser agent.

October 2, 2017
Browser agent v1059

Notes

This Browser agent version has been temporarily removed; the most up-to-date version is currently agent version 1044.

The Browser agent, sometimes called the JavaScript agent, has multiple variants: Lite, Pro, and Pro+SPA. Unless noted otherwise, all features/improvements/bug fixes are available in all variants of the agent.

New features

  • Added JSONP support (relevant only for PRO+SPA): Browser Interactions that include JSONP requests are now correctly tracked. Previously, browser interactions that included JSONP were ended early and not included in the Breakdowns tab.

Bug fixes

  • Fixed a compatibility issue with zone.js: When New Relic and Zone.js v0.8.13 were used together, the context (this) was not being set correctly in some of the addEventListener calls used by clients.
  • Correctly send data when methods aren't wrappable: When XHR was not wrappable, the agent did not send data to the collector via XHR in some edge cases. We are now correctly sending the data if XHR exists on the page, even if it's not wrappable.

How to upgrade

To upgrade your agent to the latest version, see Upgrade the Browser agent.

July 17, 2017
Browser agent v1044

Notes

The Browser Agent, sometimes called the JS agent, has multiple variants: Lite, Pro, and Pro+SPA. Unless noted otherwise, all features/improvements/bug fixes are available in all variants of the agent.

Bug fixes

  • Improved Agent Performance: Improvements to how the agent verifies interactions are complete by setting and clearing multiple timers. Previously, the agent would make many unnecessary calls to clearTimeout, and will now only clear timers when appropriate.
  • Protect against custom events: Improvements to how the agent determines the event origin for Session Traces. In some libraries that use custom event wrappers, when the agent calls target on an event it can throw an exception. The agent now catches these types of exceptions when building Session Traces.

How to upgrade

To upgrade your agent to the latest version, see Upgrade the Browser agent.

June 22, 2017
Browser agent v1039

Notes

The Browser Agent, sometimes called the JS agent, has multiple variants: Lite, Pro, and Pro+SPA. Unless noted otherwise, all features/improvements/bug fixes are available in all variants of the agent.

Bug fixes

  • Do not instrument SPA without a wrappable XHR: In browsers that don't orchestrate the wrapping of XHR, the SPA agent does not collect event data, only metric timeslice data. The agent will still report SPA for browsers that support XHR wrapping. Mobile Safari and a few other browsers didn’t support wrapping the XMLHttpRequest, so they would not produce event data for instrumenting Single Page Apps. They still collect other types of metrics.
  • Support setTimeout with a string duration: When you call setTimeout with a string as the duration, browsers will cast this as a number, but the agent did not handle this correctly. We are now handling this case correctly.
  • Work around mutation observer memory leak in IE 11: We have discovered that MutationObserver in IE causes a memory leak, so the agent now will prefer setImmediate for IE, and use a resolved promise to schedule the wrapping in Edge (and other browsers that support promises).
  • Handle short recursive timers: Some libraries recursively set timers that left our interactions open. The agent now handles this by reducing the max time it will allow to be included in the interaction.

How to upgrade

To upgrade your agent to the latest version, see Upgrade the Browser agent.

March 20, 2017
Browser agent v1026

Notes

The Browser Agent, sometimes called the JS Agent, has multiple variants: Lite, Pro, Pro+SPA. Unless noted otherwise, all features/improvements/bug fixes are available in all variants of the agent.

Improvements

  • Adjusted PageAction limits: Previously, we limited PageAction events to 120 per page load and only 20 events per harvest cycle, resulting in dropped data if a user sent more than 20 pageAction events in a single burst. Increasing the harvest time to 30 seconds also increases the event buffer, allowing users to send up to 60 events per harvest.
  • Improved time measurement: Previously, the agent used the system clock to calculate timing, and since the system clock may shift over the lifecycle of a page, the agent could occasionally report inaccurate or unexpectedly negative values. Going forward, the agent will use perfomance.now(), which is a monotonically increasing clock that starts from navigationStart. This change will result in more accurate timing for modern browsers.

Bug fixes

  • Preserve event listeners: Previously, if the agent doesn't load correctly it affected the functionality of add- and removeEventListener. These will now function the same whether the agent loads or not.

How to upgrade

To upgrade your agent to the latest version, see Upgrade Browser agent.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.