Skip to content

Commit 9a78993

Browse files
committed
Use an env variable for legacy services configuration
1 parent 45d33bc commit 9a78993

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
@@ -169,6 +169,7 @@ class CollectorConfig {
169169
unsigned int GetSinspThreadCacheSize() const { return sinsp_thread_cache_size_; }
170170
bool DisableProcessArguments() const { return disable_process_arguments_; }
171171
bool UseStdout() const { return use_stdout_; }
172+
bool UseLegacyServices() const { return use_legacy_services_; }
172173

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

@@ -239,6 +240,8 @@ class CollectorConfig {
239240

240241
bool use_stdout_ = false;
241242

243+
bool use_legacy_services_ = false;
244+
242245
// One ring buffer will be initialized for this many CPUs
243246
unsigned int sinsp_cpu_per_buffer_ = 0;
244247
// 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
@@ -8,23 +8,31 @@
88
namespace collector {
99

1010
CollectorOutput::CollectorOutput(const CollectorConfig& config) {
11+
auto use_legacy_services = config.UseLegacyServices();
12+
1113
if (config.grpc_channel != nullptr) {
1214
channel_ = config.grpc_channel;
1315

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

2025
if (config.UseStdout()) {
21-
auto sensor_client = std::make_unique<SensorClientStdout>();
22-
auto signal_client = std::make_unique<StdoutSignalServiceClient>();
23-
sensor_clients_.emplace_back(std::move(sensor_client));
24-
signal_clients_.emplace_back(std::move(signal_client));
26+
if (use_legacy_services) {
27+
auto signal_client = std::make_unique<StdoutSignalServiceClient>();
28+
signal_clients_.emplace_back(std::move(signal_client));
29+
} else {
30+
auto sensor_client = std::make_unique<SensorClientStdout>();
31+
sensor_clients_.emplace_back(std::move(sensor_client));
32+
}
2533
}
2634

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

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

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

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
@@ -107,8 +107,6 @@ void CollectorService::RunForever() {
107107
// Start monitoring services.
108108
config_loader_.Start();
109109

110-
output_.Register();
111-
112110
CLOG(INFO) << "Network scrape interval set to " << config_.ScrapeInterval() << " seconds";
113111

114112
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)