mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-15 21:59:41 -04:00
Added the span context injection and extraction layer that bridges the OTel C wrapper's propagation API with HAProxy's HTTP headers and text map carriers. The new otelc.c module implements four public functions that wrap the OTel C wrapper's context propagation methods: flt_otel_inject_text_map() and flt_otel_inject_http_headers() serialize a span's context into a text map or HTTP headers carrier for outbound propagation, while flt_otel_extract_text_map() and flt_otel_extract_http_headers() deserialize an inbound carrier into an otelc_span_context for parent linking. Each direction uses a pair of callbacks registered on the carrier structure. The injection writers (flt_otel_text_map_writer_set_cb and flt_otel_http_headers_writer_set_cb) store key-value pairs emitted by the SDK into the carrier's text map via OTELC_TEXT_MAP_ADD(). The extraction readers (flt_otel_text_map_reader_foreach_key_cb and flt_otel_http_headers_reader_foreach_key_cb) iterate the carrier's text map entries and pass each pair to the SDK's handler callback. The scope context initialization in flt_otel_scope_context_init() now calls flt_otel_extract_http_headers() to extract the span context from the provided text map carrier and stores it in the scope context structure, making extracted contexts available for parent linking in subsequent span creation. |
||
|---|---|---|
| .. | ||
| conf.h | ||
| conf_funcs.h | ||
| config.h | ||
| debug.h | ||
| define.h | ||
| event.h | ||
| filter.h | ||
| include.h | ||
| otelc.h | ||
| parser.h | ||
| pool.h | ||
| scope.h | ||
| util.h | ||