Skip to content

Commit 842c664

Browse files
committed
Propagate config
Pass CollectorConfig to the ProcessSignalHandler and ProcessSignalFormatter. It's needed for the future work, involving conditional logic in the process handler.
1 parent 13bd36d commit 842c664

File tree

5 files changed

+37
-17
lines changed

5 files changed

+37
-17
lines changed

collector/lib/ProcessSignalFormatter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ std::string extract_proc_args(sinsp_threadinfo* tinfo) {
4848

4949
} // namespace
5050

51-
ProcessSignalFormatter::ProcessSignalFormatter(sinsp* inspector) : event_names_(EventNames::GetInstance()), event_extractor_(std::make_unique<system_inspector::EventExtractor>()), container_metadata_(inspector) {
51+
ProcessSignalFormatter::ProcessSignalFormatter(sinsp* inspector, const CollectorConfig& config) : event_names_(EventNames::GetInstance()), event_extractor_(std::make_unique<system_inspector::EventExtractor>()), container_metadata_(inspector), config_(config) {
5252
event_extractor_->Init(inspector);
5353
}
5454

collector/lib/ProcessSignalFormatter.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "internalapi/sensor/signal_iservice.pb.h"
88
#include "storage/process_indicator.pb.h"
99

10+
#include "CollectorConfig.h"
1011
#include "CollectorStats.h"
1112
#include "ContainerMetadata.h"
1213
#include "EventNames.h"
@@ -25,7 +26,7 @@ namespace collector {
2526

2627
class ProcessSignalFormatter : public ProtoSignalFormatter<sensor::SignalStreamMessage> {
2728
public:
28-
ProcessSignalFormatter(sinsp* inspector);
29+
ProcessSignalFormatter(sinsp* inspector, const CollectorConfig& config);
2930
~ProcessSignalFormatter();
3031

3132
using Signal = v1::Signal;
@@ -52,6 +53,8 @@ class ProcessSignalFormatter : public ProtoSignalFormatter<sensor::SignalStreamM
5253
const EventNames& event_names_;
5354
std::unique_ptr<system_inspector::EventExtractor> event_extractor_;
5455
ContainerMetadata container_metadata_;
56+
57+
CollectorConfig config_;
5558
};
5659

5760
} // namespace collector

collector/lib/ProcessSignalHandler.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
#include <grpcpp/channel.h>
77

8+
#include "CollectorConfig.h"
89
#include "ProcessSignalFormatter.h"
910
#include "RateLimit.h"
1011
#include "SignalHandler.h"
@@ -19,8 +20,9 @@ namespace collector {
1920

2021
class ProcessSignalHandler : public SignalHandler {
2122
public:
22-
ProcessSignalHandler(sinsp* inspector, ISignalServiceClient* client, system_inspector::Stats* stats)
23-
: client_(client), formatter_(inspector), stats_(stats) {}
23+
ProcessSignalHandler(sinsp* inspector, ISignalServiceClient* client, system_inspector::Stats* stats,
24+
const CollectorConfig& config)
25+
: client_(client), formatter_(inspector, config), stats_(stats), config_(config) {}
2426

2527
bool Start() override;
2628
bool Stop() override;
@@ -34,6 +36,8 @@ class ProcessSignalHandler : public SignalHandler {
3436
ProcessSignalFormatter formatter_;
3537
system_inspector::Stats* stats_;
3638
RateLimitCache rate_limiter_;
39+
40+
CollectorConfig config_;
3741
};
3842

3943
} // namespace collector

collector/lib/system-inspector/Service.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ void Service::Init(const CollectorConfig& config, std::shared_ptr<ConnectionTrac
6262
}
6363
AddSignalHandler(MakeUnique<ProcessSignalHandler>(inspector_.get(),
6464
signal_client_.get(),
65-
&userspace_stats_));
65+
&userspace_stats_,
66+
config));
6667

