Skip to content

Commit

Permalink
No retry for REST requests and per database sensors (ydb-platform#2768)
Browse files Browse the repository at this point in the history
  • Loading branch information
Hor911 authored Mar 14, 2024
1 parent 3d1ee2a commit 4f89be8
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -359,8 +359,9 @@ class TComputeDatabaseControlPlaneServiceActor : public NActors::TActorBootstrap
const auto& mapping = cmsConfig.GetDatabaseMapping();
auto globalLoadConfig = Config.GetYdb().GetLoadControlConfig();
for (const auto& config: mapping.GetCommon()) {
auto databaseCounters = Counters->GetSubgroup("database", config.GetControlPlaneConnection().GetDatabase());
const auto clientActor = Register(CreateCmsGrpcClientActor(CreateGrpcClientSettings(config), CredentialsProviderFactory(GetYdbCredentialSettings(config.GetControlPlaneConnection()))->CreateProvider()).release());
const auto cacheActor = Register(CreateComputeDatabasesCacheActor(clientActor, databasesCacheReloadPeriod, Counters).release());
const auto cacheActor = Register(CreateComputeDatabasesCacheActor(clientActor, databasesCacheReloadPeriod, databaseCounters).release());
TActorId databaseMonitoringActor;
const NConfig::TLoadControlConfig& loadConfig = config.GetLoadControlConfig().GetEnable()
? config.GetLoadControlConfig()
Expand All @@ -374,16 +375,17 @@ class TComputeDatabaseControlPlaneServiceActor : public NActors::TActorBootstrap
} else {
clientActor = Register(CreateMonitoringGrpcClientActor(CreateGrpcClientSettings(config), credentialsProvider).release());
}
databaseMonitoringActor = Register(CreateDatabaseMonitoringActor(clientActor, loadConfig, Counters).release());
databaseMonitoringActor = Register(CreateDatabaseMonitoringActor(clientActor, loadConfig, databaseCounters).release());
}
Clients->CommonDatabaseClients.push_back({clientActor, config, cacheActor, databaseMonitoringActor});
}

Y_ABORT_UNLESS(Clients->CommonDatabaseClients);

for (const auto& [scope, config]: mapping.GetScopeToComputeDatabase()) {
auto databaseCounters = Counters->GetSubgroup("database", config.GetControlPlaneConnection().GetDatabase());
const auto clientActor = Register(CreateCmsGrpcClientActor(CreateGrpcClientSettings(config), CredentialsProviderFactory(GetYdbCredentialSettings(config.GetControlPlaneConnection()))->CreateProvider()).release());
const auto cacheActor = Register(CreateComputeDatabasesCacheActor(clientActor, databasesCacheReloadPeriod, Counters).release());
const auto cacheActor = Register(CreateComputeDatabasesCacheActor(clientActor, databasesCacheReloadPeriod, databaseCounters).release());
TActorId databaseMonitoringActor;
const NConfig::TLoadControlConfig& loadConfig = config.GetLoadControlConfig().GetEnable()
? config.GetLoadControlConfig()
Expand All @@ -397,7 +399,7 @@ class TComputeDatabaseControlPlaneServiceActor : public NActors::TActorBootstrap
} else {
clientActor = Register(CreateMonitoringGrpcClientActor(CreateGrpcClientSettings(config), credentialsProvider).release());
}
databaseMonitoringActor = Register(CreateDatabaseMonitoringActor(clientActor, loadConfig, Counters).release());
databaseMonitoringActor = Register(CreateDatabaseMonitoringActor(clientActor, loadConfig, databaseCounters).release());
}
Clients->ScopeToDatabaseClient[scope] = {clientActor, config, cacheActor, databaseMonitoringActor};
}
Expand All @@ -406,16 +408,18 @@ class TComputeDatabaseControlPlaneServiceActor : public NActors::TActorBootstrap
void CreateControlPlaneClientActors(const NConfig::TYdbComputeControlPlane::TYdbcp& controlPlaneConfig, const TString& databasesCacheReloadPeriod) {
const auto& mapping = controlPlaneConfig.GetDatabaseMapping();
for (const auto& config: mapping.GetCommon()) {
auto databaseCounters = Counters->GetSubgroup("database", config.GetControlPlaneConnection().GetDatabase());
const auto clientActor = Register(CreateYdbcpGrpcClientActor(CreateGrpcClientSettings(config), CredentialsProviderFactory(GetYdbCredentialSettings(config.GetControlPlaneConnection()))->CreateProvider()).release());
const auto cacheActor = Register(CreateComputeDatabasesCacheActor(clientActor, databasesCacheReloadPeriod, Counters).release());
const auto cacheActor = Register(CreateComputeDatabasesCacheActor(clientActor, databasesCacheReloadPeriod, databaseCounters).release());
Clients->CommonDatabaseClients.push_back({clientActor, config, cacheActor, {}});
}

Y_ABORT_UNLESS(Clients->CommonDatabaseClients);

for (const auto& [scope, config]: mapping.GetScopeToComputeDatabase()) {
auto databaseCounters = Counters->GetSubgroup("database", config.GetControlPlaneConnection().GetDatabase());
const auto clientActor = Register(CreateYdbcpGrpcClientActor(CreateGrpcClientSettings(config), CredentialsProviderFactory(GetYdbCredentialSettings(config.GetControlPlaneConnection()))->CreateProvider()).release());
const auto cacheActor = Register(CreateComputeDatabasesCacheActor(clientActor, databasesCacheReloadPeriod, Counters).release());
const auto cacheActor = Register(CreateComputeDatabasesCacheActor(clientActor, databasesCacheReloadPeriod, databaseCounters).release());
Clients->ScopeToDatabaseClient[scope] = {clientActor, config, cacheActor, {}};
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,24 +26,6 @@ namespace NFq {

using namespace NActors;

namespace {

auto RetryPolicy = NYql::NDq::THttpSenderRetryPolicy::GetExponentialBackoffPolicy(
[](const NHttp::TEvHttpProxy::TEvHttpIncomingResponse* resp){
if (!resp || !resp->Response) {
// Connection wasn't established. Should retry.
return ERetryErrorClass::ShortRetry;
}

if (resp->Response->Status == "401") {
return ERetryErrorClass::NoRetry;
}

return ERetryErrorClass::ShortRetry;
});

}

class TMonitoringRestServiceActor : public NActors::TActor<TMonitoringRestServiceActor> {
public:
using TBase = NActors::TActor<TMonitoringRestServiceActor>;
Expand Down Expand Up @@ -76,7 +58,7 @@ class TMonitoringRestServiceActor : public NActors::TActor<TMonitoringRestServic
LOG_D(httpRequest->GetRawData());
httpRequest->Set("Authorization", CredentialsProvider->GetAuthInfo());

auto httpSenderId = Register(NYql::NDq::CreateHttpSenderActor(SelfId(), HttpProxyId, RetryPolicy));
auto httpSenderId = Register(NYql::NDq::CreateHttpSenderActor(SelfId(), HttpProxyId, NYql::NDq::THttpSenderRetryPolicy::GetNoRetryPolicy()));
Send(httpSenderId, new NHttp::TEvHttpProxy::TEvHttpOutgoingRequest(httpRequest), 0, Cookie);
Requests[Cookie++] = ev;
}
Expand Down

0 comments on commit 4f89be8

Please sign in to comment.