RUM JS Agent version 5.xedit

5.16.0 (2023-12-27)edit

Featuresedit

5.15.0 (2023-09-27)edit

Potentially breaking changesedit
  • Previously, there was a start time discrepancy between sampled and unsampled page load transactions, which was wrong. From now on, the agent will set the same start time for both of them.

Custom dashboards built using the page load duration will see an effect with the solution: #1435

Featuresedit

  • Capture errors from objects thrown from the promise rejection events including the reason and custom properties: #1428

5.14.0 (2023-08-03)edit

Featuresedit
  • Add redirect span to the page-load transaction: #1400

Bug fixesedit

  • Fetch API instrumentation now handles requests with URL objects. #1398

5.13.0 (2023-07-19)edit

Potentially breaking changesedit
  • Previously, breakdown timings were reported as milliseconds values in the span.self_time.sum.us field, which was wrong. From now on, it will be reported as microsecond values to match the APM specification: #1381
  • The metrics transaction.duration.sum.us, transaction.duration.count and transaction.breakdown.count are no longer recorded: #1382

Featuresedit

  • Support for Angular 16 is made available via @elastic/apm-rum-angular@3.0.0: #1380
  • Improve user-interaction transactions naming. Unsupported browsers: IE11 #1390
  • Add apmRequest and sendCredentials config to TypeScript typings: #1254 #1243

Bug fixesedit

  • Fix warnings where performance entries are not supported: #1246

5.12.0 (2022-06-14)edit

Featuresedit
  • Introduce new config option sendCredentials. This allows the agent to send cookies to APM servers that are behind reverse proxies that need requests to be authenticated: #1238
  • Agent now warns users if they provide non-existent config options when initializing it: #1230

Bug fixesedit

  • Capture the stacktrace of a SyntaxError triggered because of a malformed JavaScript code. Before this fix the agent was capturing an empty stacktrace: #1239

5.11.1 (2022-05-16)edit

Featuresedit
  • Span’s outcome is now set to Unknown when a Fetch/XHR request is aborted. The outcome can be found in the metadata information of the span details in APM UI: #1211
  • Allow users the ability to disable compression for the events sent to APM server. This is helpful for debugging purposes while inspecting via Devtools and also for generating HAR file. Please see our troubleshooting guide for more information: #1214

Bug fixesedit

  • The instrumentation of fetch API consumes a response as a readable stream properly. Before this fix the related span was being ended on the start of the response rather than on the end of it: #1213
  • Agent now can listen to all click events on the page. Users can enable/disable click instrumentation via disableInstrumentation: ["click"]. eventtarget instrumentation flag will be deprecated in favor of click and will be removed in the future releases: #1219

5.11.0 (2022-04-20)edit

Featuresedit
  • Events are now beaconed when the user abandons or backgrounds the page, this makes sure the agent never miss an event. Before this change it was only sending them every interval configurable via flushInterval. Unsupported browsers: Firefox, IE11: #1146

Transactions based on the supported technologies and custom managed transactions are the only ones taken into account.

  • rum-vue: Introduce script setup syntax support: #1194
  • Override reuse threshold when redefining a transaction. This will permit the agent not to miss data on slow network connections: #1196

Bug fixesedit

  • Report Largest Contentful Paint (LCP) properly. Before this fix the agent was not giving the browser enough time to capture LCP entries that are post on-load: #1190

5.10.2 (2022-02-03)edit

Bug fixesedit
  • create user-interaction transactions based on the element on which the event occurred rather than the element on which the event handler has been attached. All web applications that rely on event delegation will benefit from this: #969

5.10.1 (2022-01-10)edit

Featuresedit
  • rum-core: update Cumulative layout shift(CLS) calculation following the new guidelines from Google: maximum session window with 1 second gap, capped at 5 seconds.: #1033

Bug fixesedit

  • rum-angular: recover compatibility with Angular 9.0.x: #1115

5.10.0 (2021-12-07)edit

Featuresedit
  • Introduce new config option serverUrlPrefix to make the APM server URL configurable: #1078
  • Expose Transaction, Span, TransactionOptions and SpanOptions types definition: #1045 and #995
  • Set the values to empty string for deprecated span destination metrics: #1098

Bug fixesedit

  • Check the existence of navigation timing data when compressing transaction marks: #1104

5.9.1 (2021-07-15)edit

Bug fixesedit

  • Validate apmRequest function is called for every request sent to the APM server when compression is enabled: #1055

5.9.0 (2021-07-13)edit

Featuresedit
  • Add support for apmRequest configuration that allows users to pass a custom function that can be used to modify the request sent to the APM server: #1018
  • Support for React 17 is made available via @elastic/apm-rum-react package: #1031
  • Support for Angular 12 is made available via @elastic/apm-rum-angular package: #1028

Bug fixesedit

  • Update incorrect typings for adding labels to transaction and spans: #1017

5.8.0 (2021-04-19)edit

Featuresedit
  • First draft of session information is added for page-load Transactions (disabled by default): #634

5.7.2 (2021-04-02)edit

Bug fixesedit
  • Transaction marks for the APM server V3 spec was mapped to incorrect field which resulted in Kibana User Expererience App missing some of the core data. This only affects users who had set config apiVersion > 2: #1007

5.7.1 (2021-03-17)edit

Bug fixesedit
  • Discard buffered longtasks spans from page load transactions getting added to subsequent route change and other auto auto-instrumented transactions resulting in incorrect start time for those transactions: #989

