Supported technologies
This page lists supported browser versions, included instrumentations and their default behavior.
At a minimum, the runtime environment must support:
- ES2022 (the SDK bundle targets this version)
- The
fetchAPI Promise- The
PerformanceandPerformanceObserverAPIs
EDOT Browser is designed to run in modern evergreen browsers that meet these requirements.
| Browser | Supported versions |
|---|---|
| Chrome | 94+ |
| Edge | 94+ |
| Firefox | 93+ |
| Safari | 15.4+ |
Internet Explorer is not supported.
If your application targets older browsers, you might need to downlevel the code with a bundler and provide polyfills. EDOT Browser doesn't include built-in polyfills.
When you install EDOT Browser as a package (refer to Install the agent), you build your application with a JavaScript bundler. The following bundlers are supported:
| Bundler | Notes |
|---|---|
| Webpack 4 | Supported. Refer to this sample configuration and adapt it to your setup. |
| Webpack 5 | Supported. Refer to this sample configuration and adapt it to your setup. |
| Rollup | Supported. Refer to this sample configuration and adapt it to your setup. |
| esbuild | Supported. No plugins are required. Refer to the example configuration. |
Usage of @elastic/opentelemetry-browser in TypeScript code requires:
- TypeScript 5.0.4 or later
- Using
"module": "node16"or "nodenext" in "tsconfig.json" to get support for handling the "exports" entry in package.json. This is so entry points like@opentelemetry/browser-instrumentation/experimental/web-vitalscan be used.
EDOT Browser bundles a curated set of OpenTelemetry JS instrumentations suitable for browser environments. This list is being reviewed and might change in future releases.
The following instrumentations are included and turned on by default. You can turn off any of them by listing its config key in disableInstrumentations, or using instrumentations with { enabled: false } for the corresponding key when calling startBrowserSdk (the instrumentations option is not recommended for most applications; refer to Configure EDOT Browser):
| Instrumentation | NPM package | Config key | On by default |
|---|---|---|---|
| Navigation timing | @opentelemetry/browser-instrumentation |
navigation-timing |
Yes |
| Resource timing | @opentelemetry/browser-instrumentation |
resource-timing |
Yes |
| Fetch | @opentelemetry/browser-instrumentation |
fetch |
Yes |
| XMLHttpRequest | @opentelemetry/browser-instrumentation |
xhr |
Yes |
| User action | @opentelemetry/browser-instrumentation |
user-action |
Yes |
| Errors | @opentelemetry/browser-instrumentation |
errors |
Yes |
| Web vitals | @opentelemetry/browser-instrumentation |
web-vitals |
Yes |
| Navigation | @opentelemetry/browser-instrumentation |
navigation |
Yes |
By default, EDOT Browser:
- Initializes tracing
- Registers included instrumentations
- Configures an OTLP exporter
- Applies Elastic-specific defaults (for example, resource detection or attribute normalization)
To turn off an instrumentation, pass disableInstrumentations with the instrumentation keys you want to disable (for example, disableInstrumentations: ['web-vitals']), or pass instrumentations with { enabled: false } for that key (for example, instrumentations: { 'web-vitals': { enabled: false } }). Prefer disableInstrumentations when you only need to disable defaults without passthrough configuration.
| Component | Version |
|---|---|
OpenTelemetry JS API (@opentelemetry/api) |
^1.9.0 |
OpenTelemetry Browser SDK (@opentelemetry/browser-sdk) |
^0.3.0 |
OpenTelemetry Browser Instrumentation (@opentelemetry/browser-instrumentation) |
^0.8.0 |
OpenTelemetry JS Trace SDK (@opentelemetry/sdk-trace) |
^2.12.0 |
OpenTelemetry JS Metrics SDK (@opentelemetry/sdk-metrics) |
^2.2.0 |
OpenTelemetry JS Logs SDK (@opentelemetry/sdk-logs) |
^0.223.0 |
OpenTelemetry JS Logs API (@opentelemetry/api-logs) |
^0.221.0 |
For capabilities that are not yet available and per-signal limitations (metrics, traces, logs), refer to Limitations on the overview page and Metrics, traces, and logs.
- Refer to Set up EDOT Browser and Install the agent to get started.
- Refer to Metrics, traces, and logs for what is emitted per signal and what is not yet supported.
- Review Configuration to customize behavior.
- Refer to Known limitations above, Troubleshooting for EDOT Browser–specific guidance, or OpenTelemetry ingest troubleshooting for general OTLP ingest issues.