@@ -41,15 +41,30 @@ class ObjectDescriptorReaderTracing : public ObjectDescriptorReader {
4141 ~ObjectDescriptorReaderTracing () override = default ;
4242
4343 future<ObjectDescriptorReader::ReadResponse> Read () override {
44+ auto span = internal::MakeSpan (" storage::AsyncConnection::ReadObjectRange" );
45+ internal::OTelScope scope (span);
4446 return ObjectDescriptorReader::Read ().then (
45- [](
47+ [span = std::move (span),
48+ oc = opentelemetry::context::RuntimeContext::GetCurrent ()](
4649 auto f) -> ReadResponse {
4750 auto result = f.get ();
48- // internal::DetachOTelContext(oc);
51+ internal::DetachOTelContext (oc);
4952 if (!absl::holds_alternative<Status>(result)) {
5053 auto const & payload =
5154 absl::get<storage_experimental::ReadPayload>(result);
5255
56+ span->AddEvent (
57+ " gl-cpp.read-range" ,
58+ {{/* sc::kRpcMessageType=*/ " rpc.message.type" , " RECEIVED" },
59+ {sc::kThreadId , internal::CurrentThreadId ()},
60+ {" message.size" , static_cast <std::uint32_t >(payload.size ())}});
61+ } else {
62+ span->AddEvent (
63+ " gl-cpp.read-range" ,
64+ {{/* sc::kRpcMessageType=*/ " rpc.message.type" , " RECEIVED" },
65+ {sc::kThreadId , internal::CurrentThreadId ()}});
66+ return internal::EndSpan (*span,
67+ absl::get<Status>(std::move (result)));
5368 }
5469 return result;
5570 });
0 commit comments