5.7.0 (2021-03-15)edit

Featuresedit
  • Support regular expression for detecting distributed tracing origins (distributedTracingOrigins): #943
  • Capture buffered longtask entries: #964
  • Expose agent configuration TypeScript definition: #979

5.6.3 (2021-02-02)edit

Featuresedit
  • Propagate sampling weight through tracestate header: #845
  • Add necessary scripts to load test APM server with RUM payload: #948
Bug fixesedit
  • Handle null reason in promise rejection event: #940

5.6.2 (2020-11-06)edit

Featuresedit
  • Add transaction sampling rate precision which ensures transaction_sample_rate configuration option has a maximum precision of 4 decimal places: #927
  • Add outcome field to applicable transactions and spans that is used by the APM UI for displaying the error rate chart: #904

5.6.1 (2020-09-29)edit

Featuresedit
  • Longtasks are now aggregated under the experience field to make querying faster: #900
Bug fixesedit
  • Check for a Webkit Navigation timing API bug is added to avoid having incorrect navigation marks: #903

5.6.0 (2020-09-17)edit

Featuresedit
  • Add new method signaturtes to the exported type definitions: #890
Bug fixesedit
  • Frameworks should not be automatically instrumented when the apm is inactive : #885
  • Add default XHR timeout for compressed requests to APM server: #897
  • Measure First Input Delay metrics properly for page load transactions: #899
Performance Improvementsedit
  • Improve the span creation time when there is an active transaction on page: #883

5.5.0 (2020-08-18)edit

Featuresedit
  • Provide an API to block all auto instrumented transactions created by the agent through transaction.block method. Users can also use the startSpan API to create blocking spans to control this behaviour: #866
  • Expose options to create blocking spans from the agent API via startSpan: #875
  • Capture Cumulative layout shift(CLS), Total blocking time(TBT) and First input delay(FID) as part of experience metrics under page-load transactions: #838
Bug fixesedit
  • Track various XHR states like timeouts, errors and aborts and end all managed transactions correctly: #871
  • Fix inconsistencies in the XHR timings by removing the task scheduling logic: #871
  • Accept the user provided logLevel configuration when agent is not active: #861
  • Opentracing Tracer should return Noop on unsupported platforms: #872s

5.4.0 (2020-07-29)edit

Featuresedit
  • Agent now uses the new CompressionStream API available on modern browsers to gzip compress the payload sent to the APM server. This yields a huge reduction of around ~96% in the payload size for an example web application when compared with the v3 specification: #572

5.3.0 (2020-07-06)edit

Featuresedit
  • Introduced better grouping strategy for all managed transactions based on the current browser’s location by default instead of grouping all transactions under UNKNOWN category: #827
  • Capture XHR, Fetch calls as spans that happened before the agent script is downloaded using the browser’s Resource Timing API: #825
  • Populate span.destination.* context fields for Navigation Timing span that denotes the HTML downloading phase: #829
  • Use Page Visibility API to discard transactions if the page was backgrounded at any point during the lifetime of the transaction: #295
  • Add apiVersion config to TypeScript typings: #833

5.2.1 (2020-06-24)edit

Featuresedit
  • Added support for path array in <ApmRoute> React component that associates the transaction based on the mounted path: #702
Bug fixesedit
  • Capture Total Blocking Time (TBT) only after all longtask entries are observed: #803
  • Do not capture page load transaction marks when the NavigationTiming data from the browsers are not trustable: #818

5.2.0 (2020-05-28)edit

Featuresedit
  • Agent now supports compressing events payload sent to the APM server via new configuration apiVersion. It yeilds a huge reduction of around ~45% in the payload size for average sized web pages: #768
  • Capture First Input Delay(FID) as Span for page-load transaction: #732
  • Capture Total Blocking Time(TBT) as Span for page-load transaction: #781
Bug fixesedit
  • Allow setting labels before agent is initialized: #780
  • Use single instance of apm across all packages: #791
  • User defined types for managed transactions are considered of high precedence: #758
  • Add span subtype information in payload without camelcasing: #753
  • Treat truncated spans percentage as regular span in breakdown calculation: #776
Performance Improvementsedit
  • Refactor ServiceFactory class to use constant service names: #238

5.1.1 (2020-04-15)edit

Featuresedit
  • Performance Observer is used to measure FirstContentfulPaint Metric: #731
Bug fixesedit
  • Avoid full component re-rerender when query params are updated on current ApmRoute inside child components: #748

5.1.0 (2020-04-08)edit

Featuresedit
  • Route change transactions now includes the browsers next paint frame: #404
  • Support differential loading with Angular CLI: #607
Performance Improvementsedit
  • Reduced the bundle size by modifying the random number generator algorithm: #705
Bug fixesedit
  • Handle when errors are thrown in unsupported browsers: #707
  • Captured API calls are duplicated as spans in IE: #723

5.0.0 (2020-03-18)edit

Breaking changesedit
  • The agent now uses the official W3C traceparent header to propagate trace context: #477
  • The agent name is changed from js-base to rum-js: #379
  • Global labels are only added to metadata to improve payload size: #618
  • Labels now accept Boolean and Number types: #272
  • Simplify configuration by removing and/or merging config options: #628
  • addTags method is removed in favour of addLabels: #215

Please see our Upgrade to version 5.x guide for more information.

Featuresedit
  • Monitor longtasks by default during active transaction: #601
  • Set sync field only for synchronous spans: #619