withOpenTelemetryServer
Client option that installs outbound OpenTelemetry interceptors for HTTP, SSE, and WebSocket.
@defjs/opentelemetry-server · Function
Signature
function withOpenTelemetryServer( options: OpenTelemetryServerOptions, ): ClientOption;
Appends one interceptor per enabled transport, in the order HTTP, SSE, WebSocket. Apply it at createClient time. It does not initialize the OpenTelemetry SDK or acquire global tracer, meter, or logger handles: pass the ones your application owns. Each transport can be toggled or customized via http, sse, and webSocket.
options is required. It carries tracer, meter, logger, propagator, requireParentSpan, and the http / sse / webSocket transport options. Pass {} to install the interceptors with propagation only.
Each of tracer, meter and logger is optional and works without the others. Without tracer, the plugin creates no local spans, never calls trace.getTracer(...), and skips startSpanHook, requestHook and responseHook. Propagation still forwards the extracted parent context.
HTTP, SSE, and WebSocket are on by default. Pass { enabled: false } on a transport to skip it.
Parameters
Prop
Type
options OpenTelemetryServerOptionsRequired settings object. Each of tracer, meter, logger, and propagator may be omitted; pass {} for propagation only.
Returns
A ClientOption for createClient(...).
Examples
import { createClient, withEndpoint } from "@defjs/core"; import { withOpenTelemetryServer } from "@defjs/opentelemetry-server"; import { trace } from "@opentelemetry/api"; import { logs } from "@opentelemetry/api-logs"; const tracer = trace.getTracer("orders-service"); const logger = logs.getLogger("@defjs/opentelemetry-server"); const client = createClient( withEndpoint("https://api.example.com"), withOpenTelemetryServer({ tracer, logger }), );