11#include " blobstorage.h"
2+ #include < ydb/library/actors/wilson/wilson_span.h>
23
34namespace NKikimr {
45
@@ -44,13 +45,37 @@ bool operator<(const TPDiskCategory x, const TPDiskCategory y) {
4445 return std::make_tuple (x.Type (), x.Kind ()) < std::make_tuple (y.Type (), y.Kind ());
4546}
4647
48+ void TEvBlobStorage::TEvPut::ToSpan (NWilson::TSpan& span) const {
49+ span
50+ .Attribute (" Id" , Id.ToString ())
51+ .Attribute (" PutHandleClass" , NKikimrBlobStorage::EPutHandleClass_Name (HandleClass));
52+ }
53+
4754std::unique_ptr<TEvBlobStorage::TEvPutResult> TEvBlobStorage::TEvPut::MakeErrorResponse (
4855 NKikimrProto::EReplyStatus status, const TString& errorReason, TGroupId groupId) {
4956 auto res = std::make_unique<TEvPutResult>(status, Id, TStorageStatusFlags (), groupId, 0 .0f );
5057 res->ErrorReason = errorReason;
5158 return res;
5259}
5360
61+ void TEvBlobStorage::TEvGet::ToSpan (NWilson::TSpan& span) const {
62+ NWilson::TArrayValue queries;
63+ queries.reserve (QuerySize);
64+ for (ui32 i = 0 ; i < QuerySize; ++i) {
65+ const auto & q = Queries[i];
66+ queries.emplace_back (NWilson::TKeyValueList{{
67+ {" Id" , q.Id .ToString ()},
68+ {" Shift" , q.Shift },
69+ {" Size" , q.Size },
70+ }});
71+ }
72+ span
73+ .Attribute (" Queries" , std::move (queries))
74+ .Attribute (" GetHandleClass" , NKikimrBlobStorage::EGetHandleClass_Name (GetHandleClass))
75+ .Attribute (" MustRestoreFirst" , MustRestoreFirst)
76+ .Attribute (" IsIndexOnly" , IsIndexOnly);
77+ }
78+
5479std::unique_ptr<TEvBlobStorage::TEvGetResult> TEvBlobStorage::TEvGet::MakeErrorResponse (
5580 NKikimrProto::EReplyStatus status, const TString& errorReason, TGroupId groupId) {
5681 auto res = std::make_unique<TEvGetResult>(status, QuerySize, groupId);
@@ -67,55 +92,119 @@ std::unique_ptr<TEvBlobStorage::TEvGetResult> TEvBlobStorage::TEvGet::MakeErrorR
6792 return res;
6893}
6994
95+ void TEvBlobStorage::TEvBlock::ToSpan (NWilson::TSpan& span) const {
96+ span
97+ .Attribute (" TabletId" , ::ToString (TabletId))
98+ .Attribute (" Generation" , Generation);
99+ }
100+
70101std::unique_ptr<TEvBlobStorage::TEvBlockResult> TEvBlobStorage::TEvBlock::MakeErrorResponse (
71102 NKikimrProto::EReplyStatus status, const TString& errorReason, TGroupId /* groupId*/ ) {
72103 auto res = std::make_unique<TEvBlockResult>(status);
73104 res->ErrorReason = errorReason;
74105 return res;
75106}
76107
108+ void TEvBlobStorage::TEvPatch::ToSpan (NWilson::TSpan& span) const {
109+ span
110+ .Attribute (" OriginalGroupId" , OriginalGroupId)
111+ .Attribute (" OriginalId" , OriginalId.ToString ())
112+ .Attribute (" PatchedId" , PatchedId.ToString ());
113+ }
114+
77115std::unique_ptr<TEvBlobStorage::TEvPatchResult> TEvBlobStorage::TEvPatch::MakeErrorResponse (
78116 NKikimrProto::EReplyStatus status, const TString& errorReason, TGroupId groupId) {
79117 auto res = std::make_unique<TEvPatchResult>(status, PatchedId, TStorageStatusFlags (), groupId, 0 .0f );
80118 res->ErrorReason = errorReason;
81119 return res;
82120}
83121
122+ void TEvBlobStorage::TEvInplacePatch::ToSpan (NWilson::TSpan& /* span*/ ) const {
123+ }
124+
84125std::unique_ptr<TEvBlobStorage::TEvInplacePatchResult> TEvBlobStorage::TEvInplacePatch::MakeErrorResponse (
85126 NKikimrProto::EReplyStatus status, const TString& errorReason) {
86127 auto res = std::make_unique<TEvInplacePatchResult>(status, PatchedId, TStorageStatusFlags (), 0 .0f );
87128 res->ErrorReason = errorReason;
88129 return res;
89130}
90131
132+ void TEvBlobStorage::TEvDiscover::ToSpan (NWilson::TSpan& span) const {
133+ span
134+ .Attribute (" TabletId" , ::ToString (TabletId))
135+ .Attribute (" ReadBody" , ReadBody);
136+ }
137+
91138std::unique_ptr<TEvBlobStorage::TEvDiscoverResult> TEvBlobStorage::TEvDiscover::MakeErrorResponse (
92139 NKikimrProto::EReplyStatus status, const TString& errorReason, TGroupId/* groupId*/ ) {
93140 auto res = std::make_unique<TEvDiscoverResult>(status, MinGeneration, 0 );
94141 res->ErrorReason = errorReason;
95142 return res;
96143}
97144
145+ void TEvBlobStorage::TEvRange::ToSpan (NWilson::TSpan& span) const {
146+ span
147+ .Attribute (" TabletId" , ::ToString (TabletId))
148+ .Attribute (" From" , From.ToString ())
149+ .Attribute (" To" , To.ToString ())
150+ .Attribute (" MustRestoreFirst" , MustRestoreFirst)
151+ .Attribute (" IsIndexOnly" , IsIndexOnly);
152+ }
153+
98154std::unique_ptr<TEvBlobStorage::TEvRangeResult> TEvBlobStorage::TEvRange::MakeErrorResponse (
99155 NKikimrProto::EReplyStatus status, const TString& errorReason, TGroupId groupId) {
100156 auto res = std::make_unique<TEvRangeResult>(status, From, To, groupId);
101157 res->ErrorReason = errorReason;
102158 return res;
103159}
104160
161+ void TEvBlobStorage::TEvCollectGarbage::ToSpan (NWilson::TSpan& span) const {
162+ span
163+ .Attribute (" TabletId" , ::ToString (TabletId))
164+ .Attribute (" RecordGeneration" , RecordGeneration)
165+ .Attribute (" PerGenerationCounter" , PerGenerationCounter)
166+ .Attribute (" Channel" , Channel);
167+
168+ if (Collect) {
169+ span
170+ .Attribute (" CollectGeneration" , CollectGeneration)
171+ .Attribute (" CollectStep" , CollectStep);
172+ }
173+
174+ auto vector = [&](const auto & name, const auto & v) {
175+ if (v) {
176+ NWilson::TArrayValue items;
177+ items.reserve (v->size ());
178+ for (const TLogoBlobID& id : *v) {
179+ items.emplace_back (id.ToString ());
180+ }
181+ span.Attribute (name, std::move (items));
182+ }
183+ };
184+ vector (" Keep" , Keep);
185+ vector (" DoNotKeep" , DoNotKeep);
186+ }
187+
105188std::unique_ptr<TEvBlobStorage::TEvCollectGarbageResult> TEvBlobStorage::TEvCollectGarbage::MakeErrorResponse (
106189 NKikimrProto::EReplyStatus status, const TString& errorReason, TGroupId /* groupId*/ ) {
107190 auto res = std::make_unique<TEvCollectGarbageResult>(status, TabletId, RecordGeneration, PerGenerationCounter, Channel);
108191 res->ErrorReason = errorReason;
109192 return res;
110193}
111194
195+ void TEvBlobStorage::TEvStatus::ToSpan (NWilson::TSpan& /* span*/ ) const
196+ {}
197+
112198std::unique_ptr<TEvBlobStorage::TEvStatusResult> TEvBlobStorage::TEvStatus::MakeErrorResponse (
113199 NKikimrProto::EReplyStatus status, const TString& errorReason, TGroupId /* groupId*/ ) {
114200 auto res = std::make_unique<TEvStatusResult>(status, TStorageStatusFlags ());
115201 res->ErrorReason = errorReason;
116202 return res;
117203}
118204
205+ void TEvBlobStorage::TEvAssimilate::ToSpan (NWilson::TSpan& /* span*/ ) const
206+ {}
207+
119208std::unique_ptr<TEvBlobStorage::TEvAssimilateResult> TEvBlobStorage::TEvAssimilate::MakeErrorResponse (
120209 NKikimrProto::EReplyStatus status, const TString& errorReason, TGroupId/* groupId*/ ) {
121210 return std::make_unique<TEvBlobStorage::TEvAssimilateResult>(status, errorReason);
0 commit comments