@opentelemetry/instrumentation-socket.io
TypeScript icon, indicating that this package has built-in type declarations

0.39.0 • Public • Published

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

Option Type Default Description
emitHook SocketIoHookFunction undefined hook for adding custom attributes before socket.io emits the event
emitIgnoreEventList string[] [] names of emitted events to ignore tracing for
onHook SocketIoHookFunction undefined hook for adding custom attributes before the event listener (callback) is invoked
onIgnoreEventList string[] [] names of listened events to ignore tracing for
traceReserved boolean false set 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.

Package Sidebar

Install

npm i @opentelemetry/instrumentation-socket.io

Weekly Downloads

490,031

Version

0.39.0

License

Apache-2.0

Unpacked Size

76.4 kB

Total Files

21

Last publish

Collaborators

  • pichlermarc
  • bogdandrutu
  • dyladan