Skip to content

Commit e3f46db

Browse files
Logging
1 parent 302ef88 commit e3f46db

File tree

2 files changed

+41
-16
lines changed

2 files changed

+41
-16
lines changed

src/datadog/telemetry/telemetry_impl.cpp

Lines changed: 37 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -208,9 +208,13 @@ Telemetry::Telemetry(FinalizedConfiguration config,
208208
host_info_(get_host_info()) {
209209
// Callback for successful telemetry HTTP requests, to examine HTTP
210210
// status.
211+
logger->log_error("Constructing telemetry object");
211212
send_telemetry("app-started", app_started());
213+
logger_->log_error("Draining from constructor");
212214
http_client_->drain(clock_().tick + 2s);
215+
logger->log_error("Drain called");
213216
schedule_tasks();
217+
logger_->log_error("Finished constructor");
214218
}
215219

216220
void Telemetry::schedule_tasks() {
@@ -226,16 +230,21 @@ void Telemetry::schedule_tasks() {
226230
}
227231

228232
Telemetry::~Telemetry() {
233+
logger_->log_error("Destructor called");
229234
shutting_down_.store(true, std::memory_order_release);
230235
if (!tasks_.empty()) {
236+
logger_->log_error("Tasks wasnt empty");
231237
cancel_tasks(tasks_);
232238
capture_metrics();
233239
// The app-closing message is bundled with a message containing the
234240
// final metric values.
241+
logger_->log_error("Sending closing telemetry");
235242
send_telemetry("app-closing", app_closing());
243+
logger_->log_error("Draining closing telemetry");
236244
http_client_->drain(clock_().tick + 2s);
237245
}
238246
http_client_.reset();
247+
logger_->log_error("Exiting destructor");
239248
}
240249

241250
Telemetry::Telemetry(Telemetry&& rhs)
@@ -284,23 +293,24 @@ Telemetry& Telemetry::operator=(Telemetry&& rhs) {
284293

285294
void Telemetry::log_error(std::string message) {
286295
if (!config_.report_logs) return;
287-
increment_counter(internal_metrics::logs_created, {"level:error"});
296+
increment_counter(internal_metrics::logs_created, {"level:error"}, nullptr);
288297
log(std::move(message), LogLevel::ERROR);
289298
}
290299

291300
void Telemetry::log_error(std::string message, std::string stacktrace) {
292301
if (!config_.report_logs) return;
293-
increment_counter(internal_metrics::logs_created, {"level:error"});
302+
increment_counter(internal_metrics::logs_created, {"level:error"}, nullptr);
294303
log(std::move(message), LogLevel::ERROR, stacktrace);
295304
}
296305

297306
void Telemetry::log_warning(std::string message) {
298307
if (!config_.report_logs) return;
299-
increment_counter(internal_metrics::logs_created, {"level:warning"});
308+
increment_counter(internal_metrics::logs_created, {"level:warning"}, nullptr);
300309
log(std::move(message), LogLevel::WARNING);
301310
}
302311

303312
void Telemetry::send_telemetry(StringView request_type, std::string payload) {
313+
logger_->log_error("Sending telemetry");
304314
auto set_telemetry_headers = [request_type, payload_size = payload.size(),
305315
debug_enabled = config_.debug,
306316
tracer_signature =
@@ -327,19 +337,19 @@ void Telemetry::send_telemetry(StringView request_type, std::string payload) {
327337
std::string response_body) {
328338
if (response_status >= 500) {
329339
increment_counter(internal_metrics::responses,
330-
{"status_code:5xx", "endpoint:agent"});
340+
{"status_code:5xx", "endpoint:agent"}, logger_);
331341
} else if (response_status >= 400) {
332342
increment_counter(internal_metrics::responses,
333-
{"status_code:4xx", "endpoint:agent"});
343+
{"status_code:4xx", "endpoint:agent"}, logger_);
334344
} else if (response_status >= 300) {
335345
increment_counter(internal_metrics::responses,
336-
{"status_code:3xx", "endpoint:agent"});
346+
{"status_code:3xx", "endpoint:agent"}, logger_);
337347
} else if (response_status >= 200) {
338348
increment_counter(internal_metrics::responses,
339-
{"status_code:2xx", "endpoint:agent"});
349+
{"status_code:2xx", "endpoint:agent"}, logger_);
340350
} else if (response_status >= 100) {
341351
increment_counter(internal_metrics::responses,
342-
{"status_code:1xx", "endpoint:agent"});
352+
{"status_code:1xx", "endpoint:agent"}, logger_);
343353
}
344354

345355
if (response_status < 200 || response_status >= 300) {
@@ -353,13 +363,14 @@ void Telemetry::send_telemetry(StringView request_type, std::string payload) {
353363

354364
// Callback for unsuccessful telemetry HTTP requests.
355365
auto telemetry_on_error = [this, logger = logger_](Error error) {
366+
logger->log_error("Telemetry on error called");
356367
increment_counter(internal_metrics::errors,
357-
{"type:network", "endpoint:agent"});
368+
{"type:network", "endpoint:agent"}, logger);
358369
logger->log_error(error.with_prefix(
359370
"Error occurred during HTTP request for telemetry: "));
360371
};
361372

362-
increment_counter(internal_metrics::requests, {"endpoint:agent"});
373+
increment_counter(internal_metrics::requests, {"endpoint:agent"}, logger_);
363374
add_datapoint(internal_metrics::bytes_sent, {"endpoint:agent"},
364375
payload.size());
365376

@@ -368,8 +379,9 @@ void Telemetry::send_telemetry(StringView request_type, std::string payload) {
368379
std::move(payload), std::move(telemetry_on_response),
369380
std::move(telemetry_on_error), clock_().tick + 5s);
370381
if (auto* error = post_result.if_error()) {
382+
logger_->log_error("Error posting");
371383
increment_counter(internal_metrics::errors,
372-
{"type:network", "endpoint:agent"});
384+
{"type:network", "endpoint:agent"}, logger_);
373385
logger_->log_error(
374386
error->with_prefix("Unexpected error submitting telemetry event: "));
375387
}
@@ -749,16 +761,27 @@ void Telemetry::log(std::string message, telemetry::LogLevel level,
749761
telemetry::LogMessage{std::move(message), level, stacktrace, timestamp});
750762
}
751763

