Skip to content

Commit af4c75a

Browse files
authored
Merge 591c89d into b3c26e4
2 parents b3c26e4 + 591c89d commit af4c75a

File tree

3 files changed

+40
-2
lines changed

3 files changed

+40
-2
lines changed

ydb/tests/tools/kqprun/kqprun.cpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,19 @@ void RunScript(const TExecutionOptions& executionOptions, const NKqpRun::TRunner
9494
}
9595
}
9696

97+
if (runnerOptions.YdbSettings.MonitoringEnabled) {
98+
Cout << colors.Yellow() << TInstant::Now().ToIsoStringLocal() << " Started reading commands" << colors.Default() << Endl;
99+
while (true) {
100+
TString command;
101+
Cin >> command;
102+
103+
if (command == "exit") {
104+
break;
105+
}
106+
Cerr << colors.Red() << TInstant::Now().ToIsoStringLocal() << " Invalid command '" << command << "'" << colors.Default() << Endl;
107+
}
108+
}
109+
97110
Cout << colors.Yellow() << TInstant::Now().ToIsoStringLocal() << " Finalization of kqp runner..." << colors.Default() << Endl;
98111
}
99112

@@ -269,6 +282,11 @@ void RunMain(int argc, const char* argv[]) {
269282
.RequiredArgument("INT")
270283
.DefaultValue(runnerOptions.YdbSettings.NodeCount)
271284
.StoreResult(&runnerOptions.YdbSettings.NodeCount);
285+
options.AddLongOption('M', "monitoring", "Enable embedded UI access and run kqprun as deamon")
286+
.Optional()
287+
.NoArgument()
288+
.DefaultValue(runnerOptions.YdbSettings.MonitoringEnabled)
289+
.SetFlag(&runnerOptions.YdbSettings.MonitoringEnabled);
272290

273291
options.AddLongOption('u', "udf", "Load shared library with UDF by given path")
274292
.Optional()
@@ -292,7 +310,7 @@ void RunMain(int argc, const char* argv[]) {
292310

293311
// Execution options
294312

295-
if (!schemeQueryFile && scriptQueryFiles.empty()) {
313+
if (!schemeQueryFile && scriptQueryFiles.empty() && !runnerOptions.YdbSettings.MonitoringEnabled) {
296314
ythrow yexception() << "Nothing to execute";
297315
}
298316

ydb/tests/tools/kqprun/src/common.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ struct TYdbSetupSettings {
1818
TString DomainName = "Root";
1919
TDuration InitializationTimeout = TDuration::Seconds(10);
2020

21+
bool MonitoringEnabled = false;
2122
bool TraceOptEnabled = false;
2223
TMaybe<TString> LogOutputFile;
2324

ydb/tests/tools/kqprun/src/ydb_setup.cpp

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#include "ydb_setup.h"
22

3+
#include <library/cpp/colorizer/colors.h>
4+
35
#include <ydb/core/kqp/common/kqp_script_executions.h>
46
#include <ydb/core/kqp/proxy_service/kqp_script_executions.h>
57

@@ -112,12 +114,19 @@ class TYdbSetup::TImpl {
112114
NKikimr::Tests::TServerSettings GetServerSettings() {
113115
ui32 msgBusPort = PortManager_.GetPort();
114116

115-
NKikimr::Tests::TServerSettings serverSettings(msgBusPort);
117+
NKikimr::Tests::TServerSettings serverSettings(msgBusPort, Settings_.AppConfig.GetAuthConfig(), Settings_.AppConfig.GetPQConfig());
116118
serverSettings.SetNodeCount(Settings_.NodeCount);
117119

118120
serverSettings.SetDomainName(Settings_.DomainName);
119121
serverSettings.SetAppConfig(Settings_.AppConfig);
120122
serverSettings.SetFeatureFlags(Settings_.AppConfig.GetFeatureFlags());
123+
serverSettings.SetControls(Settings_.AppConfig.GetImmediateControlsConfig());
124+
serverSettings.SetCompactionConfig(Settings_.AppConfig.GetCompactionConfig());
125+
serverSettings.PQClusterDiscoveryConfig = Settings_.AppConfig.GetPQClusterDiscoveryConfig();
126+
serverSettings.NetClassifierConfig = Settings_.AppConfig.GetNetClassifierConfig();
127+
128+
const auto& kqpSettings = Settings_.AppConfig.GetKQPConfig().GetSettings();
129+
serverSettings.SetKqpSettings({kqpSettings.begin(), kqpSettings.end()});
121130

122131
serverSettings.SetCredentialsFactory(std::make_shared<TStaticSecuredCredentialsFactory>(Settings_.YqlToken));
123132
serverSettings.SetComputationFactory(Settings_.ComputationFactory);
@@ -127,6 +136,10 @@ class TYdbSetup::TImpl {
127136
SetLoggerSettings(serverSettings);
128137
SetFunctionRegistry(serverSettings);
129138

139+
if (Settings_.MonitoringEnabled) {
140+
serverSettings.InitKikimrRunConfig();
141+
}
142+
130143
return serverSettings;
131144
}
132145

@@ -177,13 +190,18 @@ class TYdbSetup::TImpl {
177190
public:
178191
explicit TImpl(const TYdbSetupSettings& settings)
179192
: Settings_(settings)
193+
, CoutColors_(NColorizer::AutoColors(Cout))
180194
{
181195
InitializeYqlLogger();
182196
InitializeServer();
183197

184198
if (Settings_.NodeCount > 1) {
185199
WaitResourcesPublishing();
186200
}
201+
202+
if (Settings_.MonitoringEnabled) {
203+
Cout << CoutColors_.Cyan() << "Monitoring port: " << CoutColors_.Default() << Server_->GetRuntime()->GetMonPort() << Endl;
204+
}
187205
}
188206

189207
NKikimr::NKqp::TEvKqp::TEvQueryResponse::TPtr SchemeQueryRequest(const TString& query, const TString& traceId) const {
@@ -302,6 +320,7 @@ class TYdbSetup::TImpl {
302320

303321
private:
304322
TYdbSetupSettings Settings_;
323+
NColorizer::TColors CoutColors_;
305324

306325
THolder<NKikimr::Tests::TServer> Server_;
307326
THolder<NKikimr::Tests::TClient> Client_;

0 commit comments

Comments
 (0)