JSPM

  • Created
  • Published
  • Downloads 959403
  • Score
    100M100P100Q209155F
  • License Apache-2.0

OpenTelemetry Web Tracer

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@opentelemetry/sdk-trace-web) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    OpenTelemetry Web SDK

    NPM Published Version Apache License

    This module provides automated instrumentation and tracing for Web applications.

    For manual instrumentation see the @opentelemetry/sdk-trace-base package.

    How does automatic tracing work

    This package exposes a class WebTracerProvider that will be able to automatically trace things in Browser only.

    See the example how to use it.

    OpenTelemetry comes with a growing number of instrumentations for well know modules (see supported modules) and an API to create custom instrumentations (see the instrumentation developer guide).

    Web Tracer currently supports one plugin for document load. Unlike Node Tracer (NodeTracerProvider), the plugins needs to be initialized and passed in configuration. The reason is to give user full control over which plugin will be bundled into web page.

    You can choose to use the ZoneContextManager if you want to trace asynchronous operations. Please note that the ZoneContextManager does not work with JS code targeting ES2017+. In order to use the ZoneContextManager, please transpile back to ES2015.

    Installation

    npm install --save @opentelemetry/sdk-trace-web

    Usage

    import {
      ConsoleSpanExporter,
      SimpleSpanProcessor,
      WebTracerProvider,
    } from '@opentelemetry/sdk-trace-web';
    import { DocumentLoad } from '@opentelemetry/plugin-document-load';
    import { ZoneContextManager } from '@opentelemetry/context-zone';
    import { registerInstrumentations } from '@opentelemetry/instrumentation';
    
    const provider = new WebTracerProvider({
      spanProcessors: [new SimpleSpanProcessor(new ConsoleSpanExporter())]
    });
    
    provider.register({
      // Changing default contextManager to use ZoneContextManager - supports asynchronous operations - optional
      contextManager: new ZoneContextManager(),
    });
    
    // Registering instrumentations / plugins
    registerInstrumentations({
      instrumentations: [
        new DocumentLoad(),
      ],
    });
    

    License

    Apache 2.0 - See LICENSE for more information.