Skip to content

Releases: signalfx/splunk-otel-js-web

v3.0.0

Choose a tag to compare

@srv-gh-o11y-rum srv-gh-o11y-rum released this 12 May 13:28
1ae67ec

Breaking Changes

  • @splunk/otel-web
    • Domain migration from signalfx.com to observability.splunkcloud.com #1695
      • All endpoints have moved to new domains:
        • CDN: cdn.signalfx.comcdn.observability.splunkcloud.com
        • RUM ingest: rum-ingest.{realm}.signalfx.comrum-ingest.{realm}.observability.splunkcloud.com
        • Source map upload API: api.{realm}.signalfx.comapi.{realm}.observability.splunkcloud.com
        • Session Replay ingest: rum-ingest.{realm}.signalfx.comrum-ingest.{realm}.observability.splunkcloud.com
      • Content Security Policy (CSP): If your application uses a CSP, you must update your directives before upgrading:
        • script-src: add cdn.observability.splunkcloud.com (for loading the agent and session replay via CDN)
        • connect-src: add rum-ingest.{realm}.observability.splunkcloud.com (for telemetry and replay data export) and api.{realm}.observability.splunkcloud.com (if using source map upload via build plugins)
        • The old signalfx.com domains can be removed from your CSP after all agents are upgraded
      • latest CDN tag discontinued: The latest tag is permanently pinned to v2.5.1 and will not receive any future updates — including v3.0.0 and beyond. Users loading the agent via cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web.js will remain on v2.5.1 indefinitely. Migrate to a versioned URL on the new CDN domain:
        - <script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web.js"></script>
        + <script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v3/splunk-otel-web.js"></script>
        Available version locks:
        • v3 — major version lock (recommended), receives all minor and patch updates
        • v3.0 — minor version lock, receives patch updates only
        • v3.0.0 — exact version pin
    • OTLP exporter enabled by default #1791
      • OTLP is now the default export format when beaconEndpoint is not specified
      • A deprecation warning is emitted when beaconEndpoint is explicitly provided without exporter.otlp: true, indicating Zipkin will be removed in a future version
      • Migration: Set exporter.otlp: false to opt out.
    • Promoted experimental flags to stable defaults #1780
      • _experimental_adjustSessionStartToTimeOriginadjustSessionStartToTimeOrigin (default: true) — session start time is backdated to performance.timeOrigin
      • _experimental_discardDataAfterInactivitydiscardDataAfterInactivity (default: true) — telemetry is discarded after 15 minutes of user inactivity
      • spaMetrics now defaults to true — SPA route metrics collected by default
      • experimental_alignWebVitalsSpansWithDocumentLoadinstrumentations.webvitals.alignWebVitalsSpansWithDocumentLoad — LCP, CLS, and INP spans are anchored to the documentLoad span timestamp by default
      • Migration: Set individual flags to false to opt out of new defaults.

New Features and Improvements

  • @splunk/otel-web

    • Add http.cache.hit attribute to resource spans #1768
      • Boolean attribute on resource fetch spans (document-load and post-document-load) indicating cache status
      • Detects cache hits via 304 response status or zero transfer size with non-zero decoded body size
      • Attribute is omitted for cross-origin requests without Timing-Allow-Origin headers
    • Add _experimental_captureBrowserDebugAttributes option #1793
      • Experimental flag that collects browser diagnostics (hardware concurrency, device memory, viewport/screen data, network hints, JS heap memory, storage quota, User-Agent Client Hints) and attaches them as global span attributes
      • High cardinality — intended for temporary debugging only
  • @splunk/otel-web-session-recorder

    • Add option to store failed segments to IndexedDB #1766
      • New persistFailedReplayData: 'indexeddb' configuration option for storing failed replay segments in IndexedDB instead of localStorage
      • Automatic retry on subsequent page loads
  • Updated dependencies #1771, #1772, #1773, #1774, #1775, #1777, #1778, #1779, #1782, #1783, #1784, #1785, #1786, #1787, #1788, #1789, #1790

CDN

Version v3.0.0

