OpenTelemetry#

OpenTelemetry tracing extension for SQLSpec. Provides helpers for enabling OpenTelemetry spans across database statement executions and connection lifecycles.

Configuration#

Use sqlspec.config.OpenTelemetryConfig in extension_config["otel"]. These settings apply across adapters; no adapter-specific subtype is needed.

class sqlspec.config.OpenTelemetryConfig[source]

Bases: TypedDict

Configuration options for OpenTelemetry integration.

Use in extension_config["otel"].

enabled: NotRequired[bool]

True.

Type:

Enable the extension. Default

enable_spans: NotRequired[bool]

Enable span emission (set False to disable while keeping other settings).

resource_attributes: NotRequired[dict[str, Any]]

Additional resource attributes passed to the tracer provider factory.

tracer_provider: NotRequired[Any]

Tracer provider instance to reuse. Mutually exclusive with tracer_provider_factory.

tracer_provider_factory: NotRequired[Callable[[], Any]]

Factory returning a tracer provider. Invoked lazily when spans are needed.

Helpers#

sqlspec.extensions.otel.enable_tracing(*, base_config=None, tracer_provider=None, tracer_provider_factory=None, resource_attributes=None, enable_spans=True)[source]#

Return an ObservabilityConfig with OpenTelemetry spans enabled.

Parameters:
  • base_config (ObservabilityConfig | None) -- Existing observability config to extend. When omitted a new instance is created.

  • tracer_provider (Any | None) -- Optional provider instance to reuse. Mutually exclusive with tracer_provider_factory.

  • tracer_provider_factory (Callable[[], Any] | None) -- Callable that returns a tracer provider when spans are first used.

  • resource_attributes (dict[str, Any] | None) -- Additional attributes to attach to every span.

  • enable_spans (bool) -- Allow disabling spans while keeping the rest of the config.

Return type:

ObservabilityConfig

Returns:

ObservabilityConfig with telemetry options configured for OpenTelemetry.