npm.io
0.68.0 • Published 1 week ago

@opentelemetry/auto-instrumentations-web

Licence
Apache-2.0
Version
0.68.0
Deps
5
Size
38 kB
Vulns
0
Weekly
0
Stars
934

OpenTelemetry Meta Packages for Web

NPM Published Version Apache License

Installation

npm install --save @opentelemetry/auto-instrumentations-web

Usage

import { context, propagation, trace } from '@opentelemetry/api';
import { getWebAutoInstrumentations } from '@opentelemetry/auto-instrumentations-web';
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-proto';
import { BatchSpanProcessor, TracerProvider } from '@opentelemetry/sdk-trace';
import { registerInstrumentations } from '@opentelemetry/instrumentation';
import { ZoneContextManager } from '@opentelemetry/context-zone';
import { CompositePropagator, W3CBaggagePropagator, W3CTraceContextPropagator } from '@opentelemetry/core';

const tracerProvider = new TracerProvider({
  spanProcessors: [
    new BatchSpanProcessor({ exporter: new OTLPTraceExporter() }),
  ],
});
trace.setGlobalTracerProvider(tracerProvider);

context.setGlobalContextManager(new ZoneContextManager().enable());

const propagator = new CompositePropagator({
  propagators: [
    new W3CTraceContextPropagator(),
    new W3CBaggagePropagator(),
  ],
});
propagation.setGlobalPropagator(propagator);

registerInstrumentations({
  instrumentations: [
    getWebAutoInstrumentations({
      // load custom configuration for xml-http-request instrumentation
      '@opentelemetry/instrumentation-xml-http-request': {
        clearTimingResources: true,
      },
    }),
  ],
});

Supported instrumentations

License

Apache 2.0 - See LICENSE for more information.