background-service.html:
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v3.0.0/background-service.html" integrity="sha384-0Plr22r4EPSZZYnvJBmBA9/uIjDusocispOGmWMnGxdiNRjuvgVHfOKsCCI90L1s" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v3.0.0/splunk-otel-web-session-recorder.js" integrity="sha384-dfTBovwhNIZNfT0bDhY5r1DbMmoiWTxnTMUM6lQndfPpjJZL6Ud1s1hyQFqyfXXs" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v3.0.0/splunk-otel-web.js" integrity="sha384-Ic25qGYVTgaMsMh6CLv+cj/OI9QshU6d8leunR8UwWMwCH+8Km/AgClNe2oFHsjn" crossorigin="anonymous"></script>
Version v3.0

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v3.0/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v3.0/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v3.0/splunk-otel-web.js" crossorigin="anonymous"></script>
Version v3

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v3/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v3/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v3/splunk-otel-web.js" crossorigin="anonymous"></script>

v2.5.1

Choose a tag to compare

@srv-gh-o11y-rum srv-gh-o11y-rum released this 21 Apr 08:48
f44fe5c
  • @splunk/otel-web

    • Trace separation of XHR and Fetch from parent trace #1693
      • New separateTraces configuration option that gives XHR and Fetch requests their own trace IDs instead of inheriting the parent click event's trace ID
      • Preserves the relationship through parent.traceId and parent.spanId attributes, enabling proper Business Transaction correlation in backend APM while maintaining RUM trace correlation
      • Supports top-level config, per-instrumentation config, and mixed configurations with overrides
    • Add user_agent.is_bot and user_agent.is_automated attributes #1760
      • New global span attribute user_agent.is_bot that uses regex detection to flag bot/crawler user agents
      • New global span attribute user_agent.is_automated that checks navigator.webdriver to identify browsers controlled by automation frameworks like Selenium, Puppeteer, and Playwright
      • Enables downstream filtering and analysis of synthetic versus real user traffic
    • Add splunk.rum.is_latest_tag attribute #1762
      • Adds a global span attribute splunk.rum.is_latest_tag: true when the agent loads via the "latest" CDN tag
      • Updates deprecation warnings to clarify that the "latest" tag remains pinned to v2.5.x
    • Improve dead click detection for role=button and anchor elements #1756
      • Elements with role="button" are now treated as interactive components for dead click detection
      • Excludes <a> elements with actual href attributes from detection since they trigger navigation
      • Keeps anchors without href or with javascript: hrefs as candidates for detection
    • Upgrade upstream to v2.11.1 #1758
  • Updated dependencies #1759, #1761

⚠️ Upcoming breaking changes in v3.0.0

Action required before upgrading to v3.0.0:

  • Domain migration: All domains are changing from signalfx.com to observability.splunkcloud.com. This includes both the CDN (cdn.signalfx.comcdn.observability.splunkcloud.com) and the ingest endpoint (rum-ingest.{realm}.signalfx.comrum-ingest.{realm}.observability.splunkcloud.com). If your application uses a Content Security Policy (CSP), update your script-src and connect-src directives to allow the new domains before upgrading.
  • latest CDN tag discontinued: The latest CDN tag will stop being updated after v2.5.0. Users relying on the latest tag should migrate to a versioned URL:
- <script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web.js"></script>
+ <script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v3/splunk-otel-web.js"></script>

The following experimental config options will be removed in v3.0.0 and their behavior will be enabled by default. This may affect how sessions and data are counted:

  • _experimental_adjustSessionStartToTimeOrigin: Session start time will be automatically backdated to performance.timeOrigin.
  • _experimental_discardDataAfterInactivity: Will be enabled by default. Data will be automatically discarded after 15 minutes of user inactivity. Set _experimental_discardDataAfterInactivity: false to opt out.
  • OTLP exporter enabled by default: The OTLP exporter will replace Zipkin as the default export format. Set exporter.otlp: false to opt out.
  • spaMetrics: Will be enabled by default. Set spaMetrics: false to opt out.
  • experimental_alignWebVitalsSpansWithDocumentLoad: All web vitals spans (LCP, CLS, INP) will be automatically anchored to the document load span — start time will match the documentLoad span timestamp rather than the time the metric was reported, and location.href will reflect the original page load URL rather than the current URL after SPA navigation.

CDN

Version v2.5.1

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.5.1/background-service.html" integrity="sha384-0Plr22r4EPSZZYnvJBmBA9/uIjDusocispOGmWMnGxdiNRjuvgVHfOKsCCI90L1s" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.5.1/splunk-otel-web-session-recorder.js" integrity="sha384-UWsDRzXj6PwL9CrVe513I+khoJMsgS1MSp08bj8q8Xv0pYEMWDF3y3VVZ163Tf7m" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.5.1/splunk-otel-web.js" integrity="sha384-/IPW28xWyyOQ+DNW9SStfdmEJIhHAPyZyuWgG/6K7fkiLK0g+dg4R7DagbqzpRXv" crossorigin="anonymous"></script>
Version v2.5

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.5/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.5/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.5/splunk-otel-web.js" crossorigin="anonymous"></script>
Version v2

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/splunk-otel-web.js" crossorigin="anonymous"></script>

