EDB OTEL (edb_otel) is an extension that allows metrics and traces to be sent through the OpenTelemetry (OTEL) protocol. It communicates with an OTEL endpoint and sends metrics and traces to it. Other extensions can use APIs to pass metrics and traces to edb_otel, which in turn redirects to the OTEL endpoint.

edb_otel includes a background worker process that's responsible for managing the metric instruments and exporting the metrics to the OpenTelemetry metrics collector. The worker handles calls to the OpenTelemetry C++ SDK, preventing them from blocking the main backend process. Metric data, reported by other backends via a shared memory queue, is periodically retrieved and processed by the worker.

Tracing support currently does not offload the OpenTelemetry C++ SDK overhead to the background worker. Each PostgreSQL backend or process that requires tracing support needs to initialize tracing within its own process. The extension uses OpenTelemetry's SimpleSpanProcessor instrumentation API, which exports a span synchronously as it ends. If there is an attempt to end a span and the export of the span fails due to a network error, the span is marked ended, and can no longer be exported. However, spans that end after the network recovery are successfully exported.

Subsequent EDB extension releases will leverage edb_otel APIs for centralized routing of OTEL metrics.

Deprecation of support for edb_otel-1.0

edb_otel-2.0 breaks compatibility with edb_otel-1.0 due to API changes essential for improvement in support for metrics and tracing. You can upgrade from 1.0 to 2.0, as long as you then update any logic that relies on the 1.0 API to use the new 2.0 API.

Future work on this extension will build on the 2.0 API documented here; there are no plans for future updates to 1.0.


Could this page be better? Report a problem or suggest an addition!