0.39.0 • Published 10 days ago

@opentelemetry/instrumentation-socket.io v0.39.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
10 days ago

OpenTelemetry socket.io Instrumentation for Node.js

NPM Published Version Apache License

This module provides automatic instrumentation for the socket.io module, which may be loaded using the @opentelemetry/sdk-trace-node package and is included in the @opentelemetry/auto-instrumentations-node bundle.

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

Compatible with OpenTelemetry JS API and SDK 1.0+.

Installation

npm install --save @opentelemetry/instrumentation-socket.io

Supported Versions

  • >=2 <5

Usage

To load a specific plugin, specify it in the registerInstrumentations's configuration:

const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
const {
  SocketIoInstrumentation,
} = require("@opentelemetry/instrumentation-socket.io");
const { registerInstrumentations } = require("@opentelemetry/instrumentation");

const provider = new NodeTracerProvider();
provider.register();

registerInstrumentations({
  instrumentations: [new SocketIoInstrumentation()],
});

Optional Parameters

OptionTypeDefaultDescription
emitHookSocketIoHookFunctionundefinedhook for adding custom attributes before socket.io emits the event
emitIgnoreEventListstring[][]names of emitted events to ignore tracing for
onHookSocketIoHookFunctionundefinedhook for adding custom attributes before the event listener (callback) is invoked
onIgnoreEventListstring[][]names of listened events to ignore tracing for
traceReservedbooleanfalseset to true if you want to trace socket.io reserved events (see docs)

Migration From opentelemetry-instrumentation-socket.io

This instrumentation was originally published and maintained under the name "opentelemetry-instrumentation-socket.io" in this repo.

Few breaking changes were made during porting to the contrib repo:

filterHttpTransport

The instrumentation's config filterHttpTransport option was removed to decouple this instrumentation from the http instrumentation. if you do not want to trace the socket.io http requests, add the default socket.io route (/socket.io/) to the HttpInstrumentationConfig.ignoreIncomingPaths array

Useful links

License

Apache 2.0 - See LICENSE for more information.