Version latest

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web.js" crossorigin="anonymous"></script>

v2.5.0

Choose a tag to compare

@srv-gh-o11y-rum srv-gh-o11y-rum released this 13 Apr 12:31
0e514ad
  • @splunk/otel-web

    • Frustration signals - dead clicks detection #1697
      • Detects when a user clicks an interactive element (button, link, or submit input) that produces no meaningful response — no DOM mutation and no network activity within a configurable time window
      • Enabled via instrumentations.frustrationSignals.deadClick: true or with custom options (timeWindowMs, ignoreUrls)
      • Default detection window is 1000ms
    • Frustration signals - error clicks detection #1681
      • Detects when a user clicks on a UI element and a JavaScript error occurs shortly afterward
      • The frustration span captures the error message, error type, clicked element, and links to the original click and error spans
      • Enabled via instrumentations.frustrationSignals.errorClick: true or with custom options (timeWindowMs, ignoreUrls)
      SplunkRum.init({
      	instrumentations: {
      		frustrationSignals: {
      			deadClick: true,
      			errorClick: true,
      		},
      	},
      })
    • Add _experimental_adjustSessionStartToTimeOrigin config option #1705
      • Backdates session start time using performance.timeOrigin to reflect when the tab opened rather than when the SDK initialized
      • Drops spans whose start time predates the session start time by not assigning a session ID
      • Anchors session.start span to the precise session start moment
    • Use nanoid for IDs to prevent collisions #1701, #1752
      • Cryptographically secure ID generation using nanoid is now used by default for all IDs, preventing duplicate session IDs from Googlebot's seeded Math.random()
    • Add retry strategy for anonymous user ID persistence #1703
      • Adds write-back verification with retry capability (up to 3 attempts) when persisting the anonymous user ID cookie
    • Fix init session missing from sessionHistory and notifications #1747
      • Session initialization now follows the same processing path as subsequent updates, ensuring the initial session is added to sessionHistory, persisted to storage, and triggers subscriber notifications
    • Fix timestamp of webvitals spans #1700
      • Fixed incorrect start times on web vitals spans when experimental_alignWebVitalsSpansWithDocumentLoad is enabled
  • @splunk/otel-web-session-recorder

  • Updated dependencies #1750, #1744, #1745, #1742, #1746, #1738, #1739, #1737, #1740, #1741, #1726, #1730, #1727, #1731, #1729, #1728, #1734, #1732, #1720, #1718, #1721, #1723, #1722, #1719, #1724, #1717, #1708, #1706, #1711, #1712, #1715, #1714, #1713, #1709, #1699

⚠️ Upcoming breaking changes in v3.0.0

Action required before upgrading to v3.0.0:

  • Domain migration: All domains are changing from signalfx.com to observability.splunkcloud.com. This includes both the CDN (cdn.signalfx.comcdn.observability.splunkcloud.com) and the ingest endpoint (rum-ingest.{realm}.signalfx.comrum-ingest.{realm}.observability.splunkcloud.com). If your application uses a Content Security Policy (CSP), update your script-src and connect-src directives to allow the new domains before upgrading.
  • latest CDN tag discontinued: The latest CDN tag will stop being updated after v2.5.0. Users relying on the latest tag should migrate to a versioned URL:
- <script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web.js"></script>
+ <script src="https://cdn.observability.splunkcloud.com/o11y-gdi-rum/v3/splunk-otel-web.js"></script>

The following experimental config options will be removed in v3.0.0 and their behavior will be enabled by default. This may affect how sessions and data are counted:

  • _experimental_adjustSessionStartToTimeOrigin: Session start time will be automatically backdated to performance.timeOrigin.
  • _experimental_discardDataAfterInactivity: Will be enabled by default. Data will be automatically discarded after 15 minutes of user inactivity. Set _experimental_discardDataAfterInactivity: false to opt out.
  • OTLP exporter enabled by default: The OTLP exporter will replace Zipkin as the default export format. Set exporter.otlp: false to opt out.
  • spaMetrics: Will be enabled by default. Set spaMetrics: false to opt out.
  • experimental_alignWebVitalsSpansWithDocumentLoad: All web vitals spans (LCP, CLS, INP) will be automatically anchored to the document load span — start time will match the documentLoad span timestamp rather than the time the metric was reported, and location.href will reflect the original page load URL rather than the current URL after SPA navigation.