752-
void Telemetry::increment_counter(const Counter& id) {
753-
increment_counter(id, {});
764+
void Telemetry::increment_counter(const Counter& id,
765+
std::shared_ptr<tracing::Logger> logger) {
766+
increment_counter(id, {}, logger);
754767
}
755768

756769
void Telemetry::increment_counter(const Counter& id,
757-
const std::vector<std::string>& tags) {
770+
const std::vector<std::string>& tags,
771+
std::shared_ptr<tracing::Logger> logger) {
772+
if (logger != nullptr) {
773+
logger->log_error("increment_counter called");
774+
}
758775
std::lock_guard l{counter_mutex_};
759776
if (shutting_down_.load(std::memory_order_acquire)) {
777+
if (logger != nullptr) {
778+
logger->log_error("was derstroying, returning");
779+
}
760780
return;
761781
}
782+
if (logger != nullptr) {
783+
logger->log_error("was not destroying, changing variable");
784+
}
762785
counters_[{id, tags}] += 1;
763786
}
764787

src/datadog/telemetry/telemetry_impl.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,11 @@ class Telemetry final {
110110
const std::vector<tracing::ConfigMetadata>& new_configuration);
111111

112112
/// Counter
113-
void increment_counter(const Counter& counter);
114113
void increment_counter(const Counter& counter,
115-
const std::vector<std::string>& tags);
114+
std::shared_ptr<tracing::Logger> logger);
115+
void increment_counter(const Counter& counter,
116+
const std::vector<std::string>& tags,
117+
std::shared_ptr<tracing::Logger> logger);
116118
void decrement_counter(const Counter& counter);
117119
void decrement_counter(const Counter& counter,
118120
const std::vector<std::string>& tags);

0 commit comments

Comments
 (0)