@opentelemetry/hapi-instrumentation

OpenTelemetry Hapi automatic instrumentation package.

Usage no npm install needed!

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

README

OpenTelemetry Hapi Instrumentation for Node.js

Gitter chat dependencies devDependencies Apache License

This module provides automatic instrumentation for Hapi.

For automatic instrumentation see the @opentelemetry/node package.

Installation

npm install --save @opentelemetry/hapi-instrumentation

Supported Versions

  • @hapi/hapi ^17.0.0

Usage

OpenTelemetry Hapi Instrumentation allows the user to automatically collect trace data and export them to their backend of choice, to give observability to distributed systems.

To load a specific instrumentation (Hapi in this case), specify it in the registerInstrumentations' configuration.

const { NodeTracerProvider } = require('@opentelemetry/node');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');

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

registerInstrumentations({
  instrumentations: [
    {
      plugins: {
        '@hapi/hapi': {
          enabled: true,
          // You may use a package name or absolute path to the file.
          path: '@opentelemetry/hapi-instrumentation',
        }
      },
    },
  ],
  tracerProvider: provider,
});

To load all of the supported instrumentations, use below approach. Each instrumentation is only loaded when the module that it patches is loaded; in other words, there is no computational overhead for listing instrumentations for unused modules.

const { NodeTracerProvider } = require('@opentelemetry/node');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');

const provider = new NodeTracerProvider();
provider.register();
registerInstrumentations({
  tracerProvider: provider,
});

See examples/hapi for a short example using Hapi

Hapi Instrumentation Support

This package provides automatic tracing for hapi server routes and request lifecycle extensions defined either directly or via a Hapi plugin.

Useful links

License

Apache 2.0 - See LICENSE for more information.