CDN

Version v2.5.0

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.5.0/background-service.html" integrity="sha384-0Plr22r4EPSZZYnvJBmBA9/uIjDusocispOGmWMnGxdiNRjuvgVHfOKsCCI90L1s" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.5.0/splunk-otel-web-session-recorder.js" integrity="sha384-1+DSuWpRN2BUC5/8kb1j7KQWn33hezDM5/fwfW91Fvz3eBWsfFeqtrFPL81/Mfa2" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.5.0/splunk-otel-web.js" integrity="sha384-Godz4Z/vwShSkBKV8KKryrIzvlp+TtSa6inBze2LzKosmtE4+KavzHV4dGmjOUcn" crossorigin="anonymous"></script>
Version v2.5

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.5/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.5/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.5/splunk-otel-web.js" crossorigin="anonymous"></script>
Version v2

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/splunk-otel-web.js" crossorigin="anonymous"></script>

Version latest

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest...
Read more

v2.4.0

Choose a tag to compare

@srv-gh-o11y-rum srv-gh-o11y-rum released this 18 Mar 12:15
9bf8af2
  • @splunk/otel-web

    • Align webvitals spans with document load span #1673
      • All webvitals spans (LCP, CLS, INP) can now be anchored to the document load span
      • Start time is set to the same timestamp as the documentLoad span, rather than the time the metric was reported
      • location.href is copied from the documentLoad span onto the webvitals span, reflecting where the page originally loaded rather than the current URL after SPA navigation
      • This feature must be explicitly enabled via the experimental_alignWebVitalsSpansWithDocumentLoad option:
        SplunkRum.init({
        	// ...
        	instrumentations: {
        		webvitals: {
        			experimental_alignWebVitalsSpansWithDocumentLoad: true,
        		},
        	},
        })
    • Debug mode #1678
      • Adds the ability to enable debug logging at runtime via localStorage, without requiring a config change
    • Add polyfills to npm target #1688
      • Polyfills are now applied to the npm build target as well, not just CDN artifacts
    • Improve anonymous user persistence between tabs #1687
      • Fixes a race condition where another tab could persist a different anonymous user ID simultaneously
  • @splunk/otel-web-session-recorder

    • Fix duplicate isRecording spans #1677
      • Prevents duplicate isRecording spans being created when session changes
    • Update session replay upstream #1679 #1680
  • Updated dependencies #1685, #1662

CDN

Version v2.4.0

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.4.0/background-service.html" integrity="sha384-AggP7sVqXrY0GDAvuN48/FFQQXi88Scvi8I5Xz8RpHHR90ioC4IisE/qJMZhXk2h" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.4.0/splunk-otel-web-session-recorder.js" integrity="sha384-08TZUK3LE2oXW/1HgfB0gNS5uQcYii5otmPFldyVLCAB0fE4U4jQKXBLuk+sQ4cJ" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.4.0/splunk-otel-web.js" integrity="sha384-y1roVG1ZqRtK6YPe8dR4qIBWg3m2JCwESyToHsOm8c9GEjbJA8ZTFfMYEIqoxmpp" crossorigin="anonymous"></script>
Version v2.4

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.4/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.4/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.4/splunk-otel-web.js" crossorigin="anonymous"></script>
Version v2

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/splunk-otel-web.js" crossorigin="anonymous"></script>

Version latest

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web.js" crossorigin="anonymous"></script>

v2.3.0

Choose a tag to compare

@srv-gh-o11y-rum srv-gh-o11y-rum released this 03 Mar 14:45
295b8d5
  • @splunk/otel-web

    • External session support #1648
      • Enables sharing a single RUM session between mobile and browser agents by transferring session metadata across application boundaries
      • New sessionMetadata configuration parameter to initialize with externally provided session data
      • New SplunkRum.getSessionMetadata() method to expose current session metadata for transfer
      • Prevents fragmented sessions when users navigate from native app contexts to browser environments
    • Introduce _experimental_discardDataAfterInactivity #1670
      • Experimental flag to discard all data once user activity expires after 15 minutes of inactivity
      • Also fixes a bug involving missing previous session state
    • Initialize anonymous ID on load #1674
      • Fixed a race condition where the anonymous user ID was persisted lazily, causing a second tab to generate its own ID if opened before the first span fired
  • Updated dependencies #1649, #1650, #1651, #1652, #1654, #1655, #1656, #1657, #1658, #1659, #1660, #1661, #1663, #1664, #1665, #1666, #1667, #1668, #1669, #1672

