diff --git a/ext/sidecar.c b/ext/sidecar.c index a88712a9d3..6d3303a1ae 100644 --- a/ext/sidecar.c +++ b/ext/sidecar.c @@ -15,6 +15,7 @@ #include "process_tags.h" #include "serializer.h" #include "remote_config.h" +#include "process_tags.h" #ifndef _WIN32 #include "coms.h" #endif @@ -646,6 +647,11 @@ ddog_crasht_Metadata ddtrace_setup_crashtracking_metadata(ddog_Vec_Tag *tags) { const char *runtime_version = zend_get_module_version("Reflection"); ddtrace_sidecar_push_tag(tags, DDOG_CHARSLICE_C("runtime_version"), (ddog_CharSlice) {.ptr = (char *) runtime_version, .len = strlen(runtime_version)}); + zend_string *process_tags = ddtrace_process_tags_get_serialized(); + if (ZSTR_LEN(process_tags)) { + ddtrace_sidecar_push_tag(tags, DDOG_CHARSLICE_C("process_tags"), (ddog_CharSlice) {.ptr = ZSTR_VAL(process_tags), .len = ZSTR_LEN(process_tags)}); + } + return (ddog_crasht_Metadata){ .library_name = DDOG_CHARSLICE_C_BARE("dd-trace-php"), .library_version = DDOG_CHARSLICE_C_BARE(PHP_DDTRACE_VERSION), diff --git a/libdatadog b/libdatadog index b09abfb6ad..a0cef26b02 160000 --- a/libdatadog +++ b/libdatadog @@ -1 +1 @@ -Subproject commit b09abfb6ad12f139899e445b7034a6fdb85e3314 +Subproject commit a0cef26b0240f19dd994d471d5679e8c426adfc8 diff --git a/tests/ext/crashtracker_segfault.phpt b/tests/ext/crashtracker_segfault.phpt index 0b69c8968a..8101393693 100644 --- a/tests/ext/crashtracker_segfault.phpt +++ b/tests/ext/crashtracker_segfault.phpt @@ -13,6 +13,7 @@ include __DIR__ . '/includes/skipif_no_dev_env.inc'; DD_TRACE_LOG_LEVEL=0 DD_AGENT_HOST=request-replayer DD_TRACE_AGENT_PORT=80 +DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=1 --INI-- datadog.trace.agent_test_session_token=tests/ext/crashtracker_segfault.phpt --FILE-- @@ -43,6 +44,8 @@ $rr->waitForRequest(function ($request) { continue; } + echo $json["application"]["process_tags"], PHP_EOL; + foreach ($json["payload"]["logs"] as $payload) { $payload["message"] = json_decode($payload["message"], true); if (!isset($payload["message"]["metadata"])) { @@ -63,6 +66,7 @@ $rr->waitForRequest(function ($request) { }); ?> --EXPECTF-- +%Aentrypoint.name:standard_input_code,entrypoint.type:script,entrypoint.workdir:%s,runtime.sapi:cli %A{ "message": { %A diff --git a/tests/ext/crashtracker_segfault_windows.phpt b/tests/ext/crashtracker_segfault_windows.phpt index 0e3a911304..f358c05e03 100644 --- a/tests/ext/crashtracker_segfault_windows.phpt +++ b/tests/ext/crashtracker_segfault_windows.phpt @@ -14,6 +14,7 @@ include __DIR__ . '/includes/skipif_no_dev_env.inc'; DD_TRACE_LOG_LEVEL=0 DD_AGENT_HOST=request-replayer DD_TRACE_AGENT_PORT=3188 +DD_EXPERIMENTAL_PROPAGATE_PROCESS_TAGS_ENABLED=1 --INI-- datadog.trace.agent_test_session_token=tests/ext/crashtracker_segfault_windows.phpt --FILE-- @@ -56,6 +57,8 @@ $rr->waitForRequest(function ($request) { continue; } + echo $json["application"]["process_tags"], PHP_EOL; + foreach ($json["payload"]["logs"] as $payload) { $payload["message"] = json_decode($payload["message"], true); if (!isset($payload["message"]["metadata"])) { @@ -73,6 +76,7 @@ $rr->waitForRequest(function ($request) { }); ?> --EXPECTF-- +%Aentrypoint.name:standard_input_code,entrypoint.type:script,entrypoint.workdir:%s,runtime.sapi:cli %A{ "message": { "data_schema_version": "1.2",