Security News
Introducing the Socket Python SDK
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
@opentelemetry/instrumentation-koa
Advanced tools
OpenTelemetry Koa automatic instrumentation package.
@opentelemetry/instrumentation-koa is an npm package that provides automatic tracing and monitoring for Koa applications using OpenTelemetry. It helps developers gain insights into the performance and behavior of their Koa-based applications by capturing and exporting telemetry data such as traces and metrics.
Automatic Tracing
This code sets up automatic tracing for a Koa application. It initializes the OpenTelemetry tracer provider and registers the Koa instrumentation, which automatically captures and exports trace data for incoming HTTP requests.
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(),
],
tracerProvider: provider,
});
const Koa = require('koa');
const app = new Koa();
app.use(async (ctx) => {
ctx.body = 'Hello World';
});
app.listen(3000);
Custom Span Attributes
This code demonstrates how to add custom attributes to spans in a Koa application. The `requestHook` option allows you to modify spans by adding custom attributes, which can be useful for adding additional context to your traces.
const { context, trace } = require('@opentelemetry/api');
const { KoaInstrumentation } = require('@opentelemetry/instrumentation-koa');
const koaInstrumentation = new KoaInstrumentation({
requestHook: (span, ctx) => {
span.setAttribute('http.custom_attribute', 'custom_value');
},
});
const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');
const provider = new NodeTracerProvider();
provider.register();
registerInstrumentations({
instrumentations: [koaInstrumentation],
tracerProvider: provider,
});
const Koa = require('koa');
const app = new Koa();
app.use(async (ctx) => {
ctx.body = 'Hello World';
});
app.listen(3000);
@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.
This module provides automatic instrumentation for Koa
.
For automatic instrumentation see the @opentelemetry/node package.
npm install --save @opentelemetry/instrumentation-koa
^2.0.0
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/node');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');
const { KoaInstrumentation } = require('@opentelemetry/instrumentation-koa');
const provider = new NodeTracerProvider();
provider.register();
registerInstrumentations({
instrumentations: [
new KoaInstrumentation(),
],
tracerProvider: provider,
});
See examples/koa for a short example using both Koa and @koa/router
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.
0.16.0
opentelemetry-host-metrics
, opentelemetry-id-generator-aws-xray
, opentelemetry-test-utils
opentelemetry-id-generator-aws-xray
opentelemetry-host-metrics
, opentelemetry-test-utils
FAQs
OpenTelemetry instrumentation for `koa` http web application framework
The npm package @opentelemetry/instrumentation-koa receives a total of 1,645,931 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 3 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.
Security News
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
Security News
Floating dependency ranges in npm can introduce instability and security risks into your project by allowing unverified or incompatible versions to be installed automatically, leading to unpredictable behavior and potential conflicts.
Security News
A new Rust RFC proposes "Trusted Publishing" for Crates.io, introducing short-lived access tokens via OIDC to improve security and reduce risks associated with long-lived API tokens.