CDN

Version v2.3.0

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.3.0/background-service.html" integrity="sha384-AggP7sVqXrY0GDAvuN48/FFQQXi88Scvi8I5Xz8RpHHR90ioC4IisE/qJMZhXk2h" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.3.0/splunk-otel-web-session-recorder.js" integrity="sha384-4bUO29+sSf4UUPZUUHLAJ4GaF1G9MtAMXZU6eKrMij6UvmmjAnev58FwcZWlRqdP" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.3.0/splunk-otel-web.js" integrity="sha384-IvIWluE2BNZr5w9/0lb0L+QLc9ko2NktAE8h0bJKqan6i0X9XlXGBFFJnozMjtWy" crossorigin="anonymous"></script>
Version v2.3

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.3/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.3/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.3/splunk-otel-web.js" crossorigin="anonymous"></script>
Version v2

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/splunk-otel-web.js" crossorigin="anonymous"></script>

Version latest

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web.js" crossorigin="anonymous"></script>

v2.2.0

Choose a tag to compare

@srv-gh-o11y-rum srv-gh-o11y-rum released this 19 Feb 11:39
1234547
  • @splunk/otel-web

    • Enable rage clicks by default #1641
      • Rage clicks frustration signal is now enabled by default
    • Remove _experimental prefix from spaMetrics #1640
      • The spaMetrics feature is now stable and no longer marked as experimental
    • Prevent session.start spans and session replay for native sessions #1638
      • Prevents duplicate session.start spans and session replay when receiving a session ID from the mobile agent (MRUM)
  • @splunk/otel-web-session-recorder

    • Update session-replay CDN module to v2.6.7 #1643
  • @splunk/otel-web-build-plugins

    • Fix build of @splunk/rum-build-plugins #1644
      • Fixed broken source map upload functionality for both CommonJS and ES Module consumers
      • Added webpack example for end-to-end validation of upload behavior
  • Updated dependencies

CDN

Version v2.2.0

splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.2.0/splunk-otel-web-session-recorder.js" integrity="sha384-TDkvh5GR3vQmDyq1uPBAjIE7fmrsk6M2V9pZe51Ok4XxcPaF+qE2LsRZs65M3+dw" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.2.0/splunk-otel-web.js" integrity="sha384-wFnO8STkWhh4K8Hm/poge42BCGS7y10oSmY+4kBp4vLcbmnVMBbbJQwgE5MTO4pV" crossorigin="anonymous"></script>
Version v2.2

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.2/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.2/splunk-otel-web.js" crossorigin="anonymous"></script>
Version v2

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/splunk-otel-web.js" crossorigin="anonymous"></script>

Version latest

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web.js" crossorigin="anonymous"></script>

v2.1.0

Choose a tag to compare

@srv-gh-o11y-rum srv-gh-o11y-rum released this 03 Feb 11:15
14c0233
  • @splunk/otel-web

    • Change Rage Click Type to Frustration #1593
      • Renamed rage click feature to "frustration" to enable future expansion to additional frustration categories
      • Added new frustration_type and interaction_type attributes
      • This allows future support for error clicks and dead clicks
    • Increase Default Rage Click Limit from 3 to 4 #1590
      • Raised the threshold for detecting rage clicks from 3 to 4 occurrences within a one-second timeframe
    • Emit Session Start Span #1584
      • Added automatic emission of a session.start span when a new session begins
      • Each session generates exactly one span for tracking session lifecycles
    • Fix Secret Scanning False Positives in Bundle #1594
      • Fixed an issue where GitHub's secret scanning triggered false alerts when including the library's bundle in repositories
      • Replaced occurrences of unused "OTEL_EXPORTER_JAEGER_PASSWORD" environment variable name
    • Internal: Ensure Fresh Session State is Returned #1589
    • Internal: Fix Optimised Parameter in getElementXPath #1588
  • @splunk/otel-web-session-recorder

    • Updated Session Replay CDN Module #1630
      • Bumped session-replay to latest upstream version
  • Updated dependencies #1592, #1595, #1596, #1597, #1599, #1601, #1602, #1603, #1604, #1605, #1608, #1609, #1610, #1611, #1616, #1620, #1621, #1622, #1623, #1624, #1625, #1627, #1628, #1632, #1633, #1634, #1635, #1636

