opentelemetry-c-wrapper 1.0.0
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
opspointer, 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.