Skip to content

Commit 524e027

Browse files
committed
Use an env variable for legacy services configuration
1 parent c9c4fbe commit 524e027

File tree

6 files changed

+23
-34
lines changed

6 files changed

+23
-34
lines changed

collector/lib/CollectorConfig.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ PathEnvVar tls_client_key_path("ROX_COLLECTOR_TLS_CLIENT_KEY");
8484
BoolEnvVar disable_process_arguments("ROX_COLLECTOR_NO_PROCESS_ARGUMENTS", false);
8585

8686
BoolEnvVar use_stdout_output("ROX_COLLECTOR_USE_STDOUT", false);
87+
88+
BoolEnvVar use_legacy_services("ROX_COLLECTOR_USE_LEGACY_SERVICES", false);
8789
} // namespace
8890

8991
constexpr bool CollectorConfig::kTurnOffScrape;
@@ -116,6 +118,7 @@ void CollectorConfig::InitCollectorConfig(CollectorArgs* args) {
116118
track_send_recv_ = track_send_recv.value();
117119
disable_process_arguments_ = disable_process_arguments.value();
118120
use_stdout_ = use_stdout_output.value();
121+
use_legacy_services_ = use_legacy_services.value();
119122

120123
for (const auto& syscall : kSyscalls) {
121124
syscalls_.emplace_back(syscall);

collector/lib/CollectorConfig.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ class CollectorConfig {
167167
unsigned int GetSinspThreadCacheSize() const { return sinsp_thread_cache_size_; }
168168
bool DisableProcessArguments() const { return disable_process_arguments_; }
169169
bool UseStdout() const { return use_stdout_; }
170+
bool UseLegacyServices() const { return use_legacy_services_; }
170171

171172
static std::pair<option::ArgStatus, std::string> CheckConfiguration(const char* config, Json::Value* root);
172173

@@ -236,6 +237,8 @@ class CollectorConfig {
236237

237238
bool use_stdout_ = false;
238239

240+
bool use_legacy_services_ = false;
241+
239242
// One ring buffer will be initialized for this many CPUs
240243
unsigned int sinsp_cpu_per_buffer_ = 0;
241244
// Size of one ring buffer, in bytes.

collector/lib/CollectorOutput.cpp

Lines changed: 17 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,31 @@
99
namespace collector {
1010

1111
CollectorOutput::CollectorOutput(const CollectorConfig& config) {
12+
use_sensor_client_ = !config.UseLegacyServices();
13+
1214
if (config.grpc_channel != nullptr) {
1315
channel_ = config.grpc_channel;
1416

15-
auto sensor_client = std::make_unique<SensorClient>(channel_);
16-
auto signal_client = std::make_unique<SignalServiceClient>(channel_);
17-
sensor_clients_.emplace_back(std::move(sensor_client));
18-
signal_clients_.emplace_back(std::move(signal_client));
17+
if (use_sensor_client_) {
18+
auto sensor_client = std::make_unique<SensorClient>(channel_);
19+
sensor_clients_.emplace_back(std::move(sensor_client));
20+
} else {
21+
auto signal_client = std::make_unique<SignalServiceClient>(channel_);
22+
signal_clients_.emplace_back(std::move(signal_client));
23+
}
1924
}
2025

2126
if (config.UseStdout()) {
22-
auto sensor_client = std::make_unique<SensorClientStdout>();
23-
auto signal_client = std::make_unique<StdoutSignalServiceClient>();
24-
sensor_clients_.emplace_back(std::move(sensor_client));
25-
signal_clients_.emplace_back(std::move(signal_client));
27+
if (use_sensor_client_) {
28+
auto sensor_client = std::make_unique<SensorClientStdout>();
29+
sensor_clients_.emplace_back(std::move(sensor_client));
30+
} else {
31+
auto signal_client = std::make_unique<StdoutSignalServiceClient>();
32+
signal_clients_.emplace_back(std::move(signal_client));
33+
}
2634
}
2735

28-
if (sensor_clients_.empty() || signal_clients_.empty()) {
36+
if (sensor_clients_.empty() && signal_clients_.empty()) {
2937
CLOG(FATAL) << "No available output configured";
3038
}
3139

@@ -94,21 +102,6 @@ SignalHandler::Result CollectorOutput::SendMsg(const MessageType& msg) {
94102
return std::visit(visitor, msg);
95103
}
96104

97-
void CollectorOutput::Register() {
98-
sensor::MsgFromCollector msg;
99-
msg.clear_info();
100-
msg.clear_process_signal();
101-
msg.mutable_register_()->set_hostname(HostInfo::GetHostname());
102-
103-
for (const auto& client : sensor_clients_) {
104-
auto res = client->SendMsg(msg);
105-
if (res != SignalHandler::PROCESSED) {
106-
use_sensor_client_ = false;
107-
break;
108-
}
109-
}
110-
}
111-
112105
void CollectorOutput::EstablishGrpcStream() {
113106
while (EstablishGrpcStreamSingle()) {
114107
}

collector/lib/CollectorOutput.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ class CollectorOutput {
3939
}
4040

4141
SignalHandler::Result SendMsg(const MessageType& msg);
42-
void Register();
4342

4443
bool UseSensorClient() const { return use_sensor_client_; }
4544

collector/lib/CollectorService.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,6 @@ void CollectorService::RunForever() {
9696
// Start monitoring services.
9797
config_loader_.Start();
9898

99-
output_.Register();
100-
10199
CLOG(INFO) << "Network scrape interval set to " << config_.ScrapeInterval() << " seconds";
102100

103101
if (net_status_notifier_) {

collector/test/CollectorOutputTest.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,6 @@ class CollectorOutputTest : public testing::Test {
3131
std::unique_ptr<MockSignalClient> signal_client;
3232
};
3333

34-
TEST_F(CollectorOutputTest, Register) {
35-
EXPECT_CALL(*sensor_client, SendMsg).Times(1).WillOnce(testing::Return(SignalHandler::PROCESSED));
36-
37-
CollectorOutput output{std::move(sensor_client), std::move(signal_client)};
38-
output.Register();
39-
}
40-
4134
TEST_F(CollectorOutputTest, SensorClient) {
4235
sensor::MsgFromCollector msg;
4336

0 commit comments

Comments
 (0)