CDN

Version v2.1.0

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.1.0/background-service.html" integrity="sha384-XJGfg0ZTiemi+P19rBpkgMvQfSv4KUMjyDYesQr+Sb2DufnHtpV1ZNDdtCQqAXkw" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.1.0/splunk-otel-web-session-recorder.js" integrity="sha384-0mVnL5yVkIGmvif7SGWJHQJ43fg/WP5b23I93XYDguBGTJSax/9Teuoncc1BovHR" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.1.0/splunk-otel-web.js" integrity="sha384-OL3JYH6lxvFNUBrB+mo6kk0P8fBZNMulljO8jKzw6UNpRMwPb98qCEY36lZUL9mE" crossorigin="anonymous"></script>
Version v2.1

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.1/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.1/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.1/splunk-otel-web.js" crossorigin="anonymous"></script>
Version v2

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/splunk-otel-web.js" crossorigin="anonymous"></script>

Version latest

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web.js" crossorigin="anonymous"></script>

v2.0.0

Choose a tag to compare

@srv-gh-o11y-rum srv-gh-o11y-rum released this 19 Jan 14:13
6390a2d

⚠️ Breaking Changes

  • @splunk/otel-web
    • Anonymous User Tracking Enabled by Default #1579
      • Changed the default value of user.trackingMode from noTracking to anonymousTracking
      • The agent now generates a persistent anonymous user ID (_splunk_rum_user_anonymousId) stored via the configured persistence method (default: cookie)
      • This enables:
        • User journey correlation across sessions
        • Issue diagnosis by tracking user behavior patterns
        • Digital experience analytics without identifying individual users
      • Migration: Users who do not want this behavior can explicitly set user.trackingMode: 'noTracking' in their configuration
      • Example:
        SplunkRum.init({
        	realm: 'us0',
        	rumAccessToken: '....',
        	user: {
        		trackingMode: 'noTracking', // Opt out of anonymous tracking
        	},
        })

