Skip to main content

OpenTelemetry

@inversifyjs/http-opentelemetry records OpenTelemetry spans and HTTP server metrics from the HTTP instrumentation events.

Register the sink​

import { Controller, Get } from '@inversifyjs/http-core';
import { InversifyHonoHttpAdapter } from '@inversifyjs/http-hono';
import { createHttpOpenTelemetrySink } from '@inversifyjs/http-opentelemetry';
import { Container } from 'inversify';

@Controller('/items')
export class ItemsController {
@Get()
public get(): string {
return 'hero';
}
}

export function createInstrumentedAdapter(
container: Container,
): InversifyHonoHttpAdapter {
container.bind(ItemsController).toSelf().inSingletonScope();

return new InversifyHonoHttpAdapter(container, {
instrumentation: [createHttpOpenTelemetrySink()],
logger: false,
});
}