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

0.35.0 • Public • Published

OpenTelemetry instrumentation for winston

NPM Published Version Apache License

This module provides automatic instrumentation for injection of trace context for the winston 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-winston

Usage

const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
const { WinstonInstrumentation } = require('@opentelemetry/instrumentation-winston');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');

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

registerInstrumentations({
  instrumentations: [
    new WinstonInstrumentation({
      // Optional hook to insert additional context to log metadata.
      // Called after trace context is injected to metadata.
      logHook: (span, record) => {
        record['resource.service.name'] = provider.resource.attributes['service.name'];
      },
    }),
    // other instrumentations
  ],
});

const winston = require('winston');
const logger = winston.createLogger({
  transports: [new winston.transports.Console()],
})
logger.info('foobar');
// {"message":"foobar","trace_id":"e21c7a95fff34e04f77c7bd518779621","span_id":"b7589a981fde09f4","trace_flags":"01", ...}

Fields added to Winston metadata

For the current active span, the following fields are injected:

  • trace_id
  • span_id
  • trace_flags

When no span context is active or the span context is invalid, injection is skipped.

Supported versions

1.x, 2.x, 3.x

Useful links

License

Apache 2.0 - See LICENSE for more information.

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.35.0
    73,901
    • latest

Version History

Package Sidebar

Install

npm i @opentelemetry/instrumentation-winston

Weekly Downloads

618,024

Version

0.35.0

License

Apache-2.0

Unpacked Size

43.1 kB

Total Files

18

Last publish

Collaborators

  • pichlermarc
  • bogdandrutu
  • dyladan