New Features and Improvements

  • @splunk/otel-web-session-recorder

    • Added Session Replay Sampling #1577
      • Introduced SessionBasedSampler to control the percentage of sessions that get recorded by session recorder

      • SplunkRum takes a ratio of all possible sessions, e.g. 0.8 means 80% of all possible sessions will be sent to the backend

      • SplunkSessionRecorder also takes a ratio of all possible sessions, e.g. 0.02 means that replay will be recorded for the 2% of all possible sessions

      • Note that if you record 20% of the sessions, and you want the replay for 10% of recorded sessions then you need to multiply: 0.2 * 0.1 = 0.02, so the ratio for SplunkRum is 0.2 and the ratio for SplunkSessionRecorder is 0.02

      • We ensure that if the replay is recorded then the session itself is recorded and that the ratios are preserved

      • Example usage:

        // Example 1: Record 30% of all sessions (independent of agent sampling)
        SplunkSessionRecorder.init({
        	realm: 'us0',
        	rumAccessToken: '....',
        	sampler: new SplunkRum.SessionBasedSampler({ ratio: 0.3 }), // records 30% of sessions
        })
        
        // Example 2: If agent samples 80% and you want session recorder to record 20% of ALL sessions
        // (not 20% of the agent-sampled sessions), use:
        SplunkRum.init({
        	realm: 'us0',
        	rumAccessToken: '....',
        	sampler: new SplunkRum.SessionBasedSampler({ ratio: 0.8 }), // agent samples 80%
        })
        SplunkSessionRecorder.init({
        	realm: 'us0',
        	rumAccessToken: '....',
        	sampler: new SplunkRum.SessionBasedSampler({ ratio: 0.2 }), // records 20% of all sessions
        })
        // Result: 20% of all sessions will have session replay
        
        // Example 3: If agent samples 80% and you want session recorder to record 20% of of the agent-sampled sessions, use:
        SplunkRum.init({
        	realm: 'us0',
        	rumAccessToken: '....',
        	sampler: new SplunkRum.SessionBasedSampler({ ratio: 0.8 }), // agent samples 80%
        })
        SplunkSessionRecorder.init({
        	realm: 'us0',
        	rumAccessToken: '....',
        	sampler: new SplunkRum.SessionBasedSampler({ ratio: 0.16 }), // 0.8 * 0.2 = 0.16
        })
        • Bug fixes included:
          • Replay export is now scoped to the current session. This fixes a case where the last chunk from the previous session could be attached to a new session
          • Recording now re-checks sampling when a new session starts, not just on the first page load. This prevents sessions from being skipped when sampling changes across sessions
  • @splunk/otel-web

    • Added Experimental Data Attributes Capture #1537
      • Added __experimental_dataAttributesToCapture config option to capture custom data-* attributes from clicked elements
      • Captured attributes are attached to click and rage click spans
      • Supports both hyphenated and camelCase format for attribute names
      • Example:
        SplunkRum.init({
        	realm: 'us0',
        	rumAccessToken: 'YOUR_TOKEN',
        	applicationName: 'my-app',
        	__experimental_dataAttributesToCapture: [
        		'data-testid', // hyphenated format
        		'track', // camelCase format (looks up data-track)
        		'userName', // camelCase format (looks up data-user-name)
        	],
        })
      • When a button with these attributes is clicked, the span will include:
        • element.dataset.testid: "submit-btn"
        • element.dataset.track: "purchase"
        • element.dataset.userName: "john-doe"
    • Added Page Completion Time (PCT) Metric for SPAs #1536
      • Introduced a new SpaMetricsManager for measuring page load times in Single Page Applications (SPAs)

      • Unlike traditional page load metrics that rely on browser navigation events, this monitors actual resource loading activity to determine when a page has finished loading

      • When enabled, PCT is automatically recorded as the duration of every routeChange span in your application

      • How PCT is calculated:

        • When a user navigates within your SPA (clicking links, tabs, or menu items), the timer starts
        • Monitors all resource loading activity (API calls, images, stylesheets, etc.)
        • Uses a quiet period detection algorithm - waits for a configurable period (default: 5 seconds) with no new resource activity
        • The total time is recorded as the duration of the routeChange span
      • Disabled by default - must be explicitly enabled in configuration

      • How to enable:

        // Option 1: Enable with defaults
        SplunkOtelWeb.init({
        	realm: 'us0',
        	rumAccessToken: 'your-token',
        	applicationName: 'my-spa-app',
        	_experimental_spaMetrics: true,
        })
        
        // Option 2: Enable with custom configuration
        SplunkOtelWeb.init({
        	realm: 'us0',
        	rumAccessToken: 'your-token',
        	applicationName: 'my-spa-app',
        	_experimental_spaMetrics: {
        		quietTime: 3000, // 3 seconds quiet period (default: 5000ms)
        		maxResourcesToWatch: 50, // Limit tracked resources (default: 100)
        		ignoreUrls: [/analytics/], // Additional URLs to ignore
        	},
        })

CDN

Version v2.0.0

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.0.0/background-service.html" integrity="sha384-AggP7sVqXrY0GDAvuN48/FFQQXi88Scvi8I5Xz8RpHHR90ioC4IisE/qJMZhXk2h" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.0.0/splunk-otel-web-session-recorder.js" integrity="sha384-tYHVKx02d+Ft+HjVMw07H6R8rT+azHH47m7IR//Tg25B2FHTU4uHe64SDhDodAF2" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.0.0/splunk-otel-web.js" integrity="sha384-e2igRFzjYOqVycVNCStQz8ca4wF5qXSPg6kf/wt3HmzrOyl5O4St/UX8VNjZT4j2" crossorigin="anonymous"></script>
Version v2.0

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.0/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.0/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2.0/splunk-otel-web.js" crossorigin="anonymous"></script>
Version v2

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v2/splunk-otel-web.js" crossorigin="anonymous"></script>

Version latest

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web.js" crossorigin="anonymous"></script>

v1.2.0

Choose a tag to compare

@srv-gh-o11y-rum srv-gh-o11y-rum released this 04 Dec 11:40
9b8d905

