Defjs
OpenTelemetry Server

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 OpenTelemetryServerOptions

Required 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 }),
);
Edit this page on GitHub
Released under the MIT License. · Copyright © 2026 MunMunMiao