Skip to content

open-telemetry/opentelemetry-browser

OpenTelemetry Icon OpenTelemetry Browser

About

This repository is intended to be the central home for the OpenTelemetry Browser SDK.

Note: At present, web instrumentation packages are maintained in the JavaScript SDK repository or the JavaScript Contrib repository:

See the Packages section below for a list of browser-related packages.

Quick Start

Installation

npm install @opentelemetry/sdk-trace-web \
  @opentelemetry/opentelemetry-browser-detector \
  @opentelemetry/instrumentation \
  @opentelemetry/exporter-trace-otlp-http \
  @opentelemetry/instrumentation-fetch \
  @opentelemetry/instrumentation-xml-http-request

Basic example

import { BatchSpanProcessor, WebTracerProvider } from '@opentelemetry/sdk-trace-web';
import { resourceFromAttributes, detectResources } from '@opentelemetry/resources';
import { browserDetector } from '@opentelemetry/opentelemetry-browser-detector';
import { registerInstrumentations } from '@opentelemetry/instrumentation';
import { ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
import { FetchInstrumentation } from '@opentelemetry/instrumentation-fetch';
import { XMLHttpRequestInstrumentation } from '@opentelemetry/instrumentation-xml-http-request';

// configure resources
let resource = resourceFromAttributes({
  [ATTR_SERVICE_NAME]: 'my-app',
});
let detectedResources = await detectResources({detectors:[browserDetector]});
resource = resource.merge(detectedResources);

// configure exporter
const exporter = new OTLPTraceExporter({
  url: '<opentelemetry-collector-url>'
});

// initialize trace provider
const provider = new WebTracerProvider({
  resource,
  spanProcessors: [new BatchSpanProcessor(exporter)]
});
provider.register();

// Registering instrumentations
registerInstrumentations({
  instrumentations: [
    new FetchInstrumentation(),
    new XMLHttpRequestInstrumentation()
  ],
});

Packages

The following tables list browser-related packages, where they live today, and their intent.

SDK and Utilities

Package Location Intent Status
opentelemetry-sdk-trace-web opentelemetry-js/packages/opentelemetry-sdk-trace-web Browser tracing SDK (WebTracerProvider, web tracing setup). stable
opentelemetry-browser-detector opentelemetry-js/experimental/packages/opentelemetry-browser-detector Resource detector for browser environment attributes. experimental
web-common opentelemetry-js/experimental/packages/web-common Shared utilities for browser/web instrumentations. experimental
opentelemetry-context-zone opentelemetry-js/packages/opentelemetry-context-zone Zone.js-based context manager for maintaining trace context in browsers. stable
auto-instrumentations-web opentelemetry-js-contrib/packages/auto-instrumentations-web Bundle that auto-enables common web instrumentations. experimental

Instrumentations

Package Location Intent Status
opentelemetry-instrumentation-fetch opentelemetry-js/experimental/packages/opentelemetry-instrumentation-fetch Instrumentation for the Fetch API. experimental
opentelemetry-instrumentation-xml-http-request opentelemetry-js/experimental/packages/opentelemetry-instrumentation-xml-http-request Instrumentation for XMLHttpRequest. experimental
instrumentation-document-load opentelemetry-js-contrib/packages/instrumentation-document-load Capture document load/navigation timing spans. experimental
instrumentation-long-task opentelemetry-js-contrib/packages/instrumentation-long-task Capture Long Tasks API entries as spans. experimental
instrumentation-user-interaction opentelemetry-js-contrib/packages/instrumentation-user-interaction Trace user interactions (e.g., clicks). experimental
plugin-react-load opentelemetry-js-contrib/packages/plugin-react-load Instrument React application load/mount performance. experimental

Contributing

Maintainers

  • TODO

For more information about the maintainer role, see the community repository.

Approvers

  • TODO

For more information about the approver role, see the community repository.

About

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6