kelvin-web
TypeScript icon, indicating that this package has built-in type declarations

0.12.2 • Public • Published

OpenTelemetry Web SDK

Gitter chat NPM Published Version dependencies devDependencies Apache License

This module provides automated instrumentation and tracing for Web applications.

For manual instrumentation see the @opentelemetry/tracing 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 instrumentation plugins for well know modules (see supported modules) and an API to create custom plugins (see the plugin developer guide).

Web Tracer currently supports one plugin for document load. Unlike Node Tracer (NodeTracerProvider), the plugins needs to be initialised 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/web

Usage

import { ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/tracing';
import { WebTracerProvider } from '@opentelemetry/web';
import { DocumentLoad } from '@opentelemetry/plugin-document-load';
import { ZoneContextManager } from '@opentelemetry/context-zone';

// Minimum required setup - supports only synchronous operations
const provider = new WebTracerProvider({
  plugins: [
    new DocumentLoad()
  ]
});

provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
provider.register();

const providerWithZone = new WebTracerProvider({
  plugins: [
    new DocumentLoad()
  ]
});
providerWithZone.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));

// Changing default contextManager to use ZoneContextManager - supports asynchronous operations
providerWithZone.register({
  contextManager: new ZoneContextManager(),
});

Useful links

License

Apache 2.0 - See LICENSE for more information.

Package Sidebar

Install

npm i kelvin-web

Weekly Downloads

0

Version

0.12.2

License

Apache-2.0

Unpacked Size

60.1 kB

Total Files

24

Last publish

Collaborators

  • kelvin.lo