Skip to content

Commit 7ed10a0

Browse files
authored
Adds process_tags to telemetry payload (#3627)
* Adds process_tags to telemetry application metadata * make cbindgen * add libdatadog-ffe to Makefile * bump libdatadog
1 parent 72a021a commit 7ed10a0

10 files changed

Lines changed: 555 additions & 138 deletions

File tree

Cargo.lock

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

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ RUN_TESTS_CMD := DD_SERVICE= DD_ENV= REPORT_EXIT_STATUS=1 TEST_PHP_SRCDIR=$(PROJ
4848

4949
C_FILES = $(shell find components components-rs ext src/dogstatsd zend_abstract_interface -name '*.c' -o -name '*.h' | awk '{ printf "$(BUILD_DIR)/%s\n", $$1 }' )
5050
TEST_FILES = $(shell find tests/ext -name '*.php*' -o -name '*.inc' -o -name '*.json' -o -name '*.yaml' -o -name 'CONFLICTS' | awk '{ printf "$(BUILD_DIR)/%s\n", $$1 }' )
51-
RUST_FILES = $(BUILD_DIR)/Cargo.toml $(BUILD_DIR)/Cargo.lock $(shell find components-rs -name '*.c' -o -name '*.rs' -o -name 'Cargo.toml' | awk '{ printf "$(BUILD_DIR)/%s\n", $$1 }' ) $(shell find libdatadog/{build-common,datadog-ipc,datadog-ipc-macros,datadog-live-debugger,datadog-live-debugger-ffi,datadog-remote-config,datadog-sidecar,datadog-sidecar-ffi,datadog-sidecar-macros,libdd-alloc,libdd-common,libdd-common-ffi,libdd-crashtracker,libdd-crashtracker-ffi,libdd-data-pipeline,libdd-ddsketch,libdd-dogstatsd-client,libdd-library-config,libdd-library-config-ffi,libdd-log,libdd-telemetry,libdd-telemetry-ffi,libdd-tinybytes,libdd-trace-*,spawn_worker,tools/{cc_utils,sidecar_mockgen},libdd-trace-*,Cargo.toml} \( -type l -o -type f \) \( -path "*/src*" -o -path "*/examples*" -o -path "*Cargo.toml" -o -path "*/build.rs" -o -path "*/tests/dataservice.rs" -o -path "*/tests/service_functional.rs" \) -not -path "*/datadog-ipc/build.rs" -not -path "*/datadog-sidecar-ffi/build.rs")
51+
RUST_FILES = $(BUILD_DIR)/Cargo.toml $(BUILD_DIR)/Cargo.lock $(shell find components-rs -name '*.c' -o -name '*.rs' -o -name 'Cargo.toml' | awk '{ printf "$(BUILD_DIR)/%s\n", $$1 }' ) $(shell find libdatadog/{build-common,datadog-ffe,datadog-ipc,datadog-ipc-macros,datadog-live-debugger,datadog-live-debugger-ffi,datadog-remote-config,datadog-sidecar,datadog-sidecar-ffi,datadog-sidecar-macros,libdd-alloc,libdd-common,libdd-common-ffi,libdd-crashtracker,libdd-crashtracker-ffi,libdd-data-pipeline,libdd-ddsketch,libdd-dogstatsd-client,libdd-library-config,libdd-library-config-ffi,libdd-log,libdd-telemetry,libdd-telemetry-ffi,libdd-tinybytes,libdd-trace-*,spawn_worker,tools/{cc_utils,sidecar_mockgen},libdd-trace-*,Cargo.toml} \( -type l -o -type f \) \( -path "*/src*" -o -path "*/examples*" -o -path "*Cargo.toml" -o -path "*/build.rs" -o -path "*/tests/dataservice.rs" -o -path "*/tests/service_functional.rs" \) -not -path "*/datadog-ipc/build.rs" -not -path "*/datadog-sidecar-ffi/build.rs")
5252
ALL_OBJECT_FILES = $(C_FILES) $(RUST_FILES) $(BUILD_DIR)/Makefile
5353
TEST_OPCACHE_FILES = $(shell find tests/opcache -name '*.php*' -o -name '.gitkeep' | awk '{ printf "$(BUILD_DIR)/%s\n", $$1 }' )
5454
TEST_STUB_FILES = $(shell find tests/ext -type d -name 'stubs' -exec find '{}' -type f \; | awk '{ printf "$(BUILD_DIR)/%s\n", $$1 }' )

components-rs/common.h

Lines changed: 131 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -264,19 +264,16 @@ typedef struct _zend_string _zend_string;
264264

265265
#define ddog_MultiTargetFetcher_DEFAULT_CLIENTS_LIMIT 100
266266

267-
typedef enum ddog_Log {
268-
DDOG_LOG_ERROR = 1,
269-
DDOG_LOG_WARN = 2,
270-
DDOG_LOG_INFO = 3,
271-
DDOG_LOG_DEBUG = 4,
272-
DDOG_LOG_TRACE = 5,
273-
DDOG_LOG_DEPRECATED = (3 | ddog_LOG_ONCE),
274-
DDOG_LOG_STARTUP = (3 | (2 << 4)),
275-
DDOG_LOG_STARTUP_WARN = (1 | (2 << 4)),
276-
DDOG_LOG_SPAN = (4 | (3 << 4)),
277-
DDOG_LOG_SPAN_TRACE = (5 | (3 << 4)),
278-
DDOG_LOG_HOOK_TRACE = (5 | (4 << 4)),
279-
} ddog_Log;
267+
typedef enum ddog_ConfigurationOrigin {
268+
DDOG_CONFIGURATION_ORIGIN_ENV_VAR,
269+
DDOG_CONFIGURATION_ORIGIN_CODE,
270+
DDOG_CONFIGURATION_ORIGIN_DD_CONFIG,
271+
DDOG_CONFIGURATION_ORIGIN_REMOTE_CONFIG,
272+
DDOG_CONFIGURATION_ORIGIN_DEFAULT,
273+
DDOG_CONFIGURATION_ORIGIN_LOCAL_STABLE_CONFIG,
274+
DDOG_CONFIGURATION_ORIGIN_FLEET_STABLE_CONFIG,
275+
DDOG_CONFIGURATION_ORIGIN_CALCULATED,
276+
} ddog_ConfigurationOrigin;
280277

281278
typedef enum ddog_DynamicConfigUpdateMode {
282279
DDOG_DYNAMIC_CONFIG_UPDATE_MODE_READ,
@@ -285,16 +282,30 @@ typedef enum ddog_DynamicConfigUpdateMode {
285282
DDOG_DYNAMIC_CONFIG_UPDATE_MODE_RESTORE,
286283
} ddog_DynamicConfigUpdateMode;
287284

285+
typedef enum ddog_EvaluateAt {
286+
DDOG_EVALUATE_AT_ENTRY,
287+
DDOG_EVALUATE_AT_EXIT,
288+
} ddog_EvaluateAt;
289+
288290
typedef enum ddog_InBodyLocation {
289291
DDOG_IN_BODY_LOCATION_NONE,
290292
DDOG_IN_BODY_LOCATION_START,
291293
DDOG_IN_BODY_LOCATION_END,
292294
} ddog_InBodyLocation;
293295

294-
typedef enum ddog_EvaluateAt {
295-
DDOG_EVALUATE_AT_ENTRY,
296-
DDOG_EVALUATE_AT_EXIT,
297-
} ddog_EvaluateAt;
296+
typedef enum ddog_Log {
297+
DDOG_LOG_ERROR = 1,
298+
DDOG_LOG_WARN = 2,
299+
DDOG_LOG_INFO = 3,
300+
DDOG_LOG_DEBUG = 4,
301+
DDOG_LOG_TRACE = 5,
302+
DDOG_LOG_DEPRECATED = (3 | ddog_LOG_ONCE),
303+
DDOG_LOG_STARTUP = (3 | (2 << 4)),
304+
DDOG_LOG_STARTUP_WARN = (1 | (2 << 4)),
305+
DDOG_LOG_SPAN = (4 | (3 << 4)),
306+
DDOG_LOG_SPAN_TRACE = (5 | (3 << 4)),
307+
DDOG_LOG_HOOK_TRACE = (5 | (4 << 4)),
308+
} ddog_Log;
298309

299310
typedef enum ddog_MetricKind {
300311
DDOG_METRIC_KIND_COUNT,
@@ -303,37 +314,6 @@ typedef enum ddog_MetricKind {
303314
DDOG_METRIC_KIND_DISTRIBUTION,
304315
} ddog_MetricKind;
305316

306-
typedef enum ddog_SpanProbeTarget {
307-
DDOG_SPAN_PROBE_TARGET_ACTIVE,
308-
DDOG_SPAN_PROBE_TARGET_ROOT,
309-
} ddog_SpanProbeTarget;
310-
311-
typedef enum ddog_ProbeStatus {
312-
DDOG_PROBE_STATUS_RECEIVED,
313-
DDOG_PROBE_STATUS_INSTALLED,
314-
DDOG_PROBE_STATUS_EMITTING,
315-
DDOG_PROBE_STATUS_ERROR,
316-
DDOG_PROBE_STATUS_BLOCKED,
317-
DDOG_PROBE_STATUS_WARNING,
318-
} ddog_ProbeStatus;
319-
320-
typedef enum ddog_ConfigurationOrigin {
321-
DDOG_CONFIGURATION_ORIGIN_ENV_VAR,
322-
DDOG_CONFIGURATION_ORIGIN_CODE,
323-
DDOG_CONFIGURATION_ORIGIN_DD_CONFIG,
324-
DDOG_CONFIGURATION_ORIGIN_REMOTE_CONFIG,
325-
DDOG_CONFIGURATION_ORIGIN_DEFAULT,
326-
DDOG_CONFIGURATION_ORIGIN_LOCAL_STABLE_CONFIG,
327-
DDOG_CONFIGURATION_ORIGIN_FLEET_STABLE_CONFIG,
328-
DDOG_CONFIGURATION_ORIGIN_CALCULATED,
329-
} ddog_ConfigurationOrigin;
330-
331-
typedef enum ddog_MetricType {
332-
DDOG_METRIC_TYPE_GAUGE,
333-
DDOG_METRIC_TYPE_COUNT,
334-
DDOG_METRIC_TYPE_DISTRIBUTION,
335-
} ddog_MetricType;
336-
337317
typedef enum ddog_MetricNamespace {
338318
DDOG_METRIC_NAMESPACE_TRACERS,
339319
DDOG_METRIC_NAMESPACE_PROFILERS,
@@ -348,16 +328,20 @@ typedef enum ddog_MetricNamespace {
348328
DDOG_METRIC_NAMESPACE_SIDECAR,
349329
} ddog_MetricNamespace;
350330

351-
typedef enum ddog_RemoteConfigProduct {
352-
DDOG_REMOTE_CONFIG_PRODUCT_AGENT_CONFIG,
353-
DDOG_REMOTE_CONFIG_PRODUCT_AGENT_TASK,
354-
DDOG_REMOTE_CONFIG_PRODUCT_APM_TRACING,
355-
DDOG_REMOTE_CONFIG_PRODUCT_ASM,
356-
DDOG_REMOTE_CONFIG_PRODUCT_ASM_DATA,
357-
DDOG_REMOTE_CONFIG_PRODUCT_ASM_DD,
358-
DDOG_REMOTE_CONFIG_PRODUCT_ASM_FEATURES,
359-
DDOG_REMOTE_CONFIG_PRODUCT_LIVE_DEBUGGER,
360-
} ddog_RemoteConfigProduct;
331+
typedef enum ddog_MetricType {
332+
DDOG_METRIC_TYPE_GAUGE,
333+
DDOG_METRIC_TYPE_COUNT,
334+
DDOG_METRIC_TYPE_DISTRIBUTION,
335+
} ddog_MetricType;
336+
337+
typedef enum ddog_ProbeStatus {
338+
DDOG_PROBE_STATUS_RECEIVED,
339+
DDOG_PROBE_STATUS_INSTALLED,
340+
DDOG_PROBE_STATUS_EMITTING,
341+
DDOG_PROBE_STATUS_ERROR,
342+
DDOG_PROBE_STATUS_BLOCKED,
343+
DDOG_PROBE_STATUS_WARNING,
344+
} ddog_ProbeStatus;
361345

362346
typedef enum ddog_RemoteConfigCapabilities {
363347
DDOG_REMOTE_CONFIG_CAPABILITIES_ASM_ACTIVATION = 1,
@@ -403,8 +387,26 @@ typedef enum ddog_RemoteConfigCapabilities {
403387
DDOG_REMOTE_CONFIG_CAPABILITIES_APM_TRACING_ENABLE_LIVE_DEBUGGING = 41,
404388
DDOG_REMOTE_CONFIG_CAPABILITIES_ASM_DD_MULTICONFIG = 42,
405389
DDOG_REMOTE_CONFIG_CAPABILITIES_ASM_TRACE_TAGGING_RULES = 43,
390+
DDOG_REMOTE_CONFIG_CAPABILITIES_FFE_FLAG_CONFIGURATION_RULES = 46,
406391
} ddog_RemoteConfigCapabilities;
407392

393+
typedef enum ddog_RemoteConfigProduct {
394+
DDOG_REMOTE_CONFIG_PRODUCT_AGENT_CONFIG,
395+
DDOG_REMOTE_CONFIG_PRODUCT_AGENT_TASK,
396+
DDOG_REMOTE_CONFIG_PRODUCT_APM_TRACING,
397+
DDOG_REMOTE_CONFIG_PRODUCT_ASM,
398+
DDOG_REMOTE_CONFIG_PRODUCT_ASM_DATA,
399+
DDOG_REMOTE_CONFIG_PRODUCT_ASM_DD,
400+
DDOG_REMOTE_CONFIG_PRODUCT_ASM_FEATURES,
401+
DDOG_REMOTE_CONFIG_PRODUCT_FFE_FLAGS,
402+
DDOG_REMOTE_CONFIG_PRODUCT_LIVE_DEBUGGER,
403+
} ddog_RemoteConfigProduct;
404+
405+
typedef enum ddog_SpanProbeTarget {
406+
DDOG_SPAN_PROBE_TARGET_ACTIVE,
407+
DDOG_SPAN_PROBE_TARGET_ROOT,
408+
} ddog_SpanProbeTarget;
409+
408410
typedef struct ddog_DebuggerPayload ddog_DebuggerPayload;
409411

410412
typedef struct ddog_DslString ddog_DslString;
@@ -775,18 +777,18 @@ typedef struct ddog_DebuggerValue ddog_DebuggerValue;
775777

776778
#define ddog_EVALUATOR_RESULT_REDACTED (const void*)-2
777779

778-
typedef enum ddog_FieldType {
779-
DDOG_FIELD_TYPE_STATIC,
780-
DDOG_FIELD_TYPE_ARG,
781-
DDOG_FIELD_TYPE_LOCAL,
782-
} ddog_FieldType;
783-
784780
typedef enum ddog_DebuggerType {
785781
DDOG_DEBUGGER_TYPE_DIAGNOSTICS,
786782
DDOG_DEBUGGER_TYPE_SNAPSHOTS,
787783
DDOG_DEBUGGER_TYPE_LOGS,
788784
} ddog_DebuggerType;
789785

786+
typedef enum ddog_FieldType {
787+
DDOG_FIELD_TYPE_STATIC,
788+
DDOG_FIELD_TYPE_ARG,
789+
DDOG_FIELD_TYPE_LOCAL,
790+
} ddog_FieldType;
791+
790792
typedef struct ddog_Entry ddog_Entry;
791793

792794
typedef struct ddog_HashMap_CowStr__Value ddog_HashMap_CowStr__Value;
@@ -915,6 +917,16 @@ typedef struct ddog_OwnedCharSlice {
915917
void (*free)(ddog_CharSlice);
916918
} ddog_OwnedCharSlice;
917919

920+
typedef enum ddog_LogLevel {
921+
DDOG_LOG_LEVEL_ERROR,
922+
DDOG_LOG_LEVEL_WARN,
923+
DDOG_LOG_LEVEL_DEBUG,
924+
} ddog_LogLevel;
925+
926+
typedef enum ddog_TelemetryWorkerBuilderBoolProperty {
927+
DDOG_TELEMETRY_WORKER_BUILDER_BOOL_PROPERTY_CONFIG_TELEMETRY_DEBUG_LOGGING_ENABLED,
928+
} ddog_TelemetryWorkerBuilderBoolProperty;
929+
918930
typedef enum ddog_TelemetryWorkerBuilderEndpointProperty {
919931
DDOG_TELEMETRY_WORKER_BUILDER_ENDPOINT_PROPERTY_CONFIG_ENDPOINT,
920932
} ddog_TelemetryWorkerBuilderEndpointProperty;
@@ -933,16 +945,6 @@ typedef enum ddog_TelemetryWorkerBuilderStrProperty {
933945
DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_RUNTIME_ID,
934946
} ddog_TelemetryWorkerBuilderStrProperty;
935947

936-
typedef enum ddog_TelemetryWorkerBuilderBoolProperty {
937-
DDOG_TELEMETRY_WORKER_BUILDER_BOOL_PROPERTY_CONFIG_TELEMETRY_DEBUG_LOGGING_ENABLED,
938-
} ddog_TelemetryWorkerBuilderBoolProperty;
939-
940-
typedef enum ddog_LogLevel {
941-
DDOG_LOG_LEVEL_ERROR,
942-
DDOG_LOG_LEVEL_WARN,
943-
DDOG_LOG_LEVEL_DEBUG,
944-
} ddog_LogLevel;
945-
946948
typedef struct ddog_TelemetryWorkerBuilder ddog_TelemetryWorkerBuilder;
947949

948950
/**
@@ -996,6 +998,12 @@ typedef struct ddog_AttributeAnyValueBytes ddog_AttributeAnyValueBytes;
996998
typedef struct ddog_AttributeArrayValueBytes ddog_AttributeArrayValueBytes;
997999

9981000

1001+
typedef enum ddog_DynamicInstrumentationConfigState {
1002+
DDOG_DYNAMIC_INSTRUMENTATION_CONFIG_STATE_ENABLED,
1003+
DDOG_DYNAMIC_INSTRUMENTATION_CONFIG_STATE_DISABLED,
1004+
DDOG_DYNAMIC_INSTRUMENTATION_CONFIG_STATE_NOT_SET,
1005+
} ddog_DynamicInstrumentationConfigState;
1006+
9991007
typedef enum ddog_Method {
10001008
DDOG_METHOD_GET = 0,
10011009
DDOG_METHOD_POST = 1,
@@ -1009,12 +1017,6 @@ typedef enum ddog_Method {
10091017
DDOG_METHOD_OTHER = 9,
10101018
} ddog_Method;
10111019

1012-
typedef enum ddog_DynamicInstrumentationConfigState {
1013-
DDOG_DYNAMIC_INSTRUMENTATION_CONFIG_STATE_ENABLED,
1014-
DDOG_DYNAMIC_INSTRUMENTATION_CONFIG_STATE_DISABLED,
1015-
DDOG_DYNAMIC_INSTRUMENTATION_CONFIG_STATE_NOT_SET,
1016-
} ddog_DynamicInstrumentationConfigState;
1017-
10181020
typedef struct ddog_AgentInfoReader ddog_AgentInfoReader;
10191021

10201022
typedef struct ddog_AgentRemoteConfigReader ddog_AgentRemoteConfigReader;
@@ -1094,28 +1096,37 @@ typedef struct ddog_SenderParameters {
10941096
ddog_CharSlice url;
10951097
} ddog_SenderParameters;
10961098

1099+
typedef enum ddog_crasht_BuildIdType {
1100+
DDOG_CRASHT_BUILD_ID_TYPE_GNU,
1101+
DDOG_CRASHT_BUILD_ID_TYPE_GO,
1102+
DDOG_CRASHT_BUILD_ID_TYPE_PDB,
1103+
DDOG_CRASHT_BUILD_ID_TYPE_SHA1,
1104+
} ddog_crasht_BuildIdType;
1105+
10971106
/**
1098-
* Stacktrace collection occurs in the context of a crashing process.
1099-
* If the stack is sufficiently corruputed, it is possible (but unlikely),
1100-
* for stack trace collection itself to crash.
1101-
* We recommend fully enabling stacktrace collection, but having an environment
1102-
* variable to allow downgrading the collector.
1107+
* Result type for runtime callback registration
11031108
*/
1104-
typedef enum ddog_crasht_StacktraceCollection {
1105-
/**
1106-
* Stacktrace collection occurs in the
1107-
*/
1108-
DDOG_CRASHT_STACKTRACE_COLLECTION_DISABLED,
1109-
DDOG_CRASHT_STACKTRACE_COLLECTION_WITHOUT_SYMBOLS,
1110-
/**
1111-
* This option uses `backtrace::resolve_frame_unsynchronized()` to gather symbol information
1112-
* and also unwind inlined functions. Enabling this feature will not only provide symbolic
1113-
* details, but may also yield additional or less stack frames compared to other
1114-
* configurations.
1115-
*/
1116-
DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_INPROCESS_SYMBOLS,
1117-
DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_SYMBOLS_IN_RECEIVER,
1118-
} ddog_crasht_StacktraceCollection;
1109+
typedef enum ddog_crasht_CallbackResult {
1110+
DDOG_CRASHT_CALLBACK_RESULT_OK,
1111+
DDOG_CRASHT_CALLBACK_RESULT_ERROR,
1112+
} ddog_crasht_CallbackResult;
1113+
1114+
typedef enum ddog_crasht_DemangleOptions {
1115+
DDOG_CRASHT_DEMANGLE_OPTIONS_COMPLETE,
1116+
DDOG_CRASHT_DEMANGLE_OPTIONS_NAME_ONLY,
1117+
} ddog_crasht_DemangleOptions;
1118+
1119+
typedef enum ddog_crasht_ErrorKind {
1120+
DDOG_CRASHT_ERROR_KIND_PANIC,
1121+
DDOG_CRASHT_ERROR_KIND_UNHANDLED_EXCEPTION,
1122+
DDOG_CRASHT_ERROR_KIND_UNIX_SIGNAL,
1123+
} ddog_crasht_ErrorKind;
1124+
1125+
typedef enum ddog_crasht_FileType {
1126+
DDOG_CRASHT_FILE_TYPE_APK,
1127+
DDOG_CRASHT_FILE_TYPE_ELF,
1128+
DDOG_CRASHT_FILE_TYPE_PE,
1129+
} ddog_crasht_FileType;
11191130

11201131
/**
11211132
* This enum represents operations a the tracked library might be engaged in.
@@ -1140,12 +1151,6 @@ typedef enum ddog_crasht_OpTypes {
11401151
DDOG_CRASHT_OP_TYPES_SIZE,
11411152
} ddog_crasht_OpTypes;
11421153

1143-
typedef enum ddog_crasht_ErrorKind {
1144-
DDOG_CRASHT_ERROR_KIND_PANIC,
1145-
DDOG_CRASHT_ERROR_KIND_UNHANDLED_EXCEPTION,
1146-
DDOG_CRASHT_ERROR_KIND_UNIX_SIGNAL,
1147-
} ddog_crasht_ErrorKind;
1148-
11491154
/**
11501155
* See https://man7.org/linux/man-pages/man2/sigaction.2.html
11511156
* MUST REMAIN IN SYNC WITH THE ENUM IN emit_sigcodes.c
@@ -1218,31 +1223,28 @@ typedef enum ddog_crasht_SignalNames {
12181223
DDOG_CRASHT_SIGNAL_NAMES_UNKNOWN,
12191224
} ddog_crasht_SignalNames;
12201225

1221-
typedef enum ddog_crasht_BuildIdType {
1222-
DDOG_CRASHT_BUILD_ID_TYPE_GNU,
1223-
DDOG_CRASHT_BUILD_ID_TYPE_GO,
1224-
DDOG_CRASHT_BUILD_ID_TYPE_PDB,
1225-
DDOG_CRASHT_BUILD_ID_TYPE_SHA1,
1226-
} ddog_crasht_BuildIdType;
1227-
1228-
typedef enum ddog_crasht_FileType {
1229-
DDOG_CRASHT_FILE_TYPE_APK,
1230-
DDOG_CRASHT_FILE_TYPE_ELF,
1231-
DDOG_CRASHT_FILE_TYPE_PE,
1232-
} ddog_crasht_FileType;
1233-
1234-
typedef enum ddog_crasht_DemangleOptions {
1235-
DDOG_CRASHT_DEMANGLE_OPTIONS_COMPLETE,
1236-
DDOG_CRASHT_DEMANGLE_OPTIONS_NAME_ONLY,
1237-
} ddog_crasht_DemangleOptions;
1238-
12391226
/**
1240-
* Result type for runtime callback registration
1227+
* Stacktrace collection occurs in the context of a crashing process.
1228+
* If the stack is sufficiently corruputed, it is possible (but unlikely),
1229+
* for stack trace collection itself to crash.
1230+
* We recommend fully enabling stacktrace collection, but having an environment
1231+
* variable to allow downgrading the collector.
12411232
*/
1242-
typedef enum ddog_crasht_CallbackResult {
1243-
DDOG_CRASHT_CALLBACK_RESULT_OK,
1244-
DDOG_CRASHT_CALLBACK_RESULT_ERROR,
1245-
} ddog_crasht_CallbackResult;
1233+
typedef enum ddog_crasht_StacktraceCollection {
1234+
/**
1235+
* Stacktrace collection occurs in the
1236+
*/
1237+
DDOG_CRASHT_STACKTRACE_COLLECTION_DISABLED,
1238+
DDOG_CRASHT_STACKTRACE_COLLECTION_WITHOUT_SYMBOLS,
1239+
/**
1240+
* This option uses `backtrace::resolve_frame_unsynchronized()` to gather symbol information
1241+
* and also unwind inlined functions. Enabling this feature will not only provide symbolic
1242+
* details, but may also yield additional or less stack frames compared to other
1243+
* configurations.
1244+
*/
1245+
DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_INPROCESS_SYMBOLS,
1246+
DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_SYMBOLS_IN_RECEIVER,
1247+
} ddog_crasht_StacktraceCollection;
12461248

12471249
typedef struct ddog_crasht_CrashInfo ddog_crasht_CrashInfo;
12481250

components-rs/crashtracker.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -661,7 +661,7 @@ struct ddog_VoidResult ddog_crasht_CrashInfoBuilder_with_thread_name(struct ddog
661661
* The `builder` can be null, but if non-null it must point to a Builder made by this module,
662662
* which has not previously been dropped.
663663
* All arguments must be valid.
664-
* This method requires that the builder has a UUID, siginfo, and metadata set
664+
* This method requires that the builder has a UUID and metadata set
665665
*/
666666
DDOG_CHECK_RETURN
667667
struct ddog_VoidResult ddog_crasht_CrashInfoBuilder_upload_ping_to_endpoint(struct ddog_crasht_Handle_CrashInfoBuilder *builder,

0 commit comments

Comments
 (0)