Skip to content

Observability

First-class OpenTelemetry support via @connectum/otel -- distributed tracing, metrics, and structured logging for your Connectum services.

Quick Start

typescript
import { createServer } from '@connectum/core';
import { createOtelInterceptor } from '@connectum/otel';
import routes from '#gen/routes.js';

const server = createServer({
  services: [routes],
  port: 5000,
  interceptors: [
    createOtelInterceptor({
      filter: ({ service }) => !service.includes('grpc.health'),
    }),
  ],
});

await server.start();
bash
# .env
OTEL_SERVICE_NAME=my-service
OTEL_TRACES_EXPORTER=otlp
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318

Installation

bash
pnpm add @connectum/otel

Peer dependencies (installed automatically): @opentelemetry/api, @opentelemetry/sdk-node.

Key Concepts

ConceptDescription
Server InterceptorcreateOtelInterceptor() -- traces all incoming RPC calls
Client InterceptorcreateOtelClientInterceptor() -- propagates trace context to outgoing calls
Deep Tracingtraced() and traceAll() -- instrument business logic functions
MetricsgetMeter() -- counters, histograms, gauges via OpenTelemetry
LogginggetLogger() -- structured logging with trace correlation
BackendsConfigure via environment variables -- Jaeger, Grafana, any OTLP collector

Learn More