opentelemetry

js/opentelemetry.ts

fino:opentelemetry - tracing, metrics, logs, and SDK helpers.

This backward-compatible facade re-exports the public OpenTelemetry surface from signal-specific modules and SDK helpers. New code can import narrower surfaces from fino:opentelemetry/traces, fino:opentelemetry/metrics, fino:opentelemetry/logs, and fino:opentelemetry/sdk.

Use this facade when configuring telemetry for an application or when creating manual spans, logs, or metrics. Defaults are intentionally local: the SDK exporter targets OTLP/HTTP on http://127.0.0.1:4318, trace context uses W3C traceparent, tracestate, and baggage, and resources default to unknown_service until a service name is provided.

The release baseline is Fino-native rather than strict package parity with @opentelemetry/api or upstream SDK packages. It covers stable tracing, metrics, logs, resources, propagation, in-memory export, and OTLP/HTTP JSON export. OTLP protobuf, OTLP/gRPC, and full upstream semantic-convention package compatibility are intentionally outside this module's baseline.

Conformance matrix

Area Baseline Coverage
Traces Fino-native tracer/provider/span model with W3C context fields, span events, links, status, limits, and in-memory or OTLP export. tests/opentelemetry.test.ts
Logs Log records, severities, attributes, resource/scope metadata, active trace correlation, and export through SDK processors. tests/opentelemetry.test.ts
Metrics Counters, up-down counters, histograms, gauges, observable instruments, views, exemplars, and aggregation export. tests/opentelemetry.test.ts
Resources Default unknown_service, user attributes, merging, schema URL, and resource metadata on exported signals. tests/opentelemetry.test.ts
W3C Trace Context traceparent and tracestate inject/extract propagation for active telemetry contexts. tests/opentelemetry.test.ts
W3C Baggage Baggage item parsing, mutation, serialization, and carrier propagation. tests/opentelemetry.test.ts
OTLP/HTTP JSON JSON request shape for trace, metric, and log signal export over OTLP/HTTP. tests/opentelemetry-http.integration.test.ts
Retry Configurable retry attempts, delay, backoff, jitter, and retryable HTTP failure handling. tests/opentelemetry-http.integration.test.ts
Compression OTLP/HTTP JSON gzip request compression. tests/opentelemetry-http.integration.test.ts
Partial success OTLP partial-success responses are surfaced without treating the export as a transport failure. tests/opentelemetry-http.integration.test.ts
Upstream package parity Intentional limit: module names, constructors, semantic-convention packages, and SDK shape are Fino-native rather than a drop-in upstream package mirror. Documented release boundary
OTLP protobuf Intentional limit: protobuf encoding is outside the current release baseline. Documented release boundary
OTLP/gRPC Intentional limit: gRPC transport is outside the current release baseline. Documented release boundary
import { OtelSDK, InMemoryExporter, getTracerProvider } from 'fino:opentelemetry';

const memory = new InMemoryExporter();
new OtelSDK({ exporters: [memory] }).start();
const span = getTracerProvider().getTracer('app').startSpan('work');
span.end();

See OpenTelemetry concepts: https://opentelemetry.io/docs/concepts/

Classes

