diff options
author | ivanmorozov <ivanmorozov@yandex-team.com> | 2022-09-23 15:34:12 +0300 |
---|---|---|
committer | ivanmorozov <ivanmorozov@yandex-team.com> | 2022-09-23 15:34:12 +0300 |
commit | f7362d18e23479d33f86e53dea41c0ef0974bc8d (patch) | |
tree | 8582d4fc3d595108a4730c077c4d2e51f6384d30 /library/cpp | |
parent | 07c943de4adb7d76d1a1725b6c5b9d9b9edf7733 (diff) | |
download | ydb-f7362d18e23479d33f86e53dea41c0ef0974bc8d.tar.gz |
spans usage for rpc_long_tx
Diffstat (limited to 'library/cpp')
-rw-r--r-- | library/cpp/actors/wilson/wilson_profile_span.cpp | 8 | ||||
-rw-r--r-- | library/cpp/actors/wilson/wilson_profile_span.h | 4 |
2 files changed, 10 insertions, 2 deletions
diff --git a/library/cpp/actors/wilson/wilson_profile_span.cpp b/library/cpp/actors/wilson/wilson_profile_span.cpp index 177db5de83d..3939be3c94d 100644 --- a/library/cpp/actors/wilson/wilson_profile_span.cpp +++ b/library/cpp/actors/wilson/wilson_profile_span.cpp @@ -34,11 +34,17 @@ TProfileSpan::TProfileSpan(const ui8 verbosity, TTraceId parentId, std::optional } TProfileSpan::~TProfileSpan() { - if (Enabled) { + if (Enabled && (ResultTimes.GetMapSafe().size() || PairInstances.size())) { TBase::Attribute("profile", ProfileToString()); } } +NWilson::TProfileSpan TProfileSpan::BuildChildrenSpan(std::optional<TString> name, const ui8 verbosity) const { + TTraceId parentTraceId = TBase::GetTraceId(); + const ui8 newVerbosity = verbosity ? verbosity : parentTraceId.GetVerbosity(); + return TProfileSpan(newVerbosity, std::move(parentTraceId), name); +} + TString TProfileSpan::ProfileToString() const { if (!Enabled) { return "DISABLED"; diff --git a/library/cpp/actors/wilson/wilson_profile_span.h b/library/cpp/actors/wilson/wilson_profile_span.h index ece18376313..f12747e4ac0 100644 --- a/library/cpp/actors/wilson/wilson_profile_span.h +++ b/library/cpp/actors/wilson/wilson_profile_span.h @@ -19,7 +19,7 @@ private: void AddMin(const TInstant instance); TString ToString() const; }; - mutable NJson::TJsonValue ResultTimes; + mutable NJson::TJsonValue ResultTimes = NJson::JSON_MAP; std::map<TString, TMinMaxPair> PairInstances; std::vector<NJson::TJsonValue*> CurrentJsonPath; mutable TInstant LastNoGuards = Now(); @@ -32,6 +32,8 @@ public: TProfileSpan(const ui8 verbosity, TTraceId parentId, std::optional<TString> name); ~TProfileSpan(); + TProfileSpan BuildChildrenSpan(std::optional<TString> name, const ui8 verbosity = 0) const; + using TBase::TBase; TString ProfileToString() const; |