Skip to content

Commit ca93c16

Browse files
committed
Add sidecar dump
1 parent 76ca437 commit ca93c16

File tree

7 files changed

+25
-16
lines changed

7 files changed

+25
-16
lines changed

Cargo.lock

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

components-rs/sidecar.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,4 +132,6 @@ ddog_MaybeError ddog_sidecar_send_trace_v04_bytes(ddog_SidecarTransport **transp
132132
ddog_CharSlice data,
133133
const struct ddog_TracerHeaderTags *tracer_header_tags);
134134

135+
ddog_CharSlice ddog_sidecar_dump(ddog_SidecarTransport **transport);
136+
135137
#endif /* DDOG_SIDECAR_H */

config.m4

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ if test "$PHP_DDTRACE" != "no"; then
289289

290290
cat <<EOT >> Makefile.fragments
291291
\$(builddir)/target/$ddtrace_cargo_profile/libddtrace_php.a: $( (find "$ext_srcdir/components-rs" -name "*.c" -o -name "*.rs" -o -name "Cargo.toml"; find "$ext_srcdir/../../libdatadog" -name "*.rs" -not -path "*/target/*"; find "$ext_srcdir/libdatadog" -name "*.rs" -not -path "*/target/*"; echo "$all_object_files" ) 2>/dev/null | xargs )
292-
(cd "$ext_srcdir/components-rs"; $ddtrace_mock_sources CARGO_TARGET_DIR=\$(builddir)/target/ RUSTC_BOOTSTRAP=1 \$(DDTRACE_CARGO) build $(test "$ddtrace_cargo_profile" == debug || echo --profile tracer-release) \$(shell echo "\$(MAKEFLAGS)" | $EGREP -o "[[-]]j[[0-9]]+") && test "$PHP_DDTRACE_RUST_SYMBOLS" == yes || strip -d \$(builddir)/target/$ddtrace_cargo_profile/libddtrace_php.a)
292+
(cd "$ext_srcdir/components-rs"; $ddtrace_mock_sources CARGO_TARGET_DIR=\$(builddir)/target/ RUSTFLAGS="${RUSTFLAGS:-} --cfg tokio_unstable --cfg tokio_taskdump" RUSTC_BOOTSTRAP=1 \$(DDTRACE_CARGO) build $(test "$ddtrace_cargo_profile" == debug || echo --profile tracer-release) \$(shell echo "\$(MAKEFLAGS)" | $EGREP -o "[[-]]j[[0-9]]+") && test "$PHP_DDTRACE_RUST_SYMBOLS" == yes || strip -d \$(builddir)/target/$ddtrace_cargo_profile/libddtrace_php.a)
293293
EOT
294294

295295
if test "$ext_shared" = "shared" || test "$ext_shared" = "yes"; then

ext/ddtrace.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1907,6 +1907,13 @@ PHP_FUNCTION(dd_trace_internal_fn) {
19071907
} else if (FUNCTION_NAME_MATCHES("finalize_telemetry")) {
19081908
dd_finalize_telemtry();
19091909
RETVAL_TRUE;
1910+
} else if (FUNCTION_NAME_MATCHES("dump_sidecar")) {
1911+
if (!ddtrace_sidecar) {
1912+
RETURN_FALSE;
1913+
}
1914+
ddog_CharSlice slice = ddog_sidecar_dump(&ddtrace_sidecar);
1915+
RETVAL_STRINGL(slice.ptr, slice.len);
1916+
free((void *) slice.ptr);
19101917
} else if (params_count == 1 && FUNCTION_NAME_MATCHES("detect_composer_installed_json")) {
19111918
ddog_CharSlice path = dd_zend_string_to_CharSlice(Z_STR_P(ZVAL_VARARG_PARAM(params, 0)));
19121919
ddtrace_detect_composer_installed_json(&ddtrace_sidecar, ddtrace_sidecar_instance_id, &DDTRACE_G(telemetry_queue_id), path);
@@ -2442,7 +2449,7 @@ static ddtrace_distributed_tracing_result dd_parse_distributed_tracing_headers_f
24422449

24432450
ZEND_PARSE_PARAMETERS_START(1, 1)
24442451
DD_PARAM_PROLOGUE(0, 0);
2445-
if (UNEXPECTED(!zend_parse_arg_func(_arg, &func.fci, &func.fcc, false, &_error))) {
2452+
if (UNEXPECTED(!zend_parse_arg_func(_arg, &func.fci, &func.fcc, false, &_error, true))) {
24462453
if (!_error) {
24472454
zend_argument_type_error(1, "must be a valid callback or of type array, %s given", zend_zval_value_name(_arg));
24482455
_error_code = ZPP_ERROR_FAILURE;

ext/ddtrace.stub.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -885,9 +885,9 @@ function dd_trace_coms_trigger_writer_flush(): int {}
885885
* @internal
886886
* @param string $functionName Internal function name
887887
* @param mixed $args,... Arguments of the function
888-
* @return bool 'true' if void function was properly executed, else the return value of it
888+
* @return mixed false if void function was properly executed, else the return value of it
889889
*/
890-
function dd_trace_internal_fn(string $functionName, mixed ...$args): bool {}
890+
function dd_trace_internal_fn(string $functionName, mixed ...$args) {}
891891

892892
/**
893893
* Set the distributed trace id

ext/ddtrace_arginfo.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* This is a generated file, edit the .stub.php file instead.
2-
* Stub hash: 1354719701dbfb97c14995b1f228acc33caa343e */
2+
* Stub hash: e3dd0b069a9bb83a90454e9bd2a74e87ebb208e5 */
33

44
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_DDTrace_trace_method, 0, 3, _IS_BOOL, 0)
55
ZEND_ARG_TYPE_INFO(0, className, IS_STRING, 0)
@@ -218,7 +218,7 @@ ZEND_END_ARG_INFO()
218218

219219
#define arginfo_dd_trace_coms_trigger_writer_flush arginfo_dd_trace_dd_get_memory_limit
220220

221-
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_dd_trace_internal_fn, 0, 1, _IS_BOOL, 0)
221+
ZEND_BEGIN_ARG_INFO_EX(arginfo_dd_trace_internal_fn, 0, 0, 1)
222222
ZEND_ARG_TYPE_INFO(0, functionName, IS_STRING, 0)
223223
ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
224224
ZEND_END_ARG_INFO()

0 commit comments

Comments
 (0)