6768
if (signal_handlers_.size() == 2) {
6869
// self-check handlers do not count towards this check, because they

collector/test/ProcessSignalFormatterTest.cpp

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ namespace {
1818
TEST(ProcessSignalFormatterTest, NoProcessTest) {
1919
sinsp* inspector = NULL;
2020
CollectorStats& collector_stats = CollectorStats::GetOrCreate();
21+
CollectorConfig config;
2122

22-
ProcessSignalFormatter processSignalFormatter(inspector);
23+
ProcessSignalFormatter processSignalFormatter(inspector, config);
2324

2425
sinsp_threadinfo* tinfo = NULL;
2526
std::vector<LineageInfo> lineage;
@@ -42,8 +43,9 @@ TEST(ProcessSignalFormatterTest, NoProcessTest) {
4243
TEST(ProcessSignalFormatterTest, ProcessWithoutParentTest) {
4344
std::unique_ptr<sinsp> inspector(new sinsp());
4445
CollectorStats& collector_stats = CollectorStats::GetOrCreate();
46+
CollectorConfig config;
4547

46-
ProcessSignalFormatter processSignalFormatter(inspector.get());
48+
ProcessSignalFormatter processSignalFormatter(inspector.get(), config);
4749

4850
auto tinfo = inspector->build_threadinfo();
4951
tinfo->m_pid = 0;
@@ -76,8 +78,9 @@ TEST(ProcessSignalFormatterTest, ProcessWithoutParentTest) {
7678
TEST(ProcessSignalFormatterTest, ProcessWithParentTest) {
7779
std::unique_ptr<sinsp> inspector(new sinsp());
7880
CollectorStats& collector_stats = CollectorStats::GetOrCreate();
81+
CollectorConfig config;
7982

80-
ProcessSignalFormatter processSignalFormatter(inspector.get());
83+
ProcessSignalFormatter processSignalFormatter(inspector.get(), config);
8184

8285
auto tinfo = inspector->build_threadinfo();
8386
tinfo->m_pid = 3;
@@ -120,8 +123,9 @@ TEST(ProcessSignalFormatterTest, ProcessWithParentTest) {
120123
TEST(ProcessSignalFormatterTest, ProcessWithParentWithPid0Test) {
121124
std::unique_ptr<sinsp> inspector(new sinsp());
122125
CollectorStats& collector_stats = CollectorStats::GetOrCreate();
126+
CollectorConfig config;
123127

124-
ProcessSignalFormatter processSignalFormatter(inspector.get());
128+
ProcessSignalFormatter processSignalFormatter(inspector.get(), config);
125129

126130
auto tinfo = inspector->build_threadinfo();
127131
tinfo->m_pid = 0;
@@ -159,8 +163,9 @@ TEST(ProcessSignalFormatterTest, ProcessWithParentWithPid0Test) {
159163
TEST(ProcessSignalFormatterTest, ProcessWithParentWithSameNameTest) {
160164
std::unique_ptr<sinsp> inspector(new sinsp());
161165
CollectorStats& collector_stats = CollectorStats::GetOrCreate();
166+
CollectorConfig config;
162167

163-
ProcessSignalFormatter processSignalFormatter(inspector.get());
168+
ProcessSignalFormatter processSignalFormatter(inspector.get(), config);
164169

165170
auto tinfo = inspector->build_threadinfo();
166171
tinfo->m_pid = 3;
@@ -203,8 +208,9 @@ TEST(ProcessSignalFormatterTest, ProcessWithParentWithSameNameTest) {
203208
TEST(ProcessSignalFormatterTest, ProcessWithTwoParentsTest) {
204209
std::unique_ptr<sinsp> inspector(new sinsp());
205210
CollectorStats& collector_stats = CollectorStats::GetOrCreate();
211+
CollectorConfig config;
206212

207-
ProcessSignalFormatter processSignalFormatter(inspector.get());
213+
ProcessSignalFormatter processSignalFormatter(inspector.get(), config);
208214

209215
auto tinfo = inspector->build_threadinfo();
210216
tinfo->m_pid = 3;
@@ -261,8 +267,9 @@ TEST(ProcessSignalFormatterTest, ProcessWithTwoParentsTest) {
261267
TEST(ProcessSignalFormatterTest, ProcessWithTwoParentsWithTheSameNameTest) {
262268
std::unique_ptr<sinsp> inspector(new sinsp());
263269
CollectorStats& collector_stats = CollectorStats::GetOrCreate();
270+
CollectorConfig config;
264271

265-
ProcessSignalFormatter processSignalFormatter(inspector.get());
272+
ProcessSignalFormatter processSignalFormatter(inspector.get(), config);
266273

267274
auto tinfo = inspector->build_threadinfo();
268275
tinfo->m_pid = 3;
@@ -316,8 +323,9 @@ TEST(ProcessSignalFormatterTest, ProcessWithTwoParentsWithTheSameNameTest) {
316323
TEST(ProcessSignalFormatterTest, ProcessCollapseParentChildWithSameNameTest) {
317324
std::unique_ptr<sinsp> inspector(new sinsp());
318325
CollectorStats& collector_stats = CollectorStats::GetOrCreate();
326+
CollectorConfig config;
319327

320-
ProcessSignalFormatter processSignalFormatter(inspector.get());
328+
ProcessSignalFormatter processSignalFormatter(inspector.get(), config);
321329

322330
auto tinfo = inspector->build_threadinfo();
323331
tinfo->m_pid = 3;
@@ -380,8 +388,9 @@ TEST(ProcessSignalFormatterTest, ProcessCollapseParentChildWithSameNameTest) {
380388
TEST(ProcessSignalFormatterTest, ProcessCollapseParentChildWithSameName2Test) {
381389
std::unique_ptr<sinsp> inspector(new sinsp());
382390
CollectorStats& collector_stats = CollectorStats::GetOrCreate();
391+
CollectorConfig config;
383392

384-
ProcessSignalFormatter processSignalFormatter(inspector.get());
393+
ProcessSignalFormatter processSignalFormatter(inspector.get(), config);
385394

386395
auto tinfo = inspector->build_threadinfo();
387396
tinfo->m_pid = 3;
@@ -447,8 +456,9 @@ TEST(ProcessSignalFormatterTest, ProcessCollapseParentChildWithSameName2Test) {
447456
TEST(ProcessSignalFormatterTest, ProcessWithUnrelatedProcessTest) {
448457
std::unique_ptr<sinsp> inspector(new sinsp());
449458
CollectorStats& collector_stats = CollectorStats::GetOrCreate();
459+
CollectorConfig config;
450460

451-
ProcessSignalFormatter processSignalFormatter(inspector.get());
461+
ProcessSignalFormatter processSignalFormatter(inspector.get(), config);
452462

453463
auto tinfo = inspector->build_threadinfo();
454464
tinfo->m_pid = 3;
@@ -514,8 +524,9 @@ TEST(ProcessSignalFormatterTest, ProcessWithUnrelatedProcessTest) {
514524
TEST(ProcessSignalFormatterTest, CountTwoCounterCallsTest) {
515525
std::unique_ptr<sinsp> inspector(new sinsp());
516526
CollectorStats& collector_stats = CollectorStats::GetOrCreate();
527+
CollectorConfig config;
517528

518-
ProcessSignalFormatter processSignalFormatter(inspector.get());
529+
ProcessSignalFormatter processSignalFormatter(inspector.get(), config);
519530

520531
auto tinfo = inspector->build_threadinfo();
521532
tinfo->m_pid = 1;
@@ -561,8 +572,9 @@ TEST(ProcessSignalFormatterTest, CountTwoCounterCallsTest) {
561572
TEST(ProcessSignalFormatterTest, Rox3377ProcessLineageWithNoVPidTest) {
562573
std::unique_ptr<sinsp> inspector(new sinsp());
563574
CollectorStats& collector_stats = CollectorStats::GetOrCreate();
575+
CollectorConfig config;
564576

565-
ProcessSignalFormatter processSignalFormatter(inspector.get());
577+
ProcessSignalFormatter processSignalFormatter(inspector.get(), config);
566578

567579
auto tinfo = inspector->build_threadinfo();
568580
tinfo->m_pid = 3;

0 commit comments

Comments
 (0)