@@ -44,6 +44,8 @@ namespace NKikimr {
44
44
THPTimer Timer;
45
45
std::deque<std::tuple<TString, TDuration>> SubrequestTimings;
46
46
47
+ NWilson::TSpan Span;
48
+
47
49
struct TDiscoverState {
48
50
TLogoBlobID Id;
49
51
TString Buffer;
@@ -98,10 +100,11 @@ namespace NKikimr {
98
100
99
101
template <typename TEvRequest>
100
102
TRequest (TActorId sender, ui64 cookie, std::unique_ptr<TEvRequest>&& request, TIntrusivePtr<TBlobStorageGroupInfo> info,
101
- TThis& self)
103
+ TThis& self, ui32 requestType, NWilson::TTraceId&& traceId )
102
104
: Sender(sender)
103
105
, Cookie(cookie)
104
106
, Info(std::move(info))
107
+ , Span(TWilson::BlobStorage, std::forward<NWilson::TTraceId>(traceId), " BridgedRequest" , NWilson::EFlags::AUTO_END)
105
108
{
106
109
Y_ABORT_UNLESS (Info);
107
110
Y_ABORT_UNLESS (Info->Group );
@@ -136,6 +139,13 @@ namespace NKikimr {
136
139
}
137
140
138
141
OriginalRequest = std::move (request);
142
+
143
+ if (Span) {
144
+ Span.Attribute (" GroupId" , Info->GroupID .GetRawId ());
145
+ Span.Attribute (" database" , AppData ()->TenantName );
146
+ Span.Attribute (" storagePool" , Info->GetStoragePoolName ());
147
+ Span.Attribute (" RequestType" , TEvBlobStorage::TEvRequestCommon::GetRequestName (requestType));
148
+ }
139
149
}
140
150
141
151
template <typename TEvent, typename ... TArgs>
@@ -659,7 +669,8 @@ namespace NKikimr {
659
669
660
670
std::unique_ptr<TEvent> evPtr (ev->Release ().Release ());
661
671
const TEvent& originalRequest = *evPtr;
662
- auto request = std::make_shared<TRequest>(ev->Sender , ev->Cookie , std::move (evPtr), Info, *this );
672
+ auto request = std::make_shared<TRequest>(ev->Sender , ev->Cookie , std::move (evPtr), Info, *this ,
673
+ ev->GetTypeRewrite (), std::move (ev->TraceId ));
663
674
664
675
STLOG (PRI_DEBUG, BS_PROXY_BRIDGE, BPB00, " new request" , (RequestId, request->RequestId ),
665
676
(GroupId, GroupId), (Request, originalRequest.ToString ()));
@@ -702,7 +713,7 @@ namespace NKikimr {
702
713
Y_DEBUG_ABORT_UNLESS (inserted1);
703
714
704
715
// send event
705
- SendToBSProxy (SelfId (), groupId, ev.release (), cookie);
716
+ SendToBSProxy (SelfId (), groupId, ev.release (), cookie, request-> Span . GetTraceId () );
706
717
++request->ResponsesPending ;
707
718
}
708
719
@@ -822,6 +833,13 @@ namespace NKikimr {
822
833
(Response, response->ToString ()),
823
834
(Passed, TDuration::Seconds (request->Timer .Passed ())),
824
835
(SubrequestTimings, makeSubrequestTimings ()));
836
+
837
+ if (success) {
838
+ request->Span .EndOk ();
839
+ } else if (request->Span ) {
840
+ request->Span .EndError (common->ErrorReason );
841
+ }
842
+
825
843
Send (request->Sender , response.release (), 0 , request->Cookie );
826
844
request->Finished = true ;
827
845
}
0 commit comments