Skip to content

Commit

Permalink
Merge tracing fixes to 24-1 (#5458)
Browse files Browse the repository at this point in the history
  • Loading branch information
serbel324 authored Jun 13, 2024
1 parent 0224081 commit 53eadb0
Show file tree
Hide file tree
Showing 98 changed files with 3,080 additions and 979 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ namespace NPDisk {
void TCompletionLogWrite::Exec(TActorSystem *actorSystem) {
// bool isNewChunksCommited = false;
if (CommitedLogChunks) {
NWilson::TSpan span(TWilson::PDisk, TraceId.Clone(), "PDisk.CommitLogChunks");
NWilson::TSpan span(TWilson::PDiskBasic, TraceId.Clone(), "PDisk.CommitLogChunks");
auto* req = PDisk->ReqCreator.CreateFromArgs<TCommitLogChunks>(std::move(CommitedLogChunks), std::move(span));
PDisk->InputRequest(req);
//isNewChunksCommited = true;
Expand Down Expand Up @@ -146,7 +146,7 @@ TBuffer *TCompletionChunkReadPart::GetBuffer() {
}

void TCompletionChunkReadPart::Exec(TActorSystem *actorSystem) {
auto execSpan = Span.CreateChild(TWilson::PDisk, "PDisk.CompletionChunkReadPart.Exec");
auto execSpan = Span.CreateChild(TWilson::PDiskDetailed, "PDisk.CompletionChunkReadPart.Exec");
Y_ABORT_UNLESS(actorSystem);
Y_ABORT_UNLESS(CumulativeCompletion);
if (TCompletionAction::Result != EIoResult::Ok) {
Expand Down Expand Up @@ -306,7 +306,7 @@ TCompletionChunkRead::~TCompletionChunkRead() {
}

void TCompletionChunkRead::Exec(TActorSystem *actorSystem) {
auto execSpan = Span.CreateChild(TWilson::PDisk, "PDisk.CompletionChunkRead.Exec");
auto execSpan = Span.CreateChild(TWilson::PDiskDetailed, "PDisk.CompletionChunkRead.Exec");
THolder<TEvChunkReadResult> result = MakeHolder<TEvChunkReadResult>(NKikimrProto::OK,
Read->ChunkIdx, Read->Offset, Read->Cookie, PDisk->GetStatusFlags(Read->Owner, Read->OwnerGroupType), "");
result->Data = std::move(CommonBuffer);
Expand Down Expand Up @@ -393,7 +393,7 @@ void TChunkTrimCompletion::Exec(TActorSystem *actorSystem) {
<< ui64(responseTimeMs) << " sizeBytes# " << SizeBytes);
LWPROBE(PDiskTrimResponseTime, PDisk->PDiskId, ReqId.Id, responseTimeMs, SizeBytes);
PDisk->Mon.Trim.CountResponse();
NWilson::TSpan span(TWilson::PDisk, std::move(TraceId), "PDisk.TryTrimChunk", NWilson::EFlags::AUTO_END, actorSystem);
NWilson::TSpan span(TWilson::PDiskBasic, std::move(TraceId), "PDisk.TryTrimChunk", NWilson::EFlags::AUTO_END, actorSystem);
span.Attribute("size", static_cast<i64>(SizeBytes));
TTryTrimChunk *tryTrim = PDisk->ReqCreator.CreateFromArgs<TTryTrimChunk>(SizeBytes, std::move(span));
PDisk->InputRequest(tryTrim);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ class TCompletionChunkWrite : public TCompletionAction {
}

void Exec(TActorSystem *actorSystem) override {
auto execSpan = Span.CreateChild(TWilson::PDisk, "PDisk.CompletionChunkWrite.Exec");
auto execSpan = Span.CreateChild(TWilson::PDiskDetailed, "PDisk.CompletionChunkWrite.Exec");
double responseTimeMs = HPMilliSecondsFloat(HPNow() - StartTime);
LOG_DEBUG_S(*actorSystem, NKikimrServices::BS_PDISK,
"PDiskId# " << PDiskId << " ReqId# " << ReqId
Expand Down
24 changes: 12 additions & 12 deletions ydb/core/blobstorage/pdisk/blobstorage_pdisk_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1051,7 +1051,7 @@ TPDisk::EChunkReadPieceResult TPDisk::ChunkReadPiece(TIntrusivePtr<TChunkRead> &

ui64 readOffset = Format.Offset(read->ChunkIdx, read->FirstSector, currentSectorOffset);
// TODO: Get this from the drive
NWilson::TSpan span(TWilson::PDisk, std::move(traceId), "PDisk.CompletionChunkReadPart", NWilson::EFlags::NONE, ActorSystem);
NWilson::TSpan span(TWilson::PDiskBasic, std::move(traceId), "PDisk.CompletionChunkReadPart", NWilson::EFlags::NONE, ActorSystem);
traceId = span.GetTraceId();
THolder<TCompletionChunkReadPart> completion(new TCompletionChunkReadPart(this, read, bytesToRead,
payloadBytesToRead, payloadOffset, read->FinalCompletion, isTheLastPart, Cfg->UseT1ha0HashInFooter, std::move(span)));
Expand Down Expand Up @@ -2250,7 +2250,7 @@ void TPDisk::ProcessChunkWriteQueue() {
for (auto it = JointChunkWrites.begin(); it != JointChunkWrites.end(); ++it) {
TRequestBase *req = (*it);
req->SpanStack.PopOk();
req->SpanStack.Push(TWilson::PDisk, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END);
req->SpanStack.Push(TWilson::PDiskDetailed, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END);
switch (req->GetType()) {
case ERequestType::RequestChunkWritePiece:
{
Expand Down Expand Up @@ -2281,7 +2281,7 @@ void TPDisk::ProcessChunkReadQueue() {
for (auto& req : JointChunkReads) {

req->SpanStack.PopOk();
req->SpanStack.Push(TWilson::PDisk, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END);
req->SpanStack.Push(TWilson::PDiskDetailed, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END);
switch (req->GetType()) {
case ERequestType::RequestChunkReadPiece:
{
Expand Down Expand Up @@ -2353,7 +2353,7 @@ void TPDisk::ProcessChunkTrimQueue() {
for (auto it = JointChunkTrims.begin(); it != JointChunkTrims.end(); ++it) {
TChunkTrim *trim = (*it);
trim->SpanStack.PopOk();
trim->SpanStack.Push(TWilson::PDisk, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END);
trim->SpanStack.Push(TWilson::PDiskDetailed, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END);
ui64 chunkOffset = Format.ChunkSize * ui64(trim->ChunkIdx);
ui64 offset = chunkOffset + trim->Offset;
ui64 trimSize = trim->Size;
Expand Down Expand Up @@ -2890,7 +2890,7 @@ bool TPDisk::PreprocessRequest(TRequestBase *request) {
--state.OperationsInProgress;
--inFlight->ChunkReads;
};
auto completionSpan = request->SpanStack.CreateChild(TWilson::PDisk, "PDisk.CompletionChunkRead");
auto completionSpan = request->SpanStack.CreateChild(TWilson::PDiskTopLevel, "PDisk.CompletionChunkRead");
read->FinalCompletion = new TCompletionChunkRead(this, read, std::move(onDestroy), state.Nonce, std::move(completionSpan));

static_cast<TChunkRead*>(request)->SelfPointer = std::move(read);
Expand Down Expand Up @@ -2976,7 +2976,7 @@ bool TPDisk::PreprocessRequest(TRequestBase *request) {
};
ev.Completion = MakeHolder<TCompletionChunkWrite>(ev.Sender, result.release(), &Mon, PDiskId,
ev.CreationTime, ev.TotalSize, ev.PriorityClass, std::move(onDestroy), ev.ReqId,
ev.SpanStack.CreateChild(TWilson::PDisk, "PDisk.CompletionChunkWrite"));
ev.SpanStack.CreateChild(TWilson::PDiskTopLevel, "PDisk.CompletionChunkWrite"));

return true;
}
Expand Down Expand Up @@ -3171,7 +3171,7 @@ void TPDisk::PushRequestToForseti(TRequestBase *request) {
&& static_cast<TRequestBase *>(job->Payload)->GetType() == ERequestType::RequestLogWrite) {
TLogWrite &batch = *static_cast<TLogWrite*>(job->Payload);

if (auto span = request->SpanStack.Push(TWilson::PDisk, "PDisk.InScheduler.InLogWriteBatch")) {
if (auto span = request->SpanStack.Push(TWilson::PDiskDetailed, "PDisk.InScheduler.InLogWriteBatch")) {
span->Attribute("Batch.ReqId", static_cast<i64>(batch.ReqId.Id));
}
batch.AddToBatch(static_cast<TLogWrite*>(request));
Expand All @@ -3197,15 +3197,15 @@ void TPDisk::PushRequestToForseti(TRequestBase *request) {
SplitChunkJobSize(whole->TotalSize, &smallJobSize, &largeJobSize, &smallJobCount);
for (ui32 idx = 0; idx < smallJobCount; ++idx) {
// Schedule small job.
auto span = request->SpanStack.CreateChild(TWilson::PDisk, "PDisk.ChunkWritePiece", NWilson::EFlags::AUTO_END);
auto span = request->SpanStack.CreateChild(TWilson::PDiskBasic, "PDisk.ChunkWritePiece", NWilson::EFlags::AUTO_END);
span.Attribute("small_job_idx", idx)
.Attribute("is_last_piece", false);
TChunkWritePiece *piece = new TChunkWritePiece(whole, idx * smallJobSize, smallJobSize, std::move(span));
piece->EstimateCost(DriveModel);
AddJobToForseti(cbs, piece, request->JobKind);
}
// Schedule large job (there always is one)
auto span = request->SpanStack.CreateChild(TWilson::PDisk, "PDisk.ChunkWritePiece", NWilson::EFlags::AUTO_END);
auto span = request->SpanStack.CreateChild(TWilson::PDiskBasic, "PDisk.ChunkWritePiece", NWilson::EFlags::AUTO_END);
span.Attribute("is_last_piece", true);
TChunkWritePiece *piece = new TChunkWritePiece(whole, smallJobCount * smallJobSize, largeJobSize, std::move(span));
piece->EstimateCost(DriveModel);
Expand All @@ -3225,7 +3225,7 @@ void TPDisk::PushRequestToForseti(TRequestBase *request) {
ui32 largeJobSize = totalSectors - smallJobSize * smallJobCount;

for (ui32 idx = 0; idx < smallJobCount; ++idx) {
auto span = request->SpanStack.CreateChild(TWilson::PDisk, "PDisk.ChunkReadPiece", NWilson::EFlags::AUTO_END);
auto span = request->SpanStack.CreateChild(TWilson::PDiskBasic, "PDisk.ChunkReadPiece", NWilson::EFlags::AUTO_END);
span.Attribute("small_job_idx", idx)
.Attribute("is_last_piece", false);
// Schedule small job.
Expand All @@ -3238,7 +3238,7 @@ void TPDisk::PushRequestToForseti(TRequestBase *request) {
AddJobToForseti(cbs, piece, request->JobKind);
}
// Schedule large job (there always is one)
auto span = request->SpanStack.CreateChild(TWilson::PDisk, "PDisk.ChunkReadPiece");
auto span = request->SpanStack.CreateChild(TWilson::PDiskBasic, "PDisk.ChunkReadPiece");
span.Attribute("is_last_piece", true);
auto piece = new TChunkReadPiece(read, smallJobCount * smallJobSize,
largeJobSize * Format.SectorSize, true, std::move(span));
Expand Down Expand Up @@ -3274,7 +3274,7 @@ void TPDisk::SplitChunkJobSize(ui32 totalSize, ui32 *outSmallJobSize, ui32 *outL
void TPDisk::AddJobToForseti(NSchLab::TCbs *cbs, TRequestBase *request, NSchLab::EJobKind jobKind) {
LWTRACK(PDiskAddToScheduler, request->Orbit, PDiskId, request->ReqId.Id, HPSecondsFloat(request->CreationTime),
request->Owner, request->IsFast, request->PriorityClass);
request->SpanStack.Push(TWilson::PDisk, "PDisk.InScheduler");
request->SpanStack.Push(TWilson::PDiskDetailed, "PDisk.InScheduler");
TIntrusivePtr<NSchLab::TJob> job = ForsetiScheduler.CreateJob();
job->Payload = request;
job->Cost = request->Cost;
Expand Down
6 changes: 3 additions & 3 deletions ydb/core/blobstorage/pdisk/blobstorage_pdisk_impl_log.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -535,7 +535,7 @@ void TPDisk::ReadAndParseMainLog(const TActorId &pDiskActor) {
void TPDisk::ProcessLogReadQueue() {
for (auto& req : JointLogReads) {
req->SpanStack.PopOk();
req->SpanStack.Push(TWilson::PDisk, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END);
req->SpanStack.Push(TWilson::PDiskDetailed, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END);
switch (req->GetType()) {
case ERequestType::RequestLogRead:
{
Expand Down Expand Up @@ -736,7 +736,7 @@ void TPDisk::ProcessLogWriteQueueAndCommits() {
TStringStream errorReason;
NKikimrProto::EReplyStatus status = ValidateRequest(logWrite, errorReason);
if (status == NKikimrProto::OK) {
logWrite->SpanStack.Push(TWilson::PDisk, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END);
logWrite->SpanStack.Push(TWilson::PDiskDetailed, "PDisk.InBlockDevice", NWilson::EFlags::AUTO_END);
LogWrite(*logWrite, logChunksToCommit);
logWrite->ScheduleTime = HPNow();
if (auto logWriteTraceId = logWrite->SpanStack.GetTraceId()) {
Expand Down Expand Up @@ -1282,7 +1282,7 @@ void TPDisk::MarkChunksAsReleased(TReleaseChunks& req) {
}

if (req.IsChunksFromLogSplice) {
auto *releaseReq = ReqCreator.CreateFromArgs<TReleaseChunks>(std::move(req.ChunksToRelease), req.SpanStack.CreateChild(TWilson::PDisk, "PDisk.ReleaseChunks"));
auto *releaseReq = ReqCreator.CreateFromArgs<TReleaseChunks>(std::move(req.ChunksToRelease), req.SpanStack.CreateChild(TWilson::PDiskTopLevel, "PDisk.ReleaseChunks"));

auto flushAction = MakeHolder<TCompletionEventSender>(this, THolder<TReleaseChunks>(releaseReq));

Expand Down
8 changes: 4 additions & 4 deletions ydb/core/blobstorage/pdisk/blobstorage_pdisk_req_creator.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ class TReqCreator {
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// TODO: Make all functions in style
[[nodiscard]] TChunkTrim* CreateChunkTrim(ui32 chunkIdx, ui32 offset, ui64 size, const NWilson::TSpan& parent) {
NWilson::TSpan span = parent.CreateChild(TWilson::PDisk, "PDisk.ChunkTrim");
NWilson::TSpan span = parent.CreateChild(TWilson::PDiskTopLevel, "PDisk.ChunkTrim");
span.Attribute("chunk_idx", chunkIdx)
.Attribute("offset", offset)
.Attribute("size", static_cast<i64>(size))
Expand All @@ -228,7 +228,7 @@ class TReqCreator {
}

[[nodiscard]] TLogWrite* CreateLogWrite(NPDisk::TEvLog &ev, const TActorId &sender, double& burstMs, NWilson::TTraceId traceId) {
NWilson::TSpan span(TWilson::PDisk, std::move(traceId), "PDisk.LogWrite", NWilson::EFlags::AUTO_END, ActorSystem);
NWilson::TSpan span(TWilson::PDiskTopLevel, std::move(traceId), "PDisk.LogWrite", NWilson::EFlags::AUTO_END, ActorSystem);
span.Attribute("pdisk_id", PDiskId);

TReqId reqId(TReqId::LogWrite, AtomicIncrement(LastReqId));
Expand All @@ -245,7 +245,7 @@ class TReqCreator {

[[nodiscard]] TChunkRead* CreateChunkRead(const NPDisk::TEvChunkRead &ev, const TActorId &sender, double& burstMs,
NWilson::TTraceId traceId) {
NWilson::TSpan span(TWilson::PDisk, std::move(traceId), "PDisk.ChunkRead", NWilson::EFlags::AUTO_END, ActorSystem);
NWilson::TSpan span(TWilson::PDiskTopLevel, std::move(traceId), "PDisk.ChunkRead", NWilson::EFlags::AUTO_END, ActorSystem);
span.Attribute("pdisk_id", PDiskId);

TReqId reqId(TReqId::ChunkRead, AtomicIncrement(LastReqId));
Expand All @@ -261,7 +261,7 @@ class TReqCreator {

[[nodiscard]] TChunkWrite* CreateChunkWrite(const NPDisk::TEvChunkWrite &ev, const TActorId &sender, double& burstMs,
NWilson::TTraceId traceId) {
NWilson::TSpan span(TWilson::PDisk, std::move(traceId), "PDisk.ChunkWrite", NWilson::EFlags::AUTO_END, ActorSystem);
NWilson::TSpan span(TWilson::PDiskTopLevel, std::move(traceId), "PDisk.ChunkWrite", NWilson::EFlags::AUTO_END, ActorSystem);
span.Attribute("pdisk_id", PDiskId);

TReqId reqId(TReqId::ChunkWrite, AtomicIncrement(LastReqId));
Expand Down
6 changes: 3 additions & 3 deletions ydb/core/blobstorage/pdisk/blobstorage_pdisk_requestimpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ class TLogRead : public TRequestBase {

TLogRead(const NPDisk::TEvReadLog::TPtr &ev, ui32 pdiskId, TAtomicBase reqIdx)
: TRequestBase(ev->Sender, TReqId(TReqId::LogRead, reqIdx), ev->Get()->Owner, ev->Get()->OwnerRound, NPriInternal::LogRead,
NWilson::TSpan(TWilson::PDisk, std::move(ev->TraceId), "PDisk.LogRead"))
NWilson::TSpan(TWilson::PDiskTopLevel, std::move(ev->TraceId), "PDisk.LogRead"))
, Position(ev->Get()->Position)
, SizeLimit(ev->Get()->SizeLimit)
{
Expand Down Expand Up @@ -214,7 +214,7 @@ class TLogReadContinue : public TRequestBase {

TLogReadContinue(const NPDisk::TEvReadLogContinue::TPtr &ev, ui32 pdiskId, TAtomicBase /*reqIdx*/)
: TRequestBase(ev->Sender, ev->Get()->ReqId, 0, 0, NPriInternal::LogRead,
NWilson::TSpan(TWilson::PDisk, std::move(ev->TraceId), "PDisk.LogReadContinue"))
NWilson::TSpan(TWilson::PDiskTopLevel, std::move(ev->TraceId), "PDisk.LogReadContinue"))
, Data(ev->Get()->Data)
, Size(ev->Get()->Size)
, Offset(ev->Get()->Offset)
Expand Down Expand Up @@ -850,7 +850,7 @@ class TAskForCutLog : public TRequestBase {
public:
TAskForCutLog(const NPDisk::TEvAskForCutLog::TPtr &ev, ui32 pdiskId, TAtomicBase reqIdx)
: TRequestBase(ev->Sender, TReqId(TReqId::AskForCutLog, reqIdx), ev->Get()->Owner, ev->Get()->OwnerRound, NPriInternal::Other,
NWilson::TSpan(TWilson::PDisk, std::move(ev->TraceId), "PDisk.AskForCutLog")
NWilson::TSpan(TWilson::PDiskTopLevel, std::move(ev->TraceId), "PDisk.AskForCutLog")
)
{
if (auto span = SpanStack.PeekTop()) {
Expand Down
3 changes: 2 additions & 1 deletion ydb/core/cms/console/configs_dispatcher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ const THashSet<ui32> DYNAMIC_KINDS({
(ui32)NKikimrConsole::TConfigItem::TenantPoolConfigItem,
(ui32)NKikimrConsole::TConfigItem::TenantSlotBrokerConfigItem,
(ui32)NKikimrConsole::TConfigItem::AllowEditYamlInUiItem,
(ui32)NKikimrConsole::TConfigItem::BackgroundCleaningConfigItem
(ui32)NKikimrConsole::TConfigItem::BackgroundCleaningConfigItem,
(ui32)NKikimrConsole::TConfigItem::TracingConfigItem,
});

const THashSet<ui32> NON_YAML_KINDS({
Expand Down
Loading

0 comments on commit 53eadb0

Please sign in to comment.