Skip to content

Commit d49c147

Browse files
authored
fix: telemetry refactoring part 1 (#167)
Keep a reference to user metrics to avoid dereferencing them when they are not alive anymore.
1 parent 963f78b commit d49c147

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

src/datadog/tracer_telemetry.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ TracerTelemetry::TracerTelemetry(
6464
host_info_(get_host_info()),
6565
tracer_signature_(tracer_signature),
6666
integration_name_(integration_name),
67-
integration_version_(integration_version) {
67+
integration_version_(integration_version),
68+
user_metrics_(user_metrics) {
6869
if (enabled_) {
6970
if (integration_name_.empty()) {
7071
integration_name_ = "datadog";
@@ -101,7 +102,7 @@ TracerTelemetry::TracerTelemetry(
101102
metrics_snapshots_.emplace_back(metrics_.trace_api.errors_status_code,
102103
MetricSnapshot{});
103104

104-
for (auto& m : user_metrics) {
105+
for (auto& m : user_metrics_) {
105106
metrics_snapshots_.emplace_back(*m, MetricSnapshot{});
106107
}
107108
}

src/datadog/tracer_telemetry.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ class TracerTelemetry {
118118
nlohmann::json generate_configuration_field(
119119
const ConfigMetadata& config_metadata);
120120

121+
std::vector<std::shared_ptr<telemetry::Metric>> user_metrics_;
122+
121123
public:
122124
TracerTelemetry(
123125
bool enabled, const Clock& clock, const std::shared_ptr<Logger>& logger,

0 commit comments

Comments
 (0)