Skip to content

Commit 59a58ef

Browse files
committed
Flush telemetry as well on anticipated sidecar shutdown
1 parent 3df62fd commit 59a58ef

6 files changed

Lines changed: 13 additions & 6 deletions

File tree

Cargo.lock

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

components-rs/common.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,6 +1174,11 @@ typedef struct ddog_NativeFile {
11741174
struct ddog_PlatformHandle_File *handle;
11751175
} ddog_NativeFile;
11761176

1177+
typedef struct ddog_SidecarFlushOptions {
1178+
bool traces_and_stats;
1179+
bool telemetry;
1180+
} ddog_SidecarFlushOptions;
1181+
11771182
typedef struct ddog_TracerHeaderTags {
11781183
ddog_CharSlice lang;
11791184
ddog_CharSlice lang_version;

components-rs/sidecar.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,8 @@ ddog_MaybeError ddog_sidecar_clear_inherited_listener(void);
104104

105105
ddog_MaybeError ddog_sidecar_ping(struct ddog_SidecarTransport **transport);
106106

107-
ddog_MaybeError ddog_sidecar_flush_traces(struct ddog_SidecarTransport **transport);
107+
ddog_MaybeError ddog_sidecar_flush(struct ddog_SidecarTransport **transport,
108+
struct ddog_SidecarFlushOptions options);
108109

109110
struct ddog_InstanceId *ddog_sidecar_instanceId_build(ddog_CharSlice session_id,
110111
ddog_CharSlice runtime_id);

ext/ddtrace.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1598,7 +1598,7 @@ static PHP_MSHUTDOWN_FUNCTION(ddtrace) {
15981598
} else /* ! part of the if outside the ifdef */
15991599
#endif
16001600
if (get_global_DD_TRACE_FORCE_FLUSH_ON_SHUTDOWN() && DDTRACE_G(sidecar)) {
1601-
ddog_sidecar_flush_traces(&DDTRACE_G(sidecar));
1601+
ddog_sidecar_flush(&DDTRACE_G(sidecar), (ddog_SidecarFlushOptions){.traces_and_stats = true, .telemetry = true});
16021602
}
16031603

16041604
ddtrace_log_mshutdown();
@@ -3083,7 +3083,7 @@ PHP_FUNCTION(dd_trace_internal_fn) {
30833083
} else
30843084
#endif
30853085
if (DDTRACE_G(sidecar)) {
3086-
ddtrace_ffi_try("Failed synchronously flushing traces", ddog_sidecar_flush_traces(&DDTRACE_G(sidecar)));
3086+
ddtrace_ffi_try("Failed synchronously flushing traces", ddog_sidecar_flush(&DDTRACE_G(sidecar), (ddog_SidecarFlushOptions){.traces_and_stats = true}));
30873087
}
30883088
RETVAL_TRUE;
30893089
#ifndef _WIN32
@@ -3218,7 +3218,7 @@ PHP_FUNCTION(dd_trace_synchronous_flush) {
32183218
} else
32193219
#endif
32203220
if (DDTRACE_G(sidecar)) {
3221-
ddtrace_ffi_try("Failed synchronously flushing traces", ddog_sidecar_flush_traces(&DDTRACE_G(sidecar)));
3221+
ddtrace_ffi_try("Failed synchronously flushing traces", ddog_sidecar_flush(&DDTRACE_G(sidecar), (ddog_SidecarFlushOptions){.traces_and_stats = true}));
32223222
}
32233223
RETURN_NULL();
32243224
}

ext/signals.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ static int dd_call_prev_handler(bool flush) {
363363
}
364364

365365
if (flush) {
366-
ddog_sidecar_flush_traces(&ddtrace_sidecar_for_signal);
366+
ddog_sidecar_flush(&ddtrace_sidecar_for_signal, (ddog_SidecarFlushOptions){.traces_and_stats = true});
367367
}
368368

369369
if (prev_handler == SIG_DFL) {

0 commit comments

Comments
 (0)