diff options
author | ivanmorozov <ivanmorozov@yandex-team.com> | 2023-04-11 20:13:07 +0300 |
---|---|---|
committer | ivanmorozov <ivanmorozov@yandex-team.com> | 2023-04-11 20:13:07 +0300 |
commit | fc0abe8a74268234d67d4046b4177a7ef061da3a (patch) | |
tree | bb71fbad961dbfdb3316171dd83e4b72699ee229 /library/cpp | |
parent | 952712c0ec8005e7ed4290dfdd1a345514b7564a (diff) | |
download | ydb-fc0abe8a74268234d67d4046b4177a7ef061da3a.tar.gz |
use 200 chars solomon-tag-limit
Diffstat (limited to 'library/cpp')
-rw-r--r-- | library/cpp/actors/core/actor.h | 3 | ||||
-rw-r--r-- | library/cpp/actors/util/local_process_key.h | 16 |
2 files changed, 15 insertions, 4 deletions
diff --git a/library/cpp/actors/core/actor.h b/library/cpp/actors/core/actor.h index 7cc0baec982..b91618a5f57 100644 --- a/library/cpp/actors/core/actor.h +++ b/library/cpp/actors/core/actor.h @@ -630,7 +630,8 @@ namespace NActors { using TActorActivity = decltype(((TDerived*)nullptr)->ActorActivityType()); return TEnumProcessKey<TActorActivityTag, TActorActivity>::GetIndex(TDerived::ActorActivityType()); } else { - return TLocalProcessExtKey<TActorActivityTag, TDerived>::GetIndex(); + // 200 characters is limit for solomon metric tag length + return TLocalProcessExtKey<TActorActivityTag, TDerived, 200>::GetIndex(); } } diff --git a/library/cpp/actors/util/local_process_key.h b/library/cpp/actors/util/local_process_key.h index b82db5cfe5f..4d000db1980 100644 --- a/library/cpp/actors/util/local_process_key.h +++ b/library/cpp/actors/util/local_process_key.h @@ -12,7 +12,7 @@ class TLocalProcessKeyState { template <typename U, const char* Name> friend class TLocalProcessKey; -template <typename U, class TClass> +template <typename U, class TClass, ui32 KeyLengthLimit> friend class TLocalProcessExtKey; template <typename U, typename EnumT> friend class TEnumProcessKey; @@ -92,7 +92,7 @@ private: inline static size_t Index = TLocalProcessKeyState<T>::GetInstance().Register(Name); }; -template <typename T, class TClass> +template <typename T, class TClass, ui32 KeyLengthLimit = 0> class TLocalProcessExtKey { public: static TStringBuf GetName() { @@ -104,8 +104,18 @@ public: } private: + + static TString TypeNameRobust() { + const TString className = TypeName<TClass>(); + if (KeyLengthLimit && className.size() > KeyLengthLimit) { + return className.substr(0, KeyLengthLimit - 3) + "..."; + } else { + return className; + } + } + static const inline TString Name = TypeName<TClass>(); - inline static size_t Index = TLocalProcessKeyState<T>::GetInstance().Register(TypeName<TClass>()); + inline static size_t Index = TLocalProcessKeyState<T>::GetInstance().Register(TypeNameRobust()); }; template <typename T, typename EnumT> |