17#ifndef A11_OBS_TRACE_CONTEXT_H_
18#define A11_OBS_TRACE_CONTEXT_H_
26#include <absl/status/status.h>
27#include <absl/status/statusor.h>
absl::flat_hash_map< std::string, Bytes > ByteMap
String-keyed map of byte values (headers, attributes, etc.).
Definition types.h:58
Definition provider.cc:58
constexpr std::string_view kTracestateHeader
Reserved action header carrying the W3C tracestate value.
Definition trace_context.h:36
constexpr std::string_view kBaggageHeader
Reserved action header carrying request-scoped W3C baggage.
Definition trace_context.h:38
absl::Status InjectTraceContext(const TraceContext &context, data::ByteMap &headers)
Serialize context into reserved headers, replacing existing values.
Definition trace_context.cc:177
constexpr std::string_view kTraceparentHeader
Reserved action header carrying the W3C traceparent value.
Definition trace_context.h:34
absl::StatusOr< std::optional< TraceContext > > ExtractTraceContext(const data::ByteMap &headers)
Extract a remote parent; nullopt means no tracing headers were supplied.
Definition trace_context.cc:148
One decoded W3C baggage member propagated through nested and remote actions.
Definition trace_context.h:41
std::string properties
Trailing semicolon-separated properties.
Definition trace_context.h:44
std::string value
Percent-decoded member value.
Definition trace_context.h:43
std::string key
Trimmed member key; percent escapes stay encoded.
Definition trace_context.h:42
friend bool operator==(const BaggageEntry &, const BaggageEntry &)=default
SDK-independent W3C parent context recovered from reserved action headers.
Definition trace_context.h:50
std::string span_id
16 lowercase hex characters.
Definition trace_context.h:52
std::vector< BaggageEntry > baggage
Request-scoped propagated values.
Definition trace_context.h:55
bool sampled() const
Whether the W3C sampled flag is set.
Definition trace_context.h:58
std::string trace_id
32 lowercase hex characters.
Definition trace_context.h:51
std::uint8_t trace_flags
W3C trace flags byte.
Definition trace_context.h:53
friend bool operator==(const TraceContext &, const TraceContext &)=default
std::string tracestate
Raw tracestate header; may be empty.
Definition trace_context.h:54
A11's core wire value types: chunks, node fragments and messages.