aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/actors
diff options
context:
space:
mode:
authorivanmorozov <ivanmorozov@yandex-team.com>2022-09-23 15:34:12 +0300
committerivanmorozov <ivanmorozov@yandex-team.com>2022-09-23 15:34:12 +0300
commitf7362d18e23479d33f86e53dea41c0ef0974bc8d (patch)
tree8582d4fc3d595108a4730c077c4d2e51f6384d30 /library/cpp/actors
parent07c943de4adb7d76d1a1725b6c5b9d9b9edf7733 (diff)
downloadydb-f7362d18e23479d33f86e53dea41c0ef0974bc8d.tar.gz
spans usage for rpc_long_tx
Diffstat (limited to 'library/cpp/actors')
-rw-r--r--library/cpp/actors/wilson/wilson_profile_span.cpp8
-rw-r--r--library/cpp/actors/wilson/wilson_profile_span.h4
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 177db5de83..3939be3c94 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 ece1837631..f12747e4ac 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;