diff options
author | d-mokhnatkin <d-mokhnatkin@ydb.tech> | 2022-11-25 19:16:35 +0300 |
---|---|---|
committer | d-mokhnatkin <d-mokhnatkin@ydb.tech> | 2022-11-25 19:16:35 +0300 |
commit | c9d0aa8e198fc96e3cd5bcf8663a969d8df33e8a (patch) | |
tree | 893992ba4de8980e37dc0faff7b2f325745d282f | |
parent | 89e3d3be6549dd04a748f53756a0f8a5df821d07 (diff) | |
download | ydb-c9d0aa8e198fc96e3cd5bcf8663a969d8df33e8a.tar.gz |
move monitoring endpoint to config
-rw-r--r-- | ydb/core/yq/libs/actors/clusters_from_connections.cpp | 48 | ||||
-rw-r--r-- | ydb/core/yq/libs/actors/clusters_from_connections.h | 3 | ||||
-rw-r--r-- | ydb/core/yq/libs/actors/run_actor.cpp | 11 | ||||
-rw-r--r-- | ydb/core/yq/libs/config/protos/common.proto | 1 | ||||
-rw-r--r-- | ydb/core/yq/libs/test_connection/test_connection.cpp | 14 | ||||
-rw-r--r-- | ydb/core/yq/libs/test_connection/test_connection.h | 1 | ||||
-rw-r--r-- | ydb/core/yq/libs/test_connection/test_monitoring.cpp | 8 |
7 files changed, 54 insertions, 32 deletions
diff --git a/ydb/core/yq/libs/actors/clusters_from_connections.cpp b/ydb/core/yq/libs/actors/clusters_from_connections.cpp index 286cec59631..4cb3a77e330 100644 --- a/ydb/core/yq/libs/actors/clusters_from_connections.cpp +++ b/ydb/core/yq/libs/actors/clusters_from_connections.cpp @@ -72,29 +72,18 @@ void FillS3ClusterConfig(NYql::TS3ClusterConfig& clusterConfig, } void FillSolomonClusterConfig(NYql::TSolomonClusterConfig& clusterConfig, - const TString& name, const TString& authToken, - const THashMap<TString, TString>& accountIdSignatures, - const YandexQuery::Monitoring& monitoring) { - clusterConfig.SetName(name); - - // TODO: move Endpoint to yq config - auto solomonEndpointForTest = GetEnv("SOLOMON_ENDPOINT"); - auto solomonEndpoint = solomonEndpointForTest ? TString(solomonEndpointForTest) : TString(); - if (solomonEndpoint.empty()) { - if (name.StartsWith("__pre")) { - solomonEndpoint = "monitoring.api.cloud-preprod.yandex.net"; - clusterConfig.SetUseSsl(true); - } else { - solomonEndpoint = "monitoring.api.cloud.yandex.net"; - clusterConfig.SetUseSsl(true); - } - } + const TString& name, + const TString& authToken, + const TString& endpoint, + const THashMap<TString, TString>& accountIdSignatures, + const YandexQuery::Monitoring& monitoring) { + clusterConfig.SetName(name); - clusterConfig.SetCluster(solomonEndpoint); - clusterConfig.SetClusterType(TSolomonClusterConfig::SCT_MONITORING); - clusterConfig.MutablePath()->SetProject(monitoring.project()); - clusterConfig.MutablePath()->SetCluster(monitoring.cluster()); - FillClusterAuth(clusterConfig, monitoring.auth(), authToken, accountIdSignatures); + clusterConfig.SetCluster(endpoint); + clusterConfig.SetClusterType(TSolomonClusterConfig::SCT_MONITORING); + clusterConfig.MutablePath()->SetProject(monitoring.project()); + clusterConfig.MutablePath()->SetCluster(monitoring.cluster()); + FillClusterAuth(clusterConfig, monitoring.auth(), authToken, accountIdSignatures); } } //namespace @@ -122,22 +111,27 @@ NYql::TS3ClusterConfig CreateS3ClusterConfig(const TString& name, } NYql::TSolomonClusterConfig CreateSolomonClusterConfig(const TString& name, - const TString& authToken, const TString& accountSignature, + const TString& authToken, + const TString& endpoint, + const TString& accountSignature, const YandexQuery::Monitoring& monitoring) { NYql::TSolomonClusterConfig cluster; THashMap<TString, TString> accountIdSignatures; accountIdSignatures[monitoring.auth().service_account().id()] = accountSignature; - FillSolomonClusterConfig(cluster, name, authToken, accountIdSignatures, monitoring); + FillSolomonClusterConfig(cluster, name, authToken, endpoint, accountIdSignatures, monitoring); return cluster; } -void AddClustersFromConnections(const THashMap<TString, YandexQuery::Connection>& connections, +void AddClustersFromConnections( + const THashMap<TString, YandexQuery::Connection>& connections, bool useBearerForYdb, const TString& objectStorageEndpoint, + const TString& monitoringEndpoint, const TString& authToken, const THashMap<TString, TString>& accountIdSignatures, TGatewaysConfig& gatewaysConfig, - THashMap<TString, TString>& clusters) { + THashMap<TString, TString>& clusters) +{ for (const auto&[_, conn] : connections) { auto connectionName = conn.content().name(); switch (conn.content().setting().connection_case()) { @@ -186,7 +180,7 @@ void AddClustersFromConnections(const THashMap<TString, YandexQuery::Connection> case YandexQuery::ConnectionSetting::kMonitoring: { const auto& monitoring = conn.content().setting().monitoring(); auto* clusterCfg = gatewaysConfig.MutableSolomon()->AddClusterMapping(); - FillSolomonClusterConfig(*clusterCfg, connectionName, authToken, accountIdSignatures, monitoring); + FillSolomonClusterConfig(*clusterCfg, connectionName, authToken, monitoringEndpoint, accountIdSignatures, monitoring); clusters.emplace(connectionName, SolomonProviderName); break; } diff --git a/ydb/core/yq/libs/actors/clusters_from_connections.h b/ydb/core/yq/libs/actors/clusters_from_connections.h index 88c925d74dc..5661c4d9505 100644 --- a/ydb/core/yq/libs/actors/clusters_from_connections.h +++ b/ydb/core/yq/libs/actors/clusters_from_connections.h @@ -9,11 +9,12 @@ NYql::TPqClusterConfig CreatePqClusterConfig(const TString& name, bool useBearer NYql::TS3ClusterConfig CreateS3ClusterConfig(const TString& name, const TString& authToken, const TString& objectStorageEndpoint, const TString& accountSignature, const YandexQuery::ObjectStorageConnection& s3); -NYql::TSolomonClusterConfig CreateSolomonClusterConfig(const TString& name, const TString& authToken, const TString& accountSignature, const YandexQuery::Monitoring& monitoring); +NYql::TSolomonClusterConfig CreateSolomonClusterConfig(const TString& name, const TString& authToken, const TString& endpoint, const TString& accountSignature, const YandexQuery::Monitoring& monitoring); void AddClustersFromConnections(const THashMap<TString, YandexQuery::Connection>& connections, bool useBearerForYdb, const TString& objectStorageEndpoint, + const TString& monitoringEndpoint, const TString& authToken, const THashMap<TString, TString>& accountIdSignatures, NYql::TGatewaysConfig& gatewaysConfig, diff --git a/ydb/core/yq/libs/actors/run_actor.cpp b/ydb/core/yq/libs/actors/run_actor.cpp index 0ef74688219..62697f0b11f 100644 --- a/ydb/core/yq/libs/actors/run_actor.cpp +++ b/ydb/core/yq/libs/actors/run_actor.cpp @@ -1572,12 +1572,23 @@ private: THashMap<TString, TString> clusters; + TString monitoringEndpoint = Params.CommonConfig.GetMonitoringEndpoint(); + // TODO: get monitoring endpoint from config only after YQ-148 + if (monitoringEndpoint.Empty()) { + if (Params.CommonConfig.GetObjectStorageEndpoint().Contains("preprod")) { + monitoringEndpoint = "monitoring.api.cloud-preprod.yandex.net"; + } else { + monitoringEndpoint = "monitoring.api.cloud.yandex.net"; + } + } + //todo: consider cluster name clashes AddClustersFromConfig(gatewaysConfig, clusters); AddSystemClusters(gatewaysConfig, clusters, Params.AuthToken); AddClustersFromConnections(YqConnections, Params.CommonConfig.GetUseBearerForYdb(), Params.CommonConfig.GetObjectStorageEndpoint(), + monitoringEndpoint, Params.AuthToken, Params.AccountIdSignatures, // out params: diff --git a/ydb/core/yq/libs/config/protos/common.proto b/ydb/core/yq/libs/config/protos/common.proto index 6e3a3d4441b..b839c6a62d6 100644 --- a/ydb/core/yq/libs/config/protos/common.proto +++ b/ydb/core/yq/libs/config/protos/common.proto @@ -23,4 +23,5 @@ message TCommonConfig { uint64 MaxTasksPerOperation = 8; string QueryArtifactsCompressionMethod = 9; uint64 QueryArtifactsCompressionMinSize = 10; + string MonitoringEndpoint = 11; } diff --git a/ydb/core/yq/libs/test_connection/test_connection.cpp b/ydb/core/yq/libs/test_connection/test_connection.cpp index a024e66dbc6..b770a697b20 100644 --- a/ydb/core/yq/libs/test_connection/test_connection.cpp +++ b/ydb/core/yq/libs/test_connection/test_connection.cpp @@ -192,10 +192,20 @@ public: break; } case YandexQuery::ConnectionSetting::kMonitoring: { + TString monitoringEndpoint = CommonConfig.GetMonitoringEndpoint(); + // TODO: get monitoring endpoint from config only after YQ-148 + if (monitoringEndpoint.Empty()) { + if (CommonConfig.GetObjectStorageEndpoint().Contains("preprod")) { + monitoringEndpoint = "monitoring.api.cloud-preprod.yandex.net"; + } else { + monitoringEndpoint = "monitoring.api.cloud.yandex.net"; + } + } + Register(CreateTestMonitoringConnectionActor( *request.mutable_setting()->mutable_monitoring(), - ev->Sender, ev->Cookie, CredentialsFactory, - scope, user, token, + ev->Sender, ev->Cookie, monitoringEndpoint, + CredentialsFactory, scope, user, token, Signer, requestCounters)); break; } diff --git a/ydb/core/yq/libs/test_connection/test_connection.h b/ydb/core/yq/libs/test_connection/test_connection.h index fd31c9333e4..c11e9ccdd49 100644 --- a/ydb/core/yq/libs/test_connection/test_connection.h +++ b/ydb/core/yq/libs/test_connection/test_connection.h @@ -85,6 +85,7 @@ NActors::IActor* CreateTestMonitoringConnectionActor( const YandexQuery::Monitoring& monitoring, const NActors::TActorId& sender, ui64 cookie, + const TString& endpoint, const NYql::ISecuredServiceAccountCredentialsFactory::TPtr& credentialsFactory, const TString& scope, const TString& user, diff --git a/ydb/core/yq/libs/test_connection/test_monitoring.cpp b/ydb/core/yq/libs/test_connection/test_monitoring.cpp index 0da16420505..052a8344bad 100644 --- a/ydb/core/yq/libs/test_connection/test_monitoring.cpp +++ b/ydb/core/yq/libs/test_connection/test_monitoring.cpp @@ -24,6 +24,7 @@ class TTestMonitoringConnectionActor : public NActors::TActorBootstrapped<TTestM TActorId Sender; TActorId HttpProxyId; ui64 Cookie; + TString Endpoint; TString Scope; TString User; TString Token; @@ -38,6 +39,7 @@ public: const YandexQuery::Monitoring& monitoring, const TActorId& sender, ui64 cookie, + const TString& endpoint, const NYql::ISecuredServiceAccountCredentialsFactory::TPtr& credentialsFactory, const TString& scope, const TString& user, @@ -46,13 +48,14 @@ public: const TTestConnectionRequestCountersPtr& counters) : Sender(sender) , Cookie(cookie) + , Endpoint(endpoint) , Scope(scope) , User(user) , Token(token) , Counters(counters) , CredentialsFactory(credentialsFactory) , Signer(signer) - , ClusterConfig(NYq::CreateSolomonClusterConfig({}, token, signer ? signer->SignAccountId(monitoring.auth().service_account().id()) : "", monitoring)) + , ClusterConfig(NYq::CreateSolomonClusterConfig({}, token, endpoint, signer ? signer->SignAccountId(monitoring.auth().service_account().id()) : "", monitoring)) { Counters->InFly->Inc(); } @@ -150,6 +153,7 @@ NActors::IActor* CreateTestMonitoringConnectionActor( const YandexQuery::Monitoring& monitoring, const TActorId& sender, ui64 cookie, + const TString& endpoint, const NYql::ISecuredServiceAccountCredentialsFactory::TPtr& credentialsFactory, const TString& scope, const TString& user, @@ -158,7 +162,7 @@ NActors::IActor* CreateTestMonitoringConnectionActor( const TTestConnectionRequestCountersPtr& counters) { return new TTestMonitoringConnectionActor( monitoring, sender, - cookie, credentialsFactory, + cookie, endpoint, credentialsFactory, scope, user, token, signer, counters); } |