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,
});
}