diff options
Diffstat (limited to 'grpc/src/cpp/ext/filters/census/context.cc')
-rw-r--r-- | grpc/src/cpp/ext/filters/census/context.cc | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/grpc/src/cpp/ext/filters/census/context.cc b/grpc/src/cpp/ext/filters/census/context.cc index 2deeedfe..0650bd1b 100644 --- a/grpc/src/cpp/ext/filters/census/context.cc +++ b/grpc/src/cpp/ext/filters/census/context.cc @@ -20,6 +20,7 @@ #include "opencensus/tags/context_util.h" #include "opencensus/trace/context_util.h" +#include "opencensus/trace/propagation/grpc_trace_bin.h" #include "src/cpp/ext/filters/census/context.h" namespace grpc { @@ -28,20 +29,16 @@ using ::opencensus::tags::TagMap; using ::opencensus::trace::Span; using ::opencensus::trace::SpanContext; -void GenerateServerContext(absl::string_view tracing, absl::string_view stats, - absl::string_view primary_role, - absl::string_view method, CensusContext* context) { +void GenerateServerContext(absl::string_view tracing, absl::string_view method, + CensusContext* context) { // Destruct the current CensusContext to free the Span memory before // overwriting it below. context->~CensusContext(); - GrpcTraceContext trace_ctxt; - if (TraceContextEncoding::Decode(tracing, &trace_ctxt) != - TraceContextEncoding::kEncodeDecodeFailure) { - SpanContext parent_ctx = trace_ctxt.ToSpanContext(); - if (parent_ctx.IsValid()) { - new (context) CensusContext(method, parent_ctx); - return; - } + SpanContext parent_ctx = + opencensus::trace::propagation::FromGrpcTraceBinHeader(tracing); + if (parent_ctx.IsValid()) { + new (context) CensusContext(method, parent_ctx); + return; } new (context) CensusContext(method, TagMap{}); } @@ -72,12 +69,16 @@ void GenerateClientContext(absl::string_view method, CensusContext* ctxt, size_t TraceContextSerialize(const ::opencensus::trace::SpanContext& context, char* tracing_buf, size_t tracing_buf_size) { - GrpcTraceContext trace_ctxt(context); - return TraceContextEncoding::Encode(trace_ctxt, tracing_buf, - tracing_buf_size); + if (tracing_buf_size < + opencensus::trace::propagation::kGrpcTraceBinHeaderLen) { + return 0; + } + opencensus::trace::propagation::ToGrpcTraceBinHeader( + context, reinterpret_cast<uint8_t*>(tracing_buf)); + return opencensus::trace::propagation::kGrpcTraceBinHeaderLen; } -size_t StatsContextSerialize(size_t max_tags_len, grpc_slice* tags) { +size_t StatsContextSerialize(size_t /*max_tags_len*/, grpc_slice* /*tags*/) { // TODO(unknown): Add implementation. Waiting on stats tagging to be added. return 0; } |