aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhcpp <hcpp@ydb.tech>2022-10-04 17:42:41 +0300
committerhcpp <hcpp@ydb.tech>2022-10-04 17:42:41 +0300
commit84acfe7d36ff9a4538b841fb78f00ce3de177e28 (patch)
tree3b9f1ef2262efc3fe3e4ca4e1be298dc278407d8
parentb3ee821a784e0c0687bed85edc6fa458c4e1f1be (diff)
downloadydb-84acfe7d36ff9a4538b841fb78f00ce3de177e28.tar.gz
metrics ttl parameter has been added to config
-rw-r--r--ydb/core/yq/libs/config/protos/control_plane_proxy.proto1
-rw-r--r--ydb/core/yq/libs/config/protos/control_plane_storage.proto1
-rw-r--r--ydb/core/yq/libs/control_plane_proxy/CMakeLists.txt1
-rw-r--r--ydb/core/yq/libs/control_plane_proxy/config.cpp36
-rw-r--r--ydb/core/yq/libs/control_plane_proxy/config.h17
-rw-r--r--ydb/core/yq/libs/control_plane_proxy/control_plane_proxy.cpp36
-rw-r--r--ydb/core/yq/libs/control_plane_storage/config.cpp4
-rw-r--r--ydb/core/yq/libs/control_plane_storage/config.h1
-rw-r--r--ydb/core/yq/libs/control_plane_storage/util.cpp4
-rw-r--r--ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_impl.h14
10 files changed, 81 insertions, 34 deletions
diff --git a/ydb/core/yq/libs/config/protos/control_plane_proxy.proto b/ydb/core/yq/libs/config/protos/control_plane_proxy.proto
index 51f5d1f9f87..b7fa0c54647 100644
--- a/ydb/core/yq/libs/config/protos/control_plane_proxy.proto
+++ b/ydb/core/yq/libs/config/protos/control_plane_proxy.proto
@@ -10,4 +10,5 @@ message TControlPlaneProxyConfig {
bool Enabled = 1;
string RequestTimeout = 2;
bool EnablePermissions = 3;
+ string MetricsTtl = 4;
}
diff --git a/ydb/core/yq/libs/config/protos/control_plane_storage.proto b/ydb/core/yq/libs/config/protos/control_plane_storage.proto
index 2eb2b50f784..f2417d42444 100644
--- a/ydb/core/yq/libs/config/protos/control_plane_storage.proto
+++ b/ydb/core/yq/libs/config/protos/control_plane_storage.proto
@@ -66,4 +66,5 @@ message TControlPlaneStorageConfig {
TQueryMapping Mapping = 25;
repeated TRetryPolicyMapping RetryPolicyMapping = 26;
string QuotaTtl = 28;
+ string MetricsTtl = 29;
}
diff --git a/ydb/core/yq/libs/control_plane_proxy/CMakeLists.txt b/ydb/core/yq/libs/control_plane_proxy/CMakeLists.txt
index 058247d5e14..1fb348a7995 100644
--- a/ydb/core/yq/libs/control_plane_proxy/CMakeLists.txt
+++ b/ydb/core/yq/libs/control_plane_proxy/CMakeLists.txt
@@ -27,6 +27,7 @@ target_link_libraries(yq-libs-control_plane_proxy PUBLIC
ydb-library-security
)
target_sources(yq-libs-control_plane_proxy PRIVATE
+ ${CMAKE_SOURCE_DIR}/ydb/core/yq/libs/control_plane_proxy/config.cpp
${CMAKE_SOURCE_DIR}/ydb/core/yq/libs/control_plane_proxy/control_plane_proxy.cpp
${CMAKE_SOURCE_DIR}/ydb/core/yq/libs/control_plane_proxy/probes.cpp
)
diff --git a/ydb/core/yq/libs/control_plane_proxy/config.cpp b/ydb/core/yq/libs/control_plane_proxy/config.cpp
new file mode 100644
index 00000000000..f89cf1e2019
--- /dev/null
+++ b/ydb/core/yq/libs/control_plane_proxy/config.cpp
@@ -0,0 +1,36 @@
+#include "config.h"
+
+namespace NYq {
+
+namespace {
+
+TDuration GetDuration(const TString& value, const TDuration& defaultValue)
+{
+ TDuration result = defaultValue;
+ TDuration::TryParse(value, result);
+ return result;
+}
+
+NConfig::TControlPlaneProxyConfig FillDefaultParameters(NConfig::TControlPlaneProxyConfig config)
+{
+ if (!config.GetRequestTimeout()) {
+ config.SetRequestTimeout("30s");
+ }
+
+ if (!config.GetMetricsTtl()) {
+ config.SetMetricsTtl("1d");
+ }
+
+ return config;
+}
+
+}
+
+TControlPlaneProxyConfig::TControlPlaneProxyConfig(const NConfig::TControlPlaneProxyConfig& config)
+ : Proto(FillDefaultParameters(config))
+ , RequestTimeout(GetDuration(Proto.GetRequestTimeout(), TDuration::Seconds(30)))
+ , MetricsTtl(GetDuration(Proto.GetMetricsTtl(), TDuration::Days(1)))
+{
+}
+
+} // NYq
diff --git a/ydb/core/yq/libs/control_plane_proxy/config.h b/ydb/core/yq/libs/control_plane_proxy/config.h
new file mode 100644
index 00000000000..8cb2d46dacf
--- /dev/null
+++ b/ydb/core/yq/libs/control_plane_proxy/config.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#include <ydb/core/yq/libs/config/protos/control_plane_proxy.pb.h>
+
+#include <util/datetime/base.h>
+
+namespace NYq {
+
+struct TControlPlaneProxyConfig {
+ NConfig::TControlPlaneProxyConfig Proto;
+ TDuration RequestTimeout;
+ TDuration MetricsTtl;
+
+ TControlPlaneProxyConfig(const NConfig::TControlPlaneProxyConfig& config);
+};
+
+} // NYq
diff --git a/ydb/core/yq/libs/control_plane_proxy/control_plane_proxy.cpp b/ydb/core/yq/libs/control_plane_proxy/control_plane_proxy.cpp
index 0d0b987ec17..6b2a3b239da 100644
--- a/ydb/core/yq/libs/control_plane_proxy/control_plane_proxy.cpp
+++ b/ydb/core/yq/libs/control_plane_proxy/control_plane_proxy.cpp
@@ -1,3 +1,4 @@
+#include "config.h"
#include "control_plane_proxy.h"
#include "probes.h"
#include "utils.h"
@@ -206,7 +207,7 @@ class TResolveFolderActor : public NActors::TActorBootstrapped<TResolveFolderAct
using TBase::Become;
using TBase::Register;
- NConfig::TControlPlaneProxyConfig Config;
+ ::NYq::TControlPlaneProxyConfig Config;
TActorId Sender;
TRequestCommonCountersPtr Counters;
TString FolderId;
@@ -219,7 +220,7 @@ class TResolveFolderActor : public NActors::TActorBootstrapped<TResolveFolderAct
public:
TResolveFolderActor(const TRequestCommonCountersPtr& counters,
- TActorId sender, const NConfig::TControlPlaneProxyConfig& config,
+ TActorId sender, const ::NYq::TControlPlaneProxyConfig& config,
const TString& folderId, const TString& token,
const std::function<void(const TDuration&, bool, bool)>& probe,
TEventRequest event,
@@ -240,7 +241,7 @@ public:
void Bootstrap() {
CPP_LOG_T("Resolve folder bootstrap. Folder id: " << FolderId << " Actor id: " << SelfId());
- Become(&TResolveFolderActor::StateFunc, GetDuration(Config.GetRequestTimeout(), TDuration::Seconds(30)), new NActors::TEvents::TEvWakeup());
+ Become(&TResolveFolderActor::StateFunc, Config.RequestTimeout, new NActors::TEvents::TEvWakeup());
auto request = std::make_unique<NKikimr::NFolderService::TEvFolderService::TEvGetFolderRequest>();
request->Request.set_folder_id(FolderId);
request->Token = Token;
@@ -309,7 +310,7 @@ class TRequestActor : public NActors::TActorBootstrapped<TRequestActor<TRequestP
using TBase::PassAway;
using TBase::Become;
- NConfig::TControlPlaneProxyConfig Config;
+ ::NYq::TControlPlaneProxyConfig Config;
TRequestProto RequestProto;
TString Scope;
TString FolderId;
@@ -328,7 +329,7 @@ class TRequestActor : public NActors::TActorBootstrapped<TRequestActor<TRequestP
public:
static constexpr char ActorName[] = "YQ_CONTROL_PLANE_PROXY_REQUEST_ACTOR";
- explicit TRequestActor(const NConfig::TControlPlaneProxyConfig& config,
+ explicit TRequestActor(const ::NYq::TControlPlaneProxyConfig& config,
TActorId sender, ui32 cookie,
const TString& scope, const TString& folderId, TRequestProto&& requestProto,
TString&& user, TString&& token, const TActorId& serviceId,
@@ -353,14 +354,13 @@ public:
, Quotas(quotas)
{
Counters.IncInFly();
- FillDefaultParameters(Config);
}
public:
void Bootstrap() {
CPP_LOG_T("Request actor. Actor id: " << SelfId());
- Become(&TRequestActor::StateFunc, GetDuration(Config.GetRequestTimeout(), TDuration::Seconds(30)), new NActors::TEvents::TEvWakeup());
+ Become(&TRequestActor::StateFunc, Config.RequestTimeout, new NActors::TEvents::TEvWakeup());
Send(ServiceId, new TRequest(Scope, RequestProto, User, Token, CloudId, Permissions, Quotas), 0, Cookie);
}
@@ -420,20 +420,6 @@ public:
Counters.DecInFly();
Counters.Common->LatencyMs->Collect((TInstant::Now() - StartTime).MilliSeconds());
}
-
- TDuration GetDuration(const TString& value, const TDuration& defaultValue)
- {
- TDuration result = defaultValue;
- TDuration::TryParse(value, result);
- return result;
- }
-
- void FillDefaultParameters(NConfig::TControlPlaneProxyConfig& config)
- {
- if (!config.GetRequestTimeout()) {
- config.SetRequestTimeout("30s");
- }
- }
};
class TControlPlaneProxyActor : public NActors::TActorBootstrapped<TControlPlaneProxyActor> {
@@ -505,8 +491,6 @@ class TControlPlaneProxyActor : public NActors::TActorBootstrapped<TControlPlane
}
};
- TDuration MetricsTtl = TDuration::Days(1);
-
using TScopeCounters = std::array<TRequestScopeCountersPtr, RTS_MAX>;
using TScopeCountersPtr = std::shared_ptr<TScopeCounters>;
@@ -601,7 +585,7 @@ class TControlPlaneProxyActor : public NActors::TActorBootstrapped<TControlPlane
};
TCounters Counters;
- NConfig::TControlPlaneProxyConfig Config;
+ ::NYq::TControlPlaneProxyConfig Config;
bool GetQuotas;
public:
@@ -683,7 +667,7 @@ private:
template<typename T>
NYql::TIssues ValidatePermissions(T& ev, const TVector<TString>& requiredPermissions) {
NYql::TIssues issues;
- if (!Config.GetEnablePermissions()) {
+ if (!Config.Proto.GetEnablePermissions()) {
return issues;
}
@@ -1883,7 +1867,7 @@ private:
HTML(str) {
PRE() {
str << "Current config:" << Endl;
- str << Config.DebugString() << Endl;
+ str << Config.Proto.DebugString() << Endl;
str << Endl;
}
}
diff --git a/ydb/core/yq/libs/control_plane_storage/config.cpp b/ydb/core/yq/libs/control_plane_storage/config.cpp
index d5171cbc1dd..4469c3228a3 100644
--- a/ydb/core/yq/libs/control_plane_storage/config.cpp
+++ b/ydb/core/yq/libs/control_plane_storage/config.cpp
@@ -28,6 +28,8 @@ TControlPlaneStorageConfig::TControlPlaneStorageConfig(const NConfig::TControlPl
, AnalyticsRetryCounterUpdateTime(GetDuration(Proto.GetAnalyticsRetryCounterUpdateTime(), TDuration::Days(1)))
, StreamingRetryCounterUpdateTime(GetDuration(Proto.GetAnalyticsRetryCounterUpdateTime(), TDuration::Days(1)))
, TaskLeaseTtl(GetDuration(Proto.GetTaskLeaseTtl(), TDuration::Seconds(30)))
+ , QuotaTtl(GetDuration(Proto.GetQuotaTtl(), TDuration::Zero()))
+ , MetricsTtl(GetDuration(Proto.GetMetricsTtl(), TDuration::Days(1)))
{
for (const auto& availableConnection : Proto.GetAvailableConnection()) {
AvailableConnections.insert(GetConnectionType(availableConnection));
@@ -51,8 +53,6 @@ TControlPlaneStorageConfig::TControlPlaneStorageConfig(const NConfig::TControlPl
TaskLeaseRetryPolicy.RetryCount = Proto.GetTaskLeaseRetryPolicy().GetRetryCount();
TaskLeaseRetryPolicy.RetryPeriod = GetDuration(Proto.GetTaskLeaseRetryPolicy().GetRetryPeriod(), TDuration::Days(1));
}
-
- QuotaTtl = GetDuration(Proto.GetQuotaTtl(), TDuration::Zero());
}
} // NYq
diff --git a/ydb/core/yq/libs/control_plane_storage/config.h b/ydb/core/yq/libs/control_plane_storage/config.h
index 7097e3c6e18..1fd1b3231f5 100644
--- a/ydb/core/yq/libs/control_plane_storage/config.h
+++ b/ydb/core/yq/libs/control_plane_storage/config.h
@@ -26,6 +26,7 @@ struct TControlPlaneStorageConfig {
THashMap<ui64, TRetryPolicyItem> RetryPolicies;
TRetryPolicyItem TaskLeaseRetryPolicy;
TDuration QuotaTtl;
+ TDuration MetricsTtl;
TControlPlaneStorageConfig(const NConfig::TControlPlaneStorageConfig& config, const NConfig::TCommonConfig& common);
};
diff --git a/ydb/core/yq/libs/control_plane_storage/util.cpp b/ydb/core/yq/libs/control_plane_storage/util.cpp
index b5129bbbf6b..f22e17b672b 100644
--- a/ydb/core/yq/libs/control_plane_storage/util.cpp
+++ b/ydb/core/yq/libs/control_plane_storage/util.cpp
@@ -95,6 +95,10 @@ NConfig::TControlPlaneStorageConfig FillDefaultParameters(NConfig::TControlPlane
config.SetTaskLeaseTtl("30s");
}
+ if (!config.GetMetricsTtl()) {
+ config.SetMetricsTtl("1d");
+ }
+
if (!config.HasTaskLeaseRetryPolicy()) {
auto& taskLeaseRetryPolicy = *config.MutableTaskLeaseRetryPolicy();
taskLeaseRetryPolicy.SetRetryCount(20);
diff --git a/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_impl.h b/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_impl.h
index 7c35e5749ff..01aac43de5e 100644
--- a/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_impl.h
+++ b/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_impl.h
@@ -324,8 +324,10 @@ class TYdbControlPlaneStorageActor : public NActors::TActorBootstrapped<TYdbCont
public:
::NMonitoring::TDynamicCounterPtr Counters;
- explicit TCounters(const ::NMonitoring::TDynamicCounterPtr& counters)
- : Counters(counters)
+ explicit TCounters(const ::NMonitoring::TDynamicCounterPtr& counters, const ::NYq::TControlPlaneStorageConfig& config)
+ : ScopeCounters{TTtlCacheSettings{}.SetTtl(config.MetricsTtl)}
+ , FinalStatusCounters{TTtlCacheSettings{}.SetTtl(config.MetricsTtl)}
+ , Counters(counters)
{
for (auto& request: CommonRequests) {
request->Register(Counters);
@@ -402,10 +404,10 @@ class TYdbControlPlaneStorageActor : public NActors::TActorBootstrapped<TYdbCont
}
};
- TCounters Counters;
-
::NYq::TControlPlaneStorageConfig Config;
+ TCounters Counters;
+
TYdbConnectionPtr YdbConnection;
::NYq::TYqSharedResources::TPtr YqSharedResources;
@@ -430,8 +432,8 @@ public:
const ::NYq::TYqSharedResources::TPtr& yqSharedResources,
const NKikimr::TYdbCredentialsProviderFactory& credProviderFactory,
const TString& tenantName)
- : Counters(counters)
- , Config(config, common)
+ : Config(config, common)
+ , Counters(counters, Config)
, YqSharedResources(yqSharedResources)
, CredProviderFactory(credProviderFactory)
, TenantName(tenantName)