#include <grpc/support/port_platform.h>
+#include "opencensus/tags/context_util.h"
+#include "opencensus/trace/context_util.h"
#include "src/cpp/ext/filters/census/context.h"
namespace grpc {
+using ::opencensus::tags::TagMap;
using ::opencensus::trace::Span;
using ::opencensus::trace::SpanContext;
return;
}
}
- new (context) CensusContext(method);
+ new (context) CensusContext(method, TagMap{});
}
void GenerateClientContext(absl::string_view method, CensusContext* ctxt,
SpanContext span_ctxt = parent_ctxt->Context();
Span span = parent_ctxt->Span();
if (span_ctxt.IsValid()) {
- new (ctxt) CensusContext(method, &span);
+ new (ctxt) CensusContext(method, &span, TagMap{});
return;
}
}
- new (ctxt) CensusContext(method);
+ const Span& span = opencensus::trace::GetCurrentSpan();
+ const TagMap& tags = opencensus::tags::GetCurrentTagMap();
+ if (span.context().IsValid()) {
+ // Create span with parent.
+ new (ctxt) CensusContext(method, &span, tags);
+ return;
+ }
+ // Create span without parent.
+ new (ctxt) CensusContext(method, tags);
}
size_t TraceContextSerialize(const ::opencensus::trace::SpanContext& context,