@opentelemetry/instrumentation-knex

OpenTelemetry Knex automatic instrumentation package

Usage no npm install needed!

<script type="module">
  import opentelemetryInstrumentationKnex from 'https://cdn.skypack.dev/@opentelemetry/instrumentation-knex';
</script>

README

OpenTelemetry Knex Instrumentation for Node.js

NPM Published Version dependencies devDependencies Apache License

This module provides automatic instrumentation for knex and allows the user to automatically collect trace data and export them to their backend of choice.

For automatic instrumentation see the @opentelemetry/sdk-trace-node package.

Compatible with OpenTelemetry JS API and SDK 1.0+.

Installation

npm install --save @opentelemetry/instrumentation-knex

Supported Versions

  • >=0.10.0

Usage

const { KnexInstrumentation, KnexInstrumentationConfig } = require('@opentelemetry/instrumentation-knex');
const { ConsoleSpanExporter, SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');
const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');

const provider = new NodeTracerProvider();

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

registerInstrumentations({
  instrumentations: [
    new KnexInstrumentation(
      new KnexInstrumentationConfig({
        maxQueryLength: 100,
      })
    )],
  tracerProvider: provider,
});

Configuration Options

Options Type Example Description
maxQueryLength number 100 Truncate db.statement attribute to a maximum length. If the statement is truncated '..' is added to it's end. Default 1022. -1 leaves db.statement untouched.

Useful links

License

Apache 2.0 - See LICENSE for more information.