2.1.0 • Published 8 months ago

@loglayer/plugin-opentelemetry v2.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

OpenTelemetry Plugin for LogLayer

NPM Version NPM Downloads TypeScript

The OpenTelemetry plugin for LogLayer uses the @opentelemetry/api to store the following in the log context:

  • trace_id
  • span_id
  • trace_flags

This allows you to cross-reference your logs with generated traces.

Note

If you are using OpenTelemetry with log processors, use the OpenTelemetry Transport. If you don't know what that is, then you'll want to use this plugin instead of the transport.

Installation

npm install @loglayer/plugin-opentelemetry loglayer

Usage

import { LogLayer, ConsoleTransport } from 'loglayer'
import { openTelemetryPlugin } from '@loglayer/plugin-opentelemetry'

const log = new LogLayer({
  transport: new ConsoleTransport({
    logger: console
  }),
  plugins: [
    openTelemetryPlugin()
  ]
})

// Example usage
log.info("Hello world")
// Output: Hello world!

Configuration

The plugin accepts the following configuration options:

interface OpenTelemetryPluginParams {
  /**
   * If specified, all trace fields will be nested under this key
   */
  traceFieldName?: string;
  
  /**
   * Field name for the trace ID. Defaults to 'trace_id'
   */
  traceIdFieldName?: string;
  
  /**
   * Field name for the span ID. Defaults to 'span_id'
   */
  spanIdFieldName?: string;
  
  /**
   * Field name for the trace flags. Defaults to 'trace_flags'
   */
  traceFlagsFieldName?: string;
  
  /**
   * Unique identifier for the plugin
   */
  id?: string;
  
  /**
   * Whether the plugin is disabled
   */
  disabled?: boolean;
}

Example with Custom Configuration

const log = new LogLayer({
  transport: new ConsoleTransport({
    logger: console
  }),
  plugins: [
    openTelemetryPlugin({
      // Nest all trace fields under 'trace'
      traceFieldName: 'trace',
      // Custom field names
      traceIdFieldName: 'traceId',
      spanIdFieldName: 'spanId',
      traceFlagsFieldName: 'flags'
    })
  ]
})

This would output logs with the following structure:

{
  "trace": {
    "traceId": "8de71fcab951aad172f1148c74d0877e",
    "spanId": "349623465c6dfc1b",
    "flags": "01"
  }
}

Documentation

For more details, visit https://loglayer.dev/plugins/opentelemetry

2.1.0

8 months ago

2.0.4

10 months ago

2.0.3

10 months ago

2.0.2

10 months ago

2.0.1

11 months ago

2.0.0

11 months ago

1.0.6

11 months ago

1.0.5

11 months ago

1.0.4

11 months ago

1.0.3

12 months ago

1.0.2

12 months ago

1.0.1

12 months ago

1.0.0

12 months ago