Skip to content

Commit ec02547

Browse files
authored
add rate limiting settings to http (#10164)
1 parent 13d88b2 commit ec02547

File tree

7 files changed

+8
-0
lines changed

7 files changed

+8
-0
lines changed

ydb/core/config/init/init_impl.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@ struct TCommonAppOptions {
287287
ui32 MonitoringPort = 0;
288288
TString MonitoringAddress;
289289
ui32 MonitoringThreads = 10;
290+
ui32 MonitoringMaxRequestsPerSecond = 0;
290291
TString MonitoringCertificateFile;
291292
TString RestartsCountFile = "";
292293
size_t CompileInflightLimit = 100000; // MiniKQLCompileService

ydb/core/driver_lib/run/config_parser.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ TRunCommandConfigParser::TRunOpts::TRunOpts()
3535
, MonitoringPort(0)
3636
, MonitoringAddress()
3737
, MonitoringThreads(10)
38+
, MonitoringMaxRequestsPerSecond(0)
3839
, RestartsCountFile("")
3940
, StartTracingBusProxy(true)
4041
, CompileInflightLimit(100000)
@@ -365,6 +366,7 @@ void TRunCommandConfigParser::ApplyParsedOptions() {
365366
Config.AppConfig.MutableMonitoringConfig()->SetMonitoringPort(RunOpts.MonitoringPort);
366367
Config.AppConfig.MutableMonitoringConfig()->SetMonitoringAddress(RunOpts.MonitoringAddress);
367368
Config.AppConfig.MutableMonitoringConfig()->SetMonitoringThreads(RunOpts.MonitoringThreads);
369+
Config.AppConfig.MutableMonitoringConfig()->SetMaxRequestsPerSecond(RunOpts.MonitoringMaxRequestsPerSecond);
368370
Config.AppConfig.MutableMonitoringConfig()->SetMonitoringCertificate(TUnbufferedFileInput(RunOpts.MonitoringCertificateFile).ReadAll());
369371
Config.AppConfig.MutableRestartsCountConfig()->SetRestartsCountFile(RunOpts.RestartsCountFile);
370372
}

ydb/core/driver_lib/run/config_parser.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ class TRunCommandConfigParser {
5050
TString MonitoringAddress;
5151
TString MonitoringCertificateFile;
5252
ui32 MonitoringThreads;
53+
ui32 MonitoringMaxRequestsPerSecond;
5354
TString RestartsCountFile;
5455
bool StartTracingBusProxy;
5556
TString TracePath;

ydb/core/driver_lib/run/run.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,7 @@ void TKikimrRunner::InitializeMonitoring(const TKikimrRunConfig& runConfig, bool
439439
monConfig.Threads = appConfig.GetMonitoringConfig().GetMonitoringThreads();
440440
monConfig.Address = appConfig.GetMonitoringConfig().GetMonitoringAddress();
441441
monConfig.Certificate = appConfig.GetMonitoringConfig().GetMonitoringCertificate();
442+
monConfig.MaxRequestsPerSecond = appConfig.GetMonitoringConfig().GetMaxRequestsPerSecond();
442443
if (appConfig.GetMonitoringConfig().HasMonitoringCertificateFile()) {
443444
monConfig.Certificate = TUnbufferedFileInput(appConfig.GetMonitoringConfig().GetMonitoringCertificateFile()).ReadAll();
444445
}

ydb/core/mon/async_http_mon.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -826,6 +826,7 @@ void TAsyncHttpMon::Start(TActorSystem* actorSystem) {
826826
};
827827
addPort->SslCertificatePem = Config.Certificate;
828828
addPort->Secure = !Config.Certificate.empty();
829+
addPort->MaxRequestsPerSecond = Config.MaxRequestsPerSecond;
829830
ActorSystem->Send(HttpProxyActorId, addPort.release());
830831
ActorSystem->Send(HttpProxyActorId, new NHttp::TEvHttpProxy::TEvRegisterHandler("/", HttpMonServiceActorId));
831832
ActorSystem->Send(HttpProxyActorId, new NHttp::TEvHttpProxy::TEvRegisterHandler("/node", NodeProxyServiceActorId));

ydb/core/mon/mon.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ class TMon {
4141
TVector<TString> AllowedSIDs;
4242
TString RedirectMainPageTo;
4343
TString Certificate;
44+
ui32 MaxRequestsPerSecond = 0;
4445
};
4546

4647
virtual ~TMon() = default;

ydb/core/protos/config.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -535,6 +535,7 @@ message TMonitoringConfig {
535535
optional string MonitoringCertificate = 14;
536536
optional string MonitoringCertificateFile = 15;
537537
optional string MemAllocDumpPathPrefix = 16;
538+
optional uint32 MaxRequestsPerSecond = 17 [default = 0];
538539
}
539540

540541
message TRestartsCountConfig {

0 commit comments

Comments
 (0)