diff --git a/loader/dd_library_loader.c b/loader/dd_library_loader.c index dcc9692a41..a1bc1c2ebd 100644 --- a/loader/dd_library_loader.c +++ b/loader/dd_library_loader.c @@ -233,6 +233,7 @@ static void ddloader_telemetryf(telemetry_reason reason, const char *error, cons case REASON_INCOMPATIBLE_RUNTIME: LOG(ERROR, "Aborting application instrumentation due to an incompatible runtime"); break; + case REASON_START: case REASON_COMPLETE: case REASON_ALREADY_LOADED: level = INFO; @@ -268,6 +269,13 @@ static void ddloader_telemetryf(telemetry_reason reason, const char *error, cons char points_buf[256] = {0}; char *points = points_buf; switch (reason) { + case REASON_START: + points = + "\ + {\"name\": \"library_entrypoint.start\", \"tags\": []}\ + "; + break; + case REASON_ERROR: snprintf(points_buf, sizeof(points_buf), "\ {\"name\": \"library_entrypoint.error\", \"tags\": [\"error_type:%s\"]}\ @@ -654,6 +662,8 @@ static int ddloader_api_no_check(int api_no) { ddloader_configure(); + TELEMETRY(REASON_START, NULL, "Starting injection"); + switch (api_no) { case 220040412: runtime_version = "5.0"; diff --git a/loader/php_dd_library_loader.h b/loader/php_dd_library_loader.h index 57f1222986..85d286d2fd 100644 --- a/loader/php_dd_library_loader.h +++ b/loader/php_dd_library_loader.h @@ -21,6 +21,7 @@ void ddloader_logv(log_level level, const char *format, va_list va); void ddloader_logf(log_level level, const char *format, ...); typedef enum { + REASON_START, REASON_ERROR, REASON_EOL_RUNTIME, REASON_INCOMPATIBLE_RUNTIME, diff --git a/loader/tests/functional/includes/assert.php b/loader/tests/functional/includes/assert.php index 9d616b64bf..8e45c593fa 100644 --- a/loader/tests/functional/includes/assert.php +++ b/loader/tests/functional/includes/assert.php @@ -1,8 +1,11 @@ getTrace(); $file = $trace[0]['file'] ?: ''; $line = $trace[0]['line'] ?: ''; + $stackTrace = basename($file).':'.$line; + + if (basename($file) === 'assert.php') { + $file2 = $trace[1]['file'] ?: ''; + $line2 = $trace[1]['line'] ?: ''; + $stackTrace = basename($file2).':'.$line2.' > '.$stackTrace; + } echo "------------------------------------\n"; if ($file) { - echo 'Error in test '.basename($file).':'.$line."\n"; + echo 'Error in test '.$stackTrace."\n"; echo "------------------------------------\n"; } echo $ex->getMessage()."\n"; diff --git a/loader/tests/functional/test_ddtrace_already_loaded.php b/loader/tests/functional/test_ddtrace_already_loaded.php index 66861b42ba..065328617f 100644 --- a/loader/tests/functional/test_ddtrace_already_loaded.php +++ b/loader/tests/functional/test_ddtrace_already_loaded.php @@ -27,9 +27,6 @@ // Let time to the fork to write the telemetry log usleep(5000); -$raw = file_get_contents($telemetryLogPath); -$payload = json_decode($raw, true); - $format = <<