span_.set_start_time_unix_nano(std::chrono::nanoseconds(start_time.time_since_epoch()).count());
void Span::injectContext(Tracing::TraceContext& trace_context, const Tracing::UpstreamContext&) {
Grpc::Status::GrpcStatus grpc_status = static_cast<Grpc::Status::GrpcStatus>(grpc_status_code);
span_event.set_time_unix_nano(std::chrono::nanoseconds(timestamp.time_since_epoch()).count());
: exporter_(std::move(exporter)), time_source_(time_source), random_(random), runtime_(runtime),
::opentelemetry::proto::trace::v1::ResourceSpans* resource_span = request.add_resource_spans();
::opentelemetry::proto::trace::v1::ScopeSpans* scope_span = resource_span->add_scope_spans();
// If the custom sampler is set, then the Envoy tracing decision is ignored and the custom sampler
auto new_span = std::make_unique<Span>(operation_name, stream_info, start_time, time_source_,
new_span->setTraceId(absl::StrCat(Hex::uint64ToHex(trace_id_high), Hex::uint64ToHex(trace_id)));
auto new_span = std::make_unique<Span>(operation_name, stream_info, start_time, time_source_,
callSampler(sampler_, stream_info, parent_context, *new_span, operation_name, trace_context);