Skip to main content

Configuration

ObservabilityRegistryConfig

interface ObservabilityRegistryConfig {
default?: { enabled?: boolean };
configs?: Record<string, Omit<ObservabilityInstanceConfig, "name"> | ObservabilityInstance>;
configSelector?: ConfigSelector;
}

ObservabilityInstanceConfig

interface ObservabilityInstanceConfig {
name: string;
serviceName: string;
sampling?: SamplingStrategy;
exporters?: ObservabilityExporter[];
spanOutputProcessors?: SpanOutputProcessor[];
includeInternalSpans?: boolean;
requestContextKeys?: string[];
}

SamplingStrategy

type SamplingStrategy =
| { type: "always" }
| { type: "never" }
| { type: "ratio"; probability: number }
| { type: "custom"; sampler: (options?: TracingOptions) => boolean };

ConfigSelector

type ConfigSelector = (
options: ConfigSelectorOptions,
availableConfigs: ReadonlyMap<string, ObservabilityInstance>,
) => string | undefined;

ConfigSelectorOptions

interface ConfigSelectorOptions {
requestContext?: RequestContext;
}

Registry Methods

The Observability class provides methods for managing observability instances:

registerInstance

registerInstance(
name: string,
instance: ObservabilityInstance,
isDefault?: boolean
): void;

Registers an observability instance in the registry.

getInstance

getInstance(name: string): ObservabilityInstance | undefined;

Retrieves an observability instance by name.

getDefaultInstance

getDefaultInstance(): ObservabilityInstance | undefined;

Returns the default observability instance.

getSelectedInstance

getSelectedInstance(
options: ConfigSelectorOptions
): ObservabilityInstance | undefined;

Returns the observability instance selected by the config selector or default.

listInstances

listInstances(): ReadonlyMap<string, ObservabilityInstance>;

Returns all registered observability instances.

hasInstance

hasInstance(name: string): boolean;

Checks if an observability instance exists.

setConfigSelector

setConfigSelector(selector: ConfigSelector): void;

Sets the config selector function.

unregisterInstance

unregisterInstance(name: string): boolean;

Removes an observability instance from the registry.

clear

clear(): void;

Clears all instances without shutdown.

shutdown

async shutdown(): Promise<void>;

Shuts down all observability instances and clears the registry.

See Also

Documentation

Reference

Examples

Exporters