1.2.0

  • @splunk/otel-web

    • Added Rage Click Detection #1484
      • Automatically detects and reports rage click events (multiple rapid clicks on the same element)
      • Helps identify user frustration signals and usability issues
      • Disabled by default - must be explicitly enabled in configuration
      • Example of how to enable rage click detection:
        SplunkRum.init({
        	// ... other config options
        	instrumentations: {
        		frustrationSignals: {
        			rageClick: {
        				count: 3, // Number of clicks to trigger rage click (default: 3)
        				timeframeSeconds: 1, // Timeframe in seconds (default: 1)
        				ignoreSelectors: ['#no-rage'], // CSS selectors to ignore (optional)
        			},
        		},
        	},
        })
      • Set rageClick: true or rageClick: {} to use default settings (3 clicks within 1 second)
    • Added Platform Attributes Including OS Version #1482
      • Spans now include detailed platform information such as operating system name and version
      • Uses the User Agent Client Hints API to obtain enhanced platform data
      • Automatically falls back to basic platform information if the API is not available
    • Removed FID (First Input Delay) Metric #1448
      • Removed FID metric collection as it has been deprecated by Chrome
      • FID was previously replaced by INP (Interaction to Next Paint) metric which provides better insights into page responsiveness
      • Updated web-vitals dependency to latest version
  • @splunk/otel-web-session-recorder

    • Fixed Session Replay Sampling #1486
      • Session replay now properly respects the configured sampling rate
    • Fixed Session Recording on Session Expiration #1488
      • Recording now stops correctly when a session expires
    • Change span names for session replay lifecycle events #1485
    • Updated Session Replay CDN Module #1525
      • Updated to the latest version of the session replay CDN script

CDN

Version v1.2.0

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1.2.0/background-service.html" integrity="sha384-AggP7sVqXrY0GDAvuN48/FFQQXi88Scvi8I5Xz8RpHHR90ioC4IisE/qJMZhXk2h" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1.2.0/splunk-otel-web-session-recorder.js" integrity="sha384-qspEOIMr5BdYlE8DyYwcFxEvWD0QvdELYMtklj8yrW1ss6S/cKA8HprUCQ26bpIp" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1.2.0/splunk-otel-web.js" integrity="sha384-5cshQi6oHZ9aKdBpG7xwKig+I8DhfhCOZh1wLc4Rxnp/hvE0jc8mAkuuKTXW1uZT" crossorigin="anonymous"></script>
Version v1.2

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1.2/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1.2/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1.2/splunk-otel-web.js" crossorigin="anonymous"></script>
Version v1

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1/splunk-otel-web.js" crossorigin="anonymous"></script>

Version latest

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web.js" crossorigin="anonymous"></script>

v1.1.1

Choose a tag to compare

@srv-gh-o11y-rum srv-gh-o11y-rum released this 04 Nov 10:29
9c96723
  • @splunk/otel-web

    • Fixed service.name attribute handling #1451
      • Prevents the default unknown_service value from being included in exported spans when no explicit service name is configured
    • Reduced click text capture length #1455
      • Decreased maximum captured click text length from 128 to 50 characters
    • Updated dependencies
      • Updated various dependencies
  • @splunk/otel-web-session-recorder

    • Updated session replay CDN package #1468
      • Updated session replay module from v2.5.2 to v2.5.4
      • Fixes potential website crashes in Safari in certain scenarios related to WebKit bug (WebKit Bug 301688)

CDN

Version v1.1.1

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1.1.1/background-service.html" integrity="sha384-ZVMm1obDFBzKDsJItSw+FB1TZ03kQNR5xWLZDQamYs0gC67EzXizC+idj/pxPlQf" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1.1.1/splunk-otel-web-session-recorder.js" integrity="sha384-LtdUmAqXXNFos/8pnOC7rYChz1GH7r3A0j/sONa+k3stxSGewbiSNxKz+UR01a4U" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1.1.1/splunk-otel-web.js" integrity="sha384-bNb4toipOKBsL5yJJDhfzMw3oP/nF16ITIljsKDEDkeAQsXkeET9qRTLUHU/l5bV" crossorigin="anonymous"></script>
Version v1.1

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1.1/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1.1/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1.1/splunk-otel-web.js" crossorigin="anonymous"></script>
Version v1

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/v1/splunk-otel-web.js" crossorigin="anonymous"></script>

Version latest

WARNING: Content behind this URL might be updated when we release a new version.
For this reason we do not provide integrity attribute.

background-service.html:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/background-service.html" crossorigin="anonymous"></script>
splunk-otel-web-session-recorder.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web-session-recorder.js" crossorigin="anonymous"></script>
splunk-otel-web.js:
<script src="https://cdn.signalfx.com/o11y-gdi-rum/latest/splunk-otel-web.js" crossorigin="anonymous"></script>