From 4d7dc0bc9a9f32c6aa863d753e0ab58ad584c256 Mon Sep 17 00:00:00 2001 From: Oleg Shatov <35371391+domwst@users.noreply.github.com> Date: Mon, 25 Dec 2023 18:37:50 +0700 Subject: [PATCH] KIKIMR-20533 Forward traceparent header to KV-tablet (#689) * KIKIMR-20533 Forward traceparent header to KV-tablet * Introduced TWilsonGrpc::RequestActor --- ydb/core/grpc_services/rpc_deferrable.h | 10 ++++++++-- ydb/core/grpc_services/rpc_keyvalue.cpp | 4 ++-- ydb/library/wilson_ids/wilson.h | 1 + 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ydb/core/grpc_services/rpc_deferrable.h b/ydb/core/grpc_services/rpc_deferrable.h index 62184e325148..93550e2b11ef 100644 --- a/ydb/core/grpc_services/rpc_deferrable.h +++ b/ydb/core/grpc_services/rpc_deferrable.h @@ -6,11 +6,12 @@ #include "cancelation/cancelation_event.h" #include "rpc_common/rpc_common.h" -#include -#include #include #include #include +#include +#include +#include #include #include @@ -150,6 +151,8 @@ class TRpcOperationRequestActor : public TRpcRequestWithOperationParamsActorGetWilsonTraceId(), + "RequestProxy.RpcOperationRequestActor", NWilson::EFlags::AUTO_END) {} static constexpr NKikimrServices::TActivity::EType ActorActivityType() { @@ -280,6 +283,9 @@ class TRpcOperationRequestActor : public TRpcRequestWithOperationParamsActorGet(), Request_.get(), as); } + +protected: + NWilson::TSpan Span_; }; } // namespace NGRpcService diff --git a/ydb/core/grpc_services/rpc_keyvalue.cpp b/ydb/core/grpc_services/rpc_keyvalue.cpp index b0766b0d726f..56ec96804e9a 100644 --- a/ydb/core/grpc_services/rpc_keyvalue.cpp +++ b/ydb/core/grpc_services/rpc_keyvalue.cpp @@ -513,7 +513,7 @@ class TBaseKeyValueRequest { req->UserToken = UserToken; req->DatabaseName = self->Request_->GetDatabaseName().GetOrElse(""); auto ev = new TEvTxProxySchemeCache::TEvNavigateKeySet(req.Release()); - self->Send(MakeSchemeCacheID(), ev); + self->Send(MakeSchemeCacheID(), ev, 0, 0, self->Span_.GetTraceId()); } bool OnNavigateKeySetResult(TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr &ev, ui32 access) { @@ -818,7 +818,7 @@ class TKeyValueRequestGrpc auto &rec = *this->GetProtoRequest(); CopyProtobuf(rec, &req->Record); req->Record.set_tablet_id(KVTabletId); - NTabletPipe::SendData(this->SelfId(), KVPipeClient, req.release(), 0); + NTabletPipe::SendData(this->SelfId(), KVPipeClient, req.release(), 0, TBase::Span_.GetTraceId()); } void Handle(typename TKVRequest::TResponse::TPtr &ev) { diff --git a/ydb/library/wilson_ids/wilson.h b/ydb/library/wilson_ids/wilson.h index 110d26a0cf1a..2128f53d5683 100644 --- a/ydb/library/wilson_ids/wilson.h +++ b/ydb/library/wilson_ids/wilson.h @@ -47,6 +47,7 @@ namespace NKikimr { struct TWilsonGrpc { enum { RequestProxy = 9, + RequestActor = 9, }; };