class AlwaysOnSampler extends Sampler {

Re-exported from js/opentelemetry/traces.AlwaysOnSampler.

class Sampler {

Re-exported from js/opentelemetry/traces.Sampler.

class Span {

Re-exported from js/opentelemetry/traces.Span.

class Tracer {

Re-exported from js/opentelemetry/traces.Tracer.

class TracerProvider extends BaseProvider {

Re-exported from js/opentelemetry/traces.TracerProvider.

class Counter {

Re-exported from js/opentelemetry/metrics.Counter.

class Gauge {

Re-exported from js/opentelemetry/metrics.Gauge.

class HistogramInstrument {

Re-exported from js/opentelemetry/metrics.HistogramInstrument.

class Meter {

Re-exported from js/opentelemetry/metrics.Meter.

class MeterProvider extends BaseProvider {

Re-exported from js/opentelemetry/metrics.MeterProvider.

class ObservableCounter extends ObservableGauge {

Re-exported from js/opentelemetry/metrics.ObservableCounter.

class ObservableGauge {

Re-exported from js/opentelemetry/metrics.ObservableGauge.

class ObservableUpDownCounter extends ObservableGauge {

Re-exported from js/opentelemetry/metrics.ObservableUpDownCounter.

class UpDownCounter {

Re-exported from js/opentelemetry/metrics.UpDownCounter.

class LogRecordBuilder {

Re-exported from js/opentelemetry/logs.LogRecordBuilder.

class Logger {

Re-exported from js/opentelemetry/logs.Logger.

class LoggerProvider extends BaseProvider {

Re-exported from js/opentelemetry/logs.LoggerProvider.

class BatchLogRecordProcessor extends LogRecordProcessor {

Re-exported from js/opentelemetry/sdk.BatchLogRecordProcessor.

class BatchSpanProcessor extends SpanProcessor {

Re-exported from js/opentelemetry/sdk.BatchSpanProcessor.

class InMemoryExporter {

Re-exported from js/opentelemetry/sdk.InMemoryExporter.

class LogRecordProcessor {

Re-exported from js/opentelemetry/sdk.LogRecordProcessor.

class ManualMetricReader extends MetricReader {

Re-exported from js/opentelemetry/sdk.ManualMetricReader.

class MetricReader {

Re-exported from js/opentelemetry/sdk.MetricReader.

class OtelSDK {

Re-exported from js/opentelemetry/sdk.OtelSDK.

class PeriodicMetricReader extends MetricReader {

Re-exported from js/opentelemetry/sdk.PeriodicMetricReader.

class SpanProcessor {

Re-exported from js/opentelemetry/sdk.SpanProcessor.

class Baggage {

Re-exported from js/opentelemetry/sdk.Baggage.

class BaseProvider {

Re-exported from js/opentelemetry/sdk.BaseProvider.

class Resource {

Re-exported from js/opentelemetry/sdk.Resource.

class TextMapPropagator {

Re-exported from js/opentelemetry/sdk.TextMapPropagator.

class W3CTraceContextPropagator extends TextMapPropagator {

Re-exported from js/opentelemetry/sdk.W3CTraceContextPropagator.

Functions

function applySpanLimits(span: SpanRecord, limits: SpanLimits = {}): SpanRecord

Re-exported from js/opentelemetry/traces.applySpanLimits.

function getActiveSpan(): Span | undefined

Re-exported from js/opentelemetry/traces.getActiveSpan.

function getActiveSpanContext(): TraceContext | null

Re-exported from js/opentelemetry/traces.getActiveSpanContext.

function getTracerProvider(): TracerProvider

Re-exported from js/opentelemetry/traces.getTracerProvider.

function isScopedTraceTopic( name: string, phase: 'start' | 'end' | 'event' | 'attribute' | 'link' | 'status' | 'rename' ): boolean

Re-exported from js/opentelemetry/traces.isScopedTraceTopic.

function isTracerProviderContextEnabled(): boolean

Re-exported from js/opentelemetry/traces.isTracerProviderContextEnabled.

function runWithActiveSpan<R>(span: Span, fn: () => R): R

Re-exported from js/opentelemetry/traces.runWithActiveSpan.

function runWithTracerProvider<R>(provider: TracerProvider, fn: () => R): R

Re-exported from js/opentelemetry/traces.runWithTracerProvider.

function runWithoutTracerProvider<R>(fn: () => R): R

Re-exported from js/opentelemetry/traces.runWithoutTracerProvider.

function setTracerProvider(provider: TracerProvider): void

Re-exported from js/opentelemetry/traces.setTracerProvider.

function accumulateMetric(store: Map<string, MetricRecord>, key: string, metric: MetricRecord): void

Re-exported from js/opentelemetry/metrics.accumulateMetric.

function applyMetricView(metric: MetricRecord, views: MetricView[]): MetricRecord

Re-exported from js/opentelemetry/metrics.applyMetricView.

function attributesKey(attributes: Attributes): string

Re-exported from js/opentelemetry/metrics.attributesKey.

function cloneMetric(metric: MetricRecord): MetricRecord

Re-exported from js/opentelemetry/metrics.cloneMetric.

function gaugeFromSignal(meter: Meter, name: string, signal: ReadonlySignal<number>, options: MetricInstrumentOptions & { attributes?: Attributes; } = {}): ObservableGauge

Re-exported from js/opentelemetry/metrics.gaugeFromSignal.

function getMeterProvider(): MeterProvider

Re-exported from js/opentelemetry/metrics.getMeterProvider.

function metricInstrumentKey(metric: MetricRecord): string

Re-exported from js/opentelemetry/metrics.metricInstrumentKey.

function metricSeriesKey(metric: MetricRecord): string

Re-exported from js/opentelemetry/metrics.metricSeriesKey.

function normalizeMetricKind(kind: string | undefined): string

Re-exported from js/opentelemetry/metrics.normalizeMetricKind.

function runWithMeterProvider<R>(provider: MeterProvider, fn: () => R): R

Re-exported from js/opentelemetry/metrics.runWithMeterProvider.

function runWithoutMeterProvider<R>(fn: () => R): R

Re-exported from js/opentelemetry/metrics.runWithoutMeterProvider.

function setMeterProvider(provider: MeterProvider): void

Re-exported from js/opentelemetry/metrics.setMeterProvider.

function zeroMetric(metric: MetricRecord): MetricRecord

Re-exported from js/opentelemetry/metrics.zeroMetric.

function applyLogLimits(log: LogRecord, limits: { attributeCountLimit?: number; attributeValueLengthLimit?: number; } = {}): LogRecord

Re-exported from js/opentelemetry/logs.applyLogLimits.

function getLoggerProvider(): LoggerProvider

Re-exported from js/opentelemetry/logs.getLoggerProvider.

function runWithLoggerProvider<R>(provider: LoggerProvider, fn: () => R): R

Re-exported from js/opentelemetry/logs.runWithLoggerProvider.

function runWithoutLoggerProvider<R>(fn: () => R): R

Re-exported from js/opentelemetry/logs.runWithoutLoggerProvider.

function setLoggerProvider(provider: LoggerProvider): void

Re-exported from js/opentelemetry/logs.setLoggerProvider.

function metricsSignal(reader: ManualMetricReader, options: { intervalMs?: number; } = {}): ReadonlySignal<MetricRecord[]>

Re-exported from js/opentelemetry/sdk.metricsSignal.

function bytesEqual(a: Uint8Array, b: Uint8Array): boolean

Re-exported from js/opentelemetry/sdk.bytesEqual.

function carrierApiFor<TCarrier>( carrier: TCarrier, carrierApi?: CarrierApi<TCarrier> ): CarrierApi<TCarrier>

Re-exported from js/opentelemetry/sdk.carrierApiFor.

function consumeRequestContext(requestId: string): ActiveTelemetryContext | null

Re-exported from js/opentelemetry/sdk.consumeRequestContext.

function currentActiveTelemetryContext(): ActiveTelemetryContext | undefined

Re-exported from js/opentelemetry/sdk.currentActiveTelemetryContext.

function defaultCarrierApiFor<TCarrier extends CarrierLike>(carrier: TCarrier): CarrierApi<TCarrier>

Re-exported from js/opentelemetry/sdk.defaultCarrierApiFor.

function encodeSegment(value: unknown): string

Re-exported from js/opentelemetry/sdk.encodeSegment.

function getActiveBaggage(): Baggage

Re-exported from js/opentelemetry/sdk.getActiveBaggage.

function hexToBytes(hex: string, size: number): Uint8Array

Re-exported from js/opentelemetry/sdk.hexToBytes.

function installRequestContext(requestId: string, context: ActiveTelemetryContext): void

Re-exported from js/opentelemetry/sdk.installRequestContext.

function limitAttributeEntries(attributes: Attributes, limits: { attributeCountLimit?: number; attributeValueLengthLimit?: number; }): { attrs: Attributes; dropped: number; }

Re-exported from js/opentelemetry/sdk.limitAttributeEntries.

function mergeAttributes(a?: Attributes, b?: Attributes): Attributes

Re-exported from js/opentelemetry/sdk.mergeAttributes.

function normalizeResource(resource?: Resource | Attributes | null): Resource

Re-exported from js/opentelemetry/sdk.normalizeResource.

function normalizeScope( name: string, version?: string, schemaUrl?: string | null, attributes?: Attributes, droppedAttributesCount?: number ): ScopeInfo

Re-exported from js/opentelemetry/sdk.normalizeScope.

function nowUnixNano(): number

Re-exported from js/opentelemetry/sdk.nowUnixNano.

function otelRuntimeEvent<TPayload extends Record<string, unknown>>(domain: string, operation: string, phase: string, payload: TPayload = {} as TPayload): TPayload & { schemaVersion: number; topic: string; family: string; domain: string; operation: string; phase: string; correlationId: unknown; }

Re-exported from js/opentelemetry/sdk.otelRuntimeEvent.

function otelRuntimeTopic(domain: string, operation: string, phase: string): string

Re-exported from js/opentelemetry/sdk.otelRuntimeTopic.

function otelTopic(signal: string, scope: ScopeInfo, ...suffixes: string[]): string

Re-exported from js/opentelemetry/sdk.otelTopic.

function publishScoped<TPayload>( signal: SignalName, scope: ScopeInfo, suffixes: string[], payload: TPayload ): void

Re-exported from js/opentelemetry/sdk.publishScoped.

function randomHex(length: number): string

Re-exported from js/opentelemetry/sdk.randomHex.

function registerActiveSpanContextGetter(getter: () => TraceContext | null): void

Re-exported from js/opentelemetry/sdk.registerActiveSpanContextGetter.

function requireNonEmptyName(kind: string, value: unknown): string

Re-exported from js/opentelemetry/sdk.requireNonEmptyName.

function requireRecord(kind: string, value: unknown): Record<string, unknown>

Re-exported from js/opentelemetry/sdk.requireRecord.

function runWithActiveContext<R>(context: ActiveTelemetryContext, fn: () => R): R

Re-exported from js/opentelemetry/sdk.runWithActiveContext.

function runWithBaggage<R>(baggage: Baggage, fn: () => R): R

Re-exported from js/opentelemetry/sdk.runWithBaggage.

function scopeSegment(scope: ScopeInfo): string

Re-exported from js/opentelemetry/sdk.scopeSegment.

function snapshotCarrier<TCarrier extends CarrierLike>( carrier: TCarrier, carrierApi?: CarrierApi<TCarrier> ): Record<string, unknown>

Re-exported from js/opentelemetry/sdk.snapshotCarrier.

function topic<T = unknown>(name: string): Topic<T>

Re-exported from topic.topic.

function topicNames(signal: string, scope: ScopeInfo, ...suffixes: string[]): string[]

Re-exported from js/opentelemetry/sdk.topicNames.

function truncateAttributeValue(value: unknown, limit: number): unknown

Re-exported from js/opentelemetry/sdk.truncateAttributeValue.

Interfaces

interface ActiveTelemetryContext extends TraceContext {

Re-exported from js/opentelemetry/traces.ActiveTelemetryContext.

interface SamplingResult {

Re-exported from js/opentelemetry/traces.SamplingResult.

interface SpanEndOptions {

Re-exported from js/opentelemetry/traces.SpanEndOptions.

interface SpanEventRecord {

Re-exported from js/opentelemetry/traces.SpanEventRecord.

interface SpanLimits {

Re-exported from js/opentelemetry/traces.SpanLimits.

interface SpanLinkContext {

Re-exported from js/opentelemetry/traces.SpanLinkContext.

interface SpanLinkRecord extends SpanLinkContext {

Re-exported from js/opentelemetry/traces.SpanLinkRecord.

interface SpanRecord {

Re-exported from js/opentelemetry/traces.SpanRecord.

interface SpanStartOptions {

Re-exported from js/opentelemetry/traces.SpanStartOptions.

interface SpanStatus {

Re-exported from js/opentelemetry/traces.SpanStatus.

interface TraceContext {

Re-exported from js/opentelemetry/traces.TraceContext.

interface ExemplarRecord {

Re-exported from js/opentelemetry/metrics.ExemplarRecord.

interface ExponentialBuckets {

Re-exported from js/opentelemetry/metrics.ExponentialBuckets.

interface MetricExemplarContext {

Re-exported from js/opentelemetry/metrics.MetricExemplarContext.

interface MetricInstrumentOptions {

Re-exported from js/opentelemetry/metrics.MetricInstrumentOptions.

interface MetricRecord {

Re-exported from js/opentelemetry/metrics.MetricRecord.

interface MetricView {

Re-exported from js/opentelemetry/metrics.MetricView.

interface ObservableMetricObservation {

Re-exported from js/opentelemetry/metrics.ObservableMetricObservation.

interface ObservableMetricRegistration {

Re-exported from js/opentelemetry/metrics.ObservableMetricRegistration.

interface QuantileValueRecord {

Re-exported from js/opentelemetry/metrics.QuantileValueRecord.

interface LogRecord {

Re-exported from js/opentelemetry/logs.LogRecord.

interface CarrierApi<TCarrier = CarrierLike> {

Re-exported from js/opentelemetry/sdk.CarrierApi.

interface Disposable {

Re-exported from js/opentelemetry/sdk.Disposable.

interface ExportResult {

Re-exported from js/opentelemetry/sdk.ExportResult.

interface Instrumentation {

Re-exported from js/opentelemetry/sdk.Instrumentation.

interface OtelExporter {

Re-exported from js/opentelemetry/sdk.OtelExporter.

interface OtelSdkLike {

Re-exported from js/opentelemetry/sdk.OtelSdkLike.

interface PartialSuccessResult {

Re-exported from js/opentelemetry/sdk.PartialSuccessResult.

interface ProviderOptions {

Re-exported from js/opentelemetry/sdk.ProviderOptions.

interface ResourceOptions {

Re-exported from js/opentelemetry/sdk.ResourceOptions.

interface RetryOptions {

Re-exported from js/opentelemetry/sdk.RetryOptions.

interface RuntimeDnsEvent {

Re-exported from js/opentelemetry/sdk.RuntimeDnsEvent.

interface RuntimeHttpRequestEvent {

Re-exported from js/opentelemetry/sdk.RuntimeHttpRequestEvent.

interface RuntimeSocketEvent {

Re-exported from js/opentelemetry/sdk.RuntimeSocketEvent.

interface RuntimeTlsEvent {

Re-exported from js/opentelemetry/sdk.RuntimeTlsEvent.

Constants

const Histogram

Re-exported from js/opentelemetry/metrics.Histogram.

const PeriodicExportingMetricReader

Re-exported from js/opentelemetry/sdk.PeriodicExportingMetricReader.

const OTEL_SCHEMA_VERSION

Re-exported from js/opentelemetry/sdk.OTEL_SCHEMA_VERSION.

const OTEL_TOPIC_SUFFIXES

Re-exported from js/opentelemetry/sdk.OTEL_TOPIC_SUFFIXES.

const Propagation

Re-exported from js/opentelemetry/sdk.Propagation.

Types

type MetricAggregationType = 'histogram' | 'lastValue' | 'sum'

Re-exported from js/opentelemetry/metrics.MetricAggregationType.

type MetricTemporality = 'delta' | 'cumulative'

Re-exported from js/opentelemetry/metrics.MetricTemporality.

type Attributes = Record<string, unknown>

Re-exported from js/opentelemetry/sdk.Attributes.

type CarrierLike = { [key: string]: unknown; get?(key: string): unknown; set?(key: string, value: unknown): unknown; keys?(): Iterable<string>; }

Re-exported from js/opentelemetry/sdk.CarrierLike.

type ScopeInfo = { name: string; version?: string; schemaUrl?: string | null; attributes?: Attributes; droppedAttributesCount?: number; }

Re-exported from js/opentelemetry/sdk.ScopeInfo.

type SignalName = 'trace' | 'log' | 'metric'

Re-exported from js/opentelemetry/sdk.SignalName.

Enums

enum SeverityNumber { TRACE = 1, TRACE2 = 2, TRACE3 = 3, TRACE4 = 4, DEBUG = 5, DEBUG2 = 6, DEBUG3 = 7, DEBUG4 = 8, INFO = 9, INFO2 = 10, INFO3 = 11, INFO4 = 12, WARN = 13, WARN2 = 14, WARN3 = 15, WARN4 = 16, ERROR = 17, ERROR2 = 18, ERROR3 = 19, ERROR4 = 20, FATAL = 21, FATAL2 = 22, FATAL3 = 23, FATAL4 = 24 }

Re-exported from js/opentelemetry/logs.SeverityNumber.