Loading

Supported technologies

This page lists:

  • Supported browser versions
  • Included instrumentations and their default behavior
  • Differences between EDOT Browser and contrib OpenTelemetry JS

EDOT Browser is designed to run in modern evergreen browsers.

Browser Supported versions
Chrome TODO
Edge TODO
Firefox TODO
Safari TODO
Note

Internet Explorer is not supported.

At a minimum, the runtime environment must support:

  • ES2018 (or later) language features
  • fetch API
  • Promise
  • Performance and PerformanceObserver APIs

If your application targets older browsers, you might need to provide polyfills. EDOT Browser does not ship with built-in polyfills.

EDOT Browser bundles a curated set of OpenTelemetry JS instrumentations suitable for browser environments.

The following table lists instrumentations that are currently included:

Instrumentation Included On by default Notes
Document load TODO TODO TODO
Fetch TODO TODO TODO
XMLHttpRequest TODO TODO TODO
User interaction TODO TODO TODO
Long tasks TODO TODO TODO

By default, EDOT Browser:

  • Initializes tracing
  • Registers included instrumentations
  • Configures an OTLP exporter
  • Applies Elastic-specific defaults (for example, resource detection or attribute normalization)

You can turn off or override instrumentations during initialization if needed.

EDOT Browser builds on top of contrib OpenTelemetry JS, but introduces several differences to simplify setup and align with Elastic Observability.

  • EDOT Browser doesn't read environment variables at runtime.
  • Configuration must be passed explicitly during initialization.
  • Elastic-specific configuration options might be available.
  • EDOT Browser expects telemetry to be sent to a reverse proxy.
  • Direct export to authenticated OTLP endpoints is not supported in the browser.
  • Authentication headers must be injected by infrastructure outside the browser.

Compared to contrib OpenTelemetry JS:

  • EDOT Browser provides a simplified initialization API.
  • A curated set of instrumentations is preconfigured.
  • Sensible defaults are applied for Elastic ingestion.

Some contrib OpenTelemetry JS features are not available or are intentionally unsupported in EDOT Browser due to browser constraints.

These might include:

  • Environment-based configuration
  • Certain resource detectors
  • Node.js-specific instrumentation
Component Version
OpenTelemetry JS API TODO
OpenTelemetry JS SDK TODO

When using EDOT Browser with Elastic Observability, be aware of the following:

  • API key authentication requires a reverse proxy; credentials cannot be stored in the browser.
  • Metrics from browser-based RUM might have more limited utility than backend metrics, depending on your use case.
  • Some OpenTelemetry browser instrumentations are still experimental. Behavior might change.
  • Monitor the performance impact on the browser when using multiple instrumentations, especially on lower-end devices.

If telemetry does not appear in Elastic Observability:

  • Confirm the export endpoint points to your reverse proxy (not directly to Elastic Observability) and doesn't include signal paths like /v1/traces.
  • Check the browser console for network errors or OpenTelemetry-related messages. Cross-Origin Resource Sharing (CORS) errors often mean the reverse proxy is not sending the right Access-Control-Allow-Origin or preflight response.
  • Ensure the reverse proxy can reach your EDOT Collector or Elastic Cloud Managed OTLP endpoint; check proxy logs for connection or auth failures.
  • Ensure service name is set and doesn't contain special characters.
  • Set the log level to debug or verbose during initialization to check the detailed export and instrumentation output in the console.

If you use a Content Security Policy, ensure the proxy or OTLP endpoint domain is in the connect-src directive. For bundler or module resolution errors, refer to OpenTelemetry for Real User Monitoring (RUM) and the general OpenTelemetry ingest troubleshooting docs.