@opentelemetry/instrumentation-koa
OpenTelemetry instrumentation for `koa` http web application framework
Last updated 16 days ago by GitHub Actions .
Apache-2.0 · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @opentelemetry/instrumentation-koa 
SYNC missed versions from official npm registry.

OpenTelemetry Koa Instrumentation for Node.js

NPM Published Version Apache License

This module provides automatic instrumentation for the Koa 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+.

Status

Maturity Component Owner Compatibility
Unmaintained N/A API 1.0+
SDK 1.0+

Installation

npm install --save @opentelemetry/instrumentation-koa

Supported Versions

Usage

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

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

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

registerInstrumentations({
  instrumentations: [
    new KoaInstrumentation(),
  ],
});

See examples/koa for a short example using both Koa and @koa/router.

Note that generator-based middleware are deprecated and won't be instrumented.

Koa Instrumentation Options

Options Type Example Description
ignoreLayersType KoaLayerType[] ['middleware'] Ignore layers of specified type.
requestHook KoaRequestCustomAttributeFunction (span, info) => {} Function for adding custom attributes to Koa middleware layers. Receives params: Span, KoaRequestInfo.

ignoreLayersType accepts an array of KoaLayerType which can take the following string values:

  • router,
  • middleware.

Using requestHook

Instrumentation configuration accepts a custom "hook" function which will be called for every instrumented Koa middleware layer involved in a request. Custom attributes can be set on the span or run any custom logic per layer.

NOTE: KoaRequestInfo.context and KoaRequestInfo.middlewareLayer are typed as any. If you want type support make sure you have @types/koa and @types/koa__router installed then you can use the following type definitions:

import { KoaInstrumentation } from "@opentelemetry/instrumentation-koa"
import type { Middleware, ParameterizedContext, DefaultState } from 'koa';
import type { RouterParamContext } from '@koa/router';

type KoaContext = ParameterizedContext<DefaultState, RouterParamContext>;
type KoaMiddleware = Middleware<DefaultState, KoaContext>;

const koaInstrumentation = new KoaInstrumentation({
  requestHook: function (span: Span, info: KoaRequestInfo<KoaContext, KoaMiddleware>) {
    span.setAttribute(
      'http.method',
      info.context.request.method
    )
  }
});

Koa Packages

This package provides automatic tracing for middleware added using either the core koa package or the @koa/router package.

Useful links

License

Apache 2.0 - See LICENSE for more information.

Current Tags

  • 0.62.0                                ...           latest (16 days ago)

62 Versions

  • 0.62.0                                ...           16 days ago
  • 0.61.0                                ...           a month ago
  • 0.60.0                                ...           2 months ago
  • 0.59.0                                ...           3 months ago
  • 0.58.0                                ...           3 months ago
  • 0.57.1                                ...           4 months ago
  • 0.57.0                                ...           5 months ago
  • 0.56.0                                ...           6 months ago
  • 0.55.0                                ...           6 months ago
  • 0.54.2                                ...           6 months ago
  • 0.54.1                                ...           6 months ago
  • 0.53.0                                ...           7 months ago
  • 0.52.0                                ...           7 months ago
  • 0.51.0                                ...           9 months ago
  • 0.50.2                                ...           9 months ago
  • 0.50.1                                ...           10 months ago
  • 0.50.0                                ...           10 months ago
  • 0.49.0                                ...           a year ago
  • 0.48.0                                ...           a year ago
  • 0.47.1                                ...           a year ago
  • 0.47.0                                ...           a year ago
  • 0.46.0                                ...           a year ago
  • 0.45.0                                ...           a year ago
  • 0.44.0                                ...           a year ago
  • 0.43.0                                ...           2 years ago
  • 0.42.0                                ...           2 years ago
  • 0.41.0                                ...           2 years ago
  • 0.40.0                                ...           2 years ago
  • 0.39.0                                ...           2 years ago
  • 0.38.0                                ...           2 years ago
  • 0.37.0                                ...           2 years ago
  • 0.36.4                                ...           2 years ago
  • 0.36.3                                ...           2 years ago
  • 0.36.2                                ...           2 years ago
  • 0.36.1                                ...           3 years ago
  • 0.36.0                                ...           3 years ago
  • 0.35.0                                ...           3 years ago
  • 0.34.6                                ...           3 years ago
  • 0.34.5                                ...           3 years ago
  • 0.34.4                                ...           3 years ago
  • 0.34.3                                ...           3 years ago
  • 0.34.2                                ...           3 years ago
  • 0.34.1                                ...           3 years ago
  • 0.34.0                                ...           3 years ago
  • 0.33.0                                ...           3 years ago
  • 0.32.0                                ...           4 years ago
  • 0.31.0                                ...           4 years ago
  • 0.30.0                                ...           4 years ago
  • 0.29.0                                ...           4 years ago
  • 0.28.1                                ...           4 years ago
  • 0.28.0                                ...           4 years ago
  • 0.27.0                                ...           4 years ago
  • 0.26.0                                ...           4 years ago
  • 0.25.0                                ...           5 years ago
  • 0.24.0                                ...           5 years ago
  • 0.23.0                                ...           5 years ago
  • 0.22.0                                ...           5 years ago
  • 0.21.0                                ...           5 years ago
  • 0.20.0                                ...           5 years ago
  • 0.16.0                                ...           5 years ago
  • 0.15.0                                ...           5 years ago
  • 0.14.0                                ...           5 years ago
Downloads
Today 0
This Week 0
This Month 59
Last Day 0
Last Week 59
Last Month 0

Copyright 2013 - present © cnpmjs.org | Home |