Skip to content

Commit 2f43a84

Browse files
authored
ROX-25719: Enable ExternalIPs based on runtime-config (#1888)
1 parent 8e666e9 commit 2f43a84

7 files changed

+16
-12
lines changed

collector/lib/CollectorConfig.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ class CollectorConfig {
6464
static constexpr bool kEnableProcessesListeningOnPorts = true;
6565

6666
CollectorConfig();
67+
CollectorConfig(const CollectorConfig&) = delete;
68+
CollectorConfig(CollectorConfig&&) = delete;
69+
6770
void InitCollectorConfig(CollectorArgs* collectorArgs);
6871

6972
std::string asString() const;
@@ -161,7 +164,7 @@ class CollectorConfig {
161164
bool enable_processes_listening_on_ports_;
162165
bool import_users_;
163166
bool collect_connection_status_;
164-
bool enable_external_ips_;
167+
bool enable_external_ips_ = false;
165168
bool enable_connection_stats_;
166169
bool enable_detailed_metrics_;
167170
bool enable_runtime_config_;

collector/lib/CollectorConfigInspector.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ namespace collector {
99

1010
const std::string CollectorConfigInspector::kBaseRoute = "/state/config";
1111

12-
CollectorConfigInspector::CollectorConfigInspector(const std::shared_ptr<CollectorConfig> config) : config_(config) {
12+
CollectorConfigInspector::CollectorConfigInspector(const CollectorConfig& config) : config_(config) {
1313
}
1414

1515
std::string CollectorConfigInspector::configToJson(bool& isError) {
16-
const auto& runtime_config = config_->GetRuntimeConfig();
16+
const auto& runtime_config = config_.GetRuntimeConfig();
1717

1818
if (!runtime_config.has_value()) {
1919
return "{}";

collector/lib/CollectorConfigInspector.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
#ifndef COLLECTOR_CONFIG_INSPECTOR_H
22
#define COLLECTOR_CONFIG_INSPECTOR_H
33

4-
#include <memory>
5-
64
#include <json/writer.h>
75

86
#include "CollectorConfig.h"
@@ -14,13 +12,13 @@ class CollectorConfigInspector : public IntrospectionEndpoint {
1412
public:
1513
static const std::string kBaseRoute;
1614

17-
CollectorConfigInspector(const std::shared_ptr<CollectorConfig> config);
15+
CollectorConfigInspector(const CollectorConfig& config);
1816

1917
// implementation of CivetHandler
2018
bool handleGet(CivetServer* server, struct mg_connection* conn) override;
2119

2220
private:
23-
const std::shared_ptr<CollectorConfig> config_;
21+
const CollectorConfig& config_;
2422
std::string configToJson(bool& isError);
2523
};
2624

collector/lib/CollectorService.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ extern unsigned char g_bpf_drop_syscalls[]; // defined in libscap
2929

3030
namespace collector {
3131

32-
CollectorService::CollectorService(const CollectorConfig& config, std::atomic<ControlValue>* control,
32+
CollectorService::CollectorService(CollectorConfig& config, std::atomic<ControlValue>* control,
3333
const std::atomic<int>* signum)
3434
: config_(config), control_(control), signum_(*signum) {
3535
CLOG(INFO) << "Config: " << config;
@@ -91,7 +91,6 @@ void CollectorService::RunForever() {
9191
conn_tracker->UpdateIgnoredL4ProtoPortPairs(std::move(ignored_l4proto_port_pairs));
9292
conn_tracker->UpdateIgnoredNetworks(config_.IgnoredNetworks());
9393
conn_tracker->UpdateNonAggregatedNetworks(config_.NonAggregatedNetworks());
94-
conn_tracker->EnableExternalIPs(config_.EnableExternalIPs());
9594

9695
auto network_connection_info_service_comm = std::make_shared<NetworkConnectionInfoServiceComm>(config_.Hostname(), config_.grpc_channel);
9796

@@ -113,7 +112,7 @@ void CollectorService::RunForever() {
113112
server.addHandler(container_info_inspector->kBaseRoute, container_info_inspector.get());
114113
network_status_inspector = std::make_unique<NetworkStatusInspector>(conn_tracker);
115114
server.addHandler(network_status_inspector->kBaseRoute, network_status_inspector.get());
116-
collector_config_inspector = std::make_unique<CollectorConfigInspector>(std::make_shared<CollectorConfig>(config_));
115+
collector_config_inspector = std::make_unique<CollectorConfigInspector>(config_);
117116
server.addHandler(collector_config_inspector->kBaseRoute, collector_config_inspector.get());
118117
}
119118

collector/lib/CollectorService.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace collector {
99

1010
class CollectorService {
1111
public:
12-
CollectorService(const CollectorConfig& config, std::atomic<ControlValue>* control, const std::atomic<int>* signum);
12+
CollectorService(CollectorConfig& config, std::atomic<ControlValue>* control, const std::atomic<int>* signum);
1313

1414
void RunForever();
1515

@@ -18,7 +18,7 @@ class CollectorService {
1818
private:
1919
bool WaitForGRPCServer();
2020

21-
CollectorConfig config_;
21+
CollectorConfig& config_;
2222

2323
std::atomic<ControlValue>* control_;
2424
const std::atomic<int>& signum_;

collector/lib/NetworkStatusNotifier.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,8 @@ void NetworkStatusNotifier::RunSingle(IDuplexClientWriter<sensor::NetworkConnect
239239
ConnMap new_conn_state, delta_conn;
240240
AdvertisedEndpointMap new_cep_state;
241241
WITH_TIMER(CollectorStats::net_fetch_state) {
242+
conn_tracker_->EnableExternalIPs(config_.EnableExternalIPs());
243+
242244
new_conn_state = conn_tracker_->FetchConnState(true, true);
243245
if (enable_afterglow_) {
244246
ConnectionTracker::ComputeDeltaAfterglow(new_conn_state, old_conn_state, delta_conn, time_micros, time_at_last_scrape, afterglow_period_micros_);

collector/lib/NetworkStatusNotifier.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class NetworkStatusNotifier : protected ProtoAllocator<sensor::NetworkConnection
2828
conn_tracker_(std::move(conn_tracker)),
2929
afterglow_period_micros_(config.AfterglowPeriod()),
3030
enable_afterglow_(config.EnableAfterglow()),
31+
config_(config),
3132
comm_(comm),
3233
connections_total_reporter_(connections_total_reporter),
3334
connections_rate_reporter_(connections_rate_reporter) {
@@ -65,6 +66,7 @@ class NetworkStatusNotifier : protected ProtoAllocator<sensor::NetworkConnection
6566

6667
int64_t afterglow_period_micros_;
6768
bool enable_afterglow_;
69+
const CollectorConfig& config_;
6870
std::shared_ptr<INetworkConnectionInfoServiceComm> comm_;
6971

7072
std::shared_ptr<CollectorConnectionStats<unsigned int>> connections_total_reporter_;

0 commit comments

Comments
 (0)