diff --git a/ydb/services/persqueue_v1/actors/write_session_actor.cpp b/ydb/services/persqueue_v1/actors/write_session_actor.cpp index 3897c9ab7af1..b4102287c50e 100644 --- a/ydb/services/persqueue_v1/actors/write_session_actor.cpp +++ b/ydb/services/persqueue_v1/actors/write_session_actor.cpp @@ -492,6 +492,17 @@ void TWriteSessionActor::InitAfterDiscovery(const TActorCo } +template +void TWriteSessionActor::SetupBytesWrittenByUserAgentCounter() { + static constexpr auto protocol = UseMigrationProtocol ? "pqv1" : "topic"; + BytesWrittenByUserAgent = GetServiceCounters(Counters, "pqproxy|userAgents") + ->GetSubgroup("host", "") + ->GetSubgroup("protocol", protocol) + ->GetSubgroup("topic", FullConverter->GetFederationPath()) + ->GetSubgroup("user-agent", CleanupCounterValueString(UserAgent)) + ->GetExpiringNamedCounter("sensor", "BytesWrittenByUserAgent", true); +} + template void TWriteSessionActor::SetupCounters() { @@ -522,13 +533,7 @@ void TWriteSessionActor::SetupCounters() SessionsCreated.Inc(); SessionsActive.Inc(); - constexpr auto protocol = UseMigrationProtocol ? "pqv1" : "topic"; - BytesWrittenByUserAgent = GetServiceCounters(Counters, "pqproxy|userAgents") - ->GetSubgroup("host", "") - ->GetSubgroup("protocol", protocol) - ->GetSubgroup("topic", FullConverter->GetFederationPath()) - ->GetSubgroup("user-agent", CleanupCounterValueString(UserAgent)) - ->GetExpiringNamedCounter("sensor", "BytesWrittenByUserAgent", true); + SetupBytesWrittenByUserAgentCounter(); } template @@ -548,6 +553,8 @@ void TWriteSessionActor::SetupCounters(const TString& clou SessionsCreated.Inc(); SessionsActive.Inc(); + + SetupBytesWrittenByUserAgentCounter(); } template diff --git a/ydb/services/persqueue_v1/actors/write_session_actor.h b/ydb/services/persqueue_v1/actors/write_session_actor.h index 47a3b2133718..d6d0b992469e 100644 --- a/ydb/services/persqueue_v1/actors/write_session_actor.h +++ b/ydb/services/persqueue_v1/actors/write_session_actor.h @@ -161,6 +161,7 @@ class TWriteSessionActor void PrepareRequest(THolder&& ev, const TActorContext& ctx); void SendWriteRequest(typename TWriteRequestInfo::TPtr&& request, const TActorContext& ctx); + void SetupBytesWrittenByUserAgentCounter(); void SetupCounters(); void SetupCounters(const TString& cloudId, const TString& dbId, const TString& dbPath, const bool isServerless, const TString& folderId);