@opentelemetry/instrumentation-long-task
TypeScript icon, indicating that this package has built-in type declarations

0.38.0 • Public • Published

OpenTelemetry Long Task Instrumentation for web

NPM Published Version Apache License

This module provides automatic instrumentation for Long Task API which may be loaded using the @opentelemetry/sdk-trace-web package. It creates spans from tasks that take more than 50 milliseconds, all of the data reported via PerformanceLongTaskTiming is included as span attributes.

If total installation size is not constrained, it is recommended to use the @opentelemetry/auto-instrumentations-web bundle with @opentelemetry/sdk-trace-web for the most seamless instrumentation experience.

Compatible with OpenTelemetry JS API and SDK 1.0+.

Installation

npm install --save @opentelemetry/instrumentation-long-task

Usage

import { ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base';
import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
import { LongTaskInstrumentation } from '@opentelemetry/instrumentation-long-task';
import { registerInstrumentations } from '@opentelemetry/instrumentation';

const provider = new WebTracerProvider();

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

registerInstrumentations({
  tracerProvider: provider,
  instrumentations: [
    new LongTaskInstrumentation({
      // see under for available configuration
    }),
  ],
});

longtask Instrumentation Options

Options Type Description
observerCallback ObserverCallback Callback executed on observed longtask, allowing additional attributes to be attached to the span.

The observerCallback function is passed the created span and the longtask PerformanceEntry, allowing the user to add custom attributes to the span with any logic. For example, a web app with client-side routing can add contextual information on the current page, even if the tracer was instantiated before navigation.

Usage Example:

longtaskInstrumentationConfig = {
  observerCallback: (span, longtaskEvent) => {
    span.setAttribute('location.pathname', window.location.pathname)
  }
}

Useful links

License

Apache 2.0 - See LICENSE for more information.

Package Sidebar

Install

npm i @opentelemetry/instrumentation-long-task

Weekly Downloads

1,267

Version

0.38.0

License

Apache-2.0

Unpacked Size

75.6 kB

Total Files

51

Last publish

Collaborators

  • pichlermarc
  • bogdandrutu
  • dyladan