
Product
Introducing Socket Scanning for OpenVSX Extensions
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.
@opentelemetry/instrumentation-koa
Advanced tools
OpenTelemetry instrumentation for `koa` http web application framework
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+.
| Maturity | Component Owner | Compatibility |
|---|---|---|
| Unmaintained | N/A | API 1.0+ SDK 1.0+ |
npm install --save @opentelemetry/instrumentation-koa
koa versions >=2.0.0 <4@koa/router versions >=8.0.0OpenTelemetry 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.
| 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.requestHookInstrumentation 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
)
}
});
This package provides automatic tracing for middleware added using either the core koa package or the @koa/router package.
Apache 2.0 - See LICENSE for more information.
@opentelemetry/instrumentation-express provides similar functionality for Express applications. It automatically captures and exports trace data for incoming HTTP requests in Express, allowing developers to monitor and gain insights into their Express-based applications.
@opentelemetry/instrumentation-hapi offers automatic tracing and monitoring for Hapi applications. Like @opentelemetry/instrumentation-koa, it captures and exports telemetry data, but it is specifically designed for Hapi-based applications.
@opentelemetry/instrumentation-fastify provides automatic tracing for Fastify applications. It captures and exports trace data for incoming HTTP requests, similar to @opentelemetry/instrumentation-koa, but is tailored for Fastify.
FAQs
OpenTelemetry instrumentation for `koa` http web application framework
The npm package @opentelemetry/instrumentation-koa receives a total of 6,971,349 weekly downloads. As such, @opentelemetry/instrumentation-koa popularity was classified as popular.
We found that @opentelemetry/instrumentation-koa demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.

Product
Bringing supply chain security to the next generation of JavaScript package managers

Product
A safer, faster way to eliminate vulnerabilities without updating dependencies