Skip to content

opentelemetry-c-wrapper 1.0.0

Choose a tag to compare

@zaga00 zaga00 released this 09 Apr 13:35
· 242 commits to main since this release

opentelemetry-c-wrapper 1.0.0

First public release of the OpenTelemetry C wrapper library -- a pure C API on top of the OpenTelemetry C++ SDK,
developed by HAProxy Technologies.

Signals

All three OpenTelemetry signals are supported:

  • Traces -- span creation and lifecycle, context propagation, baggage, sampling (including ParentBased per-state delegates), events, links, and exception recording.
  • Metrics -- synchronous and observable instruments (counters, histograms, gauges, up-down counters), views, and multiple metric reader/exporter pairs.
  • Logs -- structured log records with severity filtering and span correlation.

Exporters

Exporter Traces Metrics Logs
OTLP/gRPC yes yes yes
OTLP/HTTP yes yes yes
OTLP/File yes yes yes
OStream yes yes yes
In-Memory yes yes --
Zipkin yes -- --
Elasticsearch -- -- yes

Highlights

  • YAML-based configuration for all SDK components (exporters, processors, samplers, providers) via rapidyaml or libfyaml.
  • Thread-safe data-plane operations with a 64-shard span map for low contention under concurrent workloads.
  • Operations vtable design -- each signal instance carries an ops pointer, keeping the C API clean and extensible.
  • Multiple processors and exporters per signal provider.
  • Dropped span/log counting via delegating processors.
  • SDK internal log handler exposed through the C API.
  • Build support via both Autotools and CMake.
  • Bundled dependency build scripts for all required libraries.
  • Test suite covering tracer, meter, logger, and YAML parsing, with Docker Compose integration tests (Elasticsearch/Kibana, OTel Collector).

Tested Platforms (amd64)

Debian 11/12/13, Ubuntu 20.04/22.04/24.04, Tuxedo 24.04, RHEL 8.10/9.5/10.0, Rocky 9.5, openSUSE Leap 15.5/15.6.

License

Apache License 2.0