Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
249 changes: 125 additions & 124 deletions components-rs/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -264,15 +264,19 @@ typedef struct _zend_string _zend_string;

#define ddog_MultiTargetFetcher_DEFAULT_CLIENTS_LIMIT 100

typedef enum ddog_ConfigurationOrigin {
DDOG_CONFIGURATION_ORIGIN_ENV_VAR,
DDOG_CONFIGURATION_ORIGIN_CODE,
DDOG_CONFIGURATION_ORIGIN_DD_CONFIG,
DDOG_CONFIGURATION_ORIGIN_REMOTE_CONFIG,
DDOG_CONFIGURATION_ORIGIN_DEFAULT,
DDOG_CONFIGURATION_ORIGIN_LOCAL_STABLE_CONFIG,
DDOG_CONFIGURATION_ORIGIN_FLEET_STABLE_CONFIG,
} ddog_ConfigurationOrigin;
typedef enum ddog_Log {
DDOG_LOG_ERROR = 1,
DDOG_LOG_WARN = 2,
DDOG_LOG_INFO = 3,
DDOG_LOG_DEBUG = 4,
DDOG_LOG_TRACE = 5,
DDOG_LOG_DEPRECATED = (3 | ddog_LOG_ONCE),
DDOG_LOG_STARTUP = (3 | (2 << 4)),
DDOG_LOG_STARTUP_WARN = (1 | (2 << 4)),
DDOG_LOG_SPAN = (4 | (3 << 4)),
DDOG_LOG_SPAN_TRACE = (5 | (3 << 4)),
DDOG_LOG_HOOK_TRACE = (5 | (4 << 4)),
} ddog_Log;

typedef enum ddog_DynamicConfigUpdateMode {
DDOG_DYNAMIC_CONFIG_UPDATE_MODE_READ,
Expand All @@ -281,30 +285,16 @@ typedef enum ddog_DynamicConfigUpdateMode {
DDOG_DYNAMIC_CONFIG_UPDATE_MODE_RESTORE,
} ddog_DynamicConfigUpdateMode;

typedef enum ddog_EvaluateAt {
DDOG_EVALUATE_AT_ENTRY,
DDOG_EVALUATE_AT_EXIT,
} ddog_EvaluateAt;

typedef enum ddog_InBodyLocation {
DDOG_IN_BODY_LOCATION_NONE,
DDOG_IN_BODY_LOCATION_START,
DDOG_IN_BODY_LOCATION_END,
} ddog_InBodyLocation;

typedef enum ddog_Log {
DDOG_LOG_ERROR = 1,
DDOG_LOG_WARN = 2,
DDOG_LOG_INFO = 3,
DDOG_LOG_DEBUG = 4,
DDOG_LOG_TRACE = 5,
DDOG_LOG_DEPRECATED = (3 | ddog_LOG_ONCE),
DDOG_LOG_STARTUP = (3 | (2 << 4)),
DDOG_LOG_STARTUP_WARN = (1 | (2 << 4)),
DDOG_LOG_SPAN = (4 | (3 << 4)),
DDOG_LOG_SPAN_TRACE = (5 | (3 << 4)),
DDOG_LOG_HOOK_TRACE = (5 | (4 << 4)),
} ddog_Log;
typedef enum ddog_EvaluateAt {
DDOG_EVALUATE_AT_ENTRY,
DDOG_EVALUATE_AT_EXIT,
} ddog_EvaluateAt;

typedef enum ddog_MetricKind {
DDOG_METRIC_KIND_COUNT,
Expand All @@ -313,6 +303,36 @@ typedef enum ddog_MetricKind {
DDOG_METRIC_KIND_DISTRIBUTION,
} ddog_MetricKind;

typedef enum ddog_SpanProbeTarget {
DDOG_SPAN_PROBE_TARGET_ACTIVE,
DDOG_SPAN_PROBE_TARGET_ROOT,
} ddog_SpanProbeTarget;

typedef enum ddog_ProbeStatus {
DDOG_PROBE_STATUS_RECEIVED,
DDOG_PROBE_STATUS_INSTALLED,
DDOG_PROBE_STATUS_EMITTING,
DDOG_PROBE_STATUS_ERROR,
DDOG_PROBE_STATUS_BLOCKED,
DDOG_PROBE_STATUS_WARNING,
} ddog_ProbeStatus;

typedef enum ddog_ConfigurationOrigin {
DDOG_CONFIGURATION_ORIGIN_ENV_VAR,
DDOG_CONFIGURATION_ORIGIN_CODE,
DDOG_CONFIGURATION_ORIGIN_DD_CONFIG,
DDOG_CONFIGURATION_ORIGIN_REMOTE_CONFIG,
DDOG_CONFIGURATION_ORIGIN_DEFAULT,
DDOG_CONFIGURATION_ORIGIN_LOCAL_STABLE_CONFIG,
DDOG_CONFIGURATION_ORIGIN_FLEET_STABLE_CONFIG,
} ddog_ConfigurationOrigin;

typedef enum ddog_MetricType {
DDOG_METRIC_TYPE_GAUGE,
DDOG_METRIC_TYPE_COUNT,
DDOG_METRIC_TYPE_DISTRIBUTION,
} ddog_MetricType;

typedef enum ddog_MetricNamespace {
DDOG_METRIC_NAMESPACE_TRACERS,
DDOG_METRIC_NAMESPACE_PROFILERS,
Expand All @@ -327,20 +347,16 @@ typedef enum ddog_MetricNamespace {
DDOG_METRIC_NAMESPACE_SIDECAR,
} ddog_MetricNamespace;

typedef enum ddog_MetricType {
DDOG_METRIC_TYPE_GAUGE,
DDOG_METRIC_TYPE_COUNT,
DDOG_METRIC_TYPE_DISTRIBUTION,
} ddog_MetricType;

typedef enum ddog_ProbeStatus {
DDOG_PROBE_STATUS_RECEIVED,
DDOG_PROBE_STATUS_INSTALLED,
DDOG_PROBE_STATUS_EMITTING,
DDOG_PROBE_STATUS_ERROR,
DDOG_PROBE_STATUS_BLOCKED,
DDOG_PROBE_STATUS_WARNING,
} ddog_ProbeStatus;
typedef enum ddog_RemoteConfigProduct {
DDOG_REMOTE_CONFIG_PRODUCT_AGENT_CONFIG,
DDOG_REMOTE_CONFIG_PRODUCT_AGENT_TASK,
DDOG_REMOTE_CONFIG_PRODUCT_APM_TRACING,
DDOG_REMOTE_CONFIG_PRODUCT_ASM,
DDOG_REMOTE_CONFIG_PRODUCT_ASM_DATA,
DDOG_REMOTE_CONFIG_PRODUCT_ASM_DD,
DDOG_REMOTE_CONFIG_PRODUCT_ASM_FEATURES,
DDOG_REMOTE_CONFIG_PRODUCT_LIVE_DEBUGGER,
} ddog_RemoteConfigProduct;

typedef enum ddog_RemoteConfigCapabilities {
DDOG_REMOTE_CONFIG_CAPABILITIES_ASM_ACTIVATION = 1,
Expand Down Expand Up @@ -388,22 +404,6 @@ typedef enum ddog_RemoteConfigCapabilities {
DDOG_REMOTE_CONFIG_CAPABILITIES_ASM_TRACE_TAGGING_RULES = 43,
} ddog_RemoteConfigCapabilities;

typedef enum ddog_RemoteConfigProduct {
DDOG_REMOTE_CONFIG_PRODUCT_AGENT_CONFIG,
DDOG_REMOTE_CONFIG_PRODUCT_AGENT_TASK,
DDOG_REMOTE_CONFIG_PRODUCT_APM_TRACING,
DDOG_REMOTE_CONFIG_PRODUCT_ASM,
DDOG_REMOTE_CONFIG_PRODUCT_ASM_DATA,
DDOG_REMOTE_CONFIG_PRODUCT_ASM_DD,
DDOG_REMOTE_CONFIG_PRODUCT_ASM_FEATURES,
DDOG_REMOTE_CONFIG_PRODUCT_LIVE_DEBUGGER,
} ddog_RemoteConfigProduct;

typedef enum ddog_SpanProbeTarget {
DDOG_SPAN_PROBE_TARGET_ACTIVE,
DDOG_SPAN_PROBE_TARGET_ROOT,
} ddog_SpanProbeTarget;

typedef struct ddog_DebuggerPayload ddog_DebuggerPayload;

typedef struct ddog_DslString ddog_DslString;
Expand Down Expand Up @@ -436,6 +436,8 @@ typedef struct ddog_SidecarActionsBuffer ddog_SidecarActionsBuffer;
*/
typedef struct ddog_SidecarTransport ddog_SidecarTransport;

typedef struct _zend_string *ddog_OwnedZendString;

/**
* Holds the raw parts of a Rust Vec; it should only be created from Rust,
* never from C.
Expand All @@ -451,8 +453,6 @@ typedef struct ddog_Tag {
const struct ddog_DslString *value;
} ddog_Tag;

typedef struct _zend_string *ddog_OwnedZendString;

typedef struct _zend_string *(*ddog_DynamicConfigUpdate)(ddog_CharSlice config,
ddog_OwnedZendString value,
enum ddog_DynamicConfigUpdateMode mode);
Expand Down Expand Up @@ -774,17 +774,18 @@ typedef struct ddog_DebuggerValue ddog_DebuggerValue;

#define ddog_EVALUATOR_RESULT_REDACTED (const void*)-2

typedef enum ddog_DebuggerType {
DDOG_DEBUGGER_TYPE_DIAGNOSTICS,
DDOG_DEBUGGER_TYPE_LOGS,
} ddog_DebuggerType;

typedef enum ddog_FieldType {
DDOG_FIELD_TYPE_STATIC,
DDOG_FIELD_TYPE_ARG,
DDOG_FIELD_TYPE_LOCAL,
} ddog_FieldType;

typedef enum ddog_DebuggerType {
DDOG_DEBUGGER_TYPE_DIAGNOSTICS,
DDOG_DEBUGGER_TYPE_SNAPSHOTS,
DDOG_DEBUGGER_TYPE_LOGS,
} ddog_DebuggerType;

typedef struct ddog_Entry ddog_Entry;

typedef struct ddog_HashMap_CowStr__Value ddog_HashMap_CowStr__Value;
Expand Down Expand Up @@ -913,16 +914,6 @@ typedef struct ddog_OwnedCharSlice {
void (*free)(ddog_CharSlice);
} ddog_OwnedCharSlice;

typedef enum ddog_LogLevel {
DDOG_LOG_LEVEL_ERROR,
DDOG_LOG_LEVEL_WARN,
DDOG_LOG_LEVEL_DEBUG,
} ddog_LogLevel;

typedef enum ddog_TelemetryWorkerBuilderBoolProperty {
DDOG_TELEMETRY_WORKER_BUILDER_BOOL_PROPERTY_CONFIG_TELEMETRY_DEBUG_LOGGING_ENABLED,
} ddog_TelemetryWorkerBuilderBoolProperty;

typedef enum ddog_TelemetryWorkerBuilderEndpointProperty {
DDOG_TELEMETRY_WORKER_BUILDER_ENDPOINT_PROPERTY_CONFIG_ENDPOINT,
} ddog_TelemetryWorkerBuilderEndpointProperty;
Expand All @@ -941,6 +932,16 @@ typedef enum ddog_TelemetryWorkerBuilderStrProperty {
DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_RUNTIME_ID,
} ddog_TelemetryWorkerBuilderStrProperty;

typedef enum ddog_TelemetryWorkerBuilderBoolProperty {
DDOG_TELEMETRY_WORKER_BUILDER_BOOL_PROPERTY_CONFIG_TELEMETRY_DEBUG_LOGGING_ENABLED,
} ddog_TelemetryWorkerBuilderBoolProperty;

typedef enum ddog_LogLevel {
DDOG_LOG_LEVEL_ERROR,
DDOG_LOG_LEVEL_WARN,
DDOG_LOG_LEVEL_DEBUG,
} ddog_LogLevel;

typedef struct ddog_TelemetryWorkerBuilder ddog_TelemetryWorkerBuilder;

/**
Expand Down Expand Up @@ -1065,37 +1066,28 @@ typedef struct ddog_SenderParameters {
ddog_CharSlice url;
} ddog_SenderParameters;

typedef enum ddog_crasht_BuildIdType {
DDOG_CRASHT_BUILD_ID_TYPE_GNU,
DDOG_CRASHT_BUILD_ID_TYPE_GO,
DDOG_CRASHT_BUILD_ID_TYPE_PDB,
DDOG_CRASHT_BUILD_ID_TYPE_SHA1,
} ddog_crasht_BuildIdType;

/**
* Result type for runtime callback registration
* Stacktrace collection occurs in the context of a crashing process.
* If the stack is sufficiently corruputed, it is possible (but unlikely),
* for stack trace collection itself to crash.
* We recommend fully enabling stacktrace collection, but having an environment
* variable to allow downgrading the collector.
*/
typedef enum ddog_crasht_CallbackResult {
DDOG_CRASHT_CALLBACK_RESULT_OK,
DDOG_CRASHT_CALLBACK_RESULT_ERROR,
} ddog_crasht_CallbackResult;

typedef enum ddog_crasht_DemangleOptions {
DDOG_CRASHT_DEMANGLE_OPTIONS_COMPLETE,
DDOG_CRASHT_DEMANGLE_OPTIONS_NAME_ONLY,
} ddog_crasht_DemangleOptions;

typedef enum ddog_crasht_ErrorKind {
DDOG_CRASHT_ERROR_KIND_PANIC,
DDOG_CRASHT_ERROR_KIND_UNHANDLED_EXCEPTION,
DDOG_CRASHT_ERROR_KIND_UNIX_SIGNAL,
} ddog_crasht_ErrorKind;

typedef enum ddog_crasht_FileType {
DDOG_CRASHT_FILE_TYPE_APK,
DDOG_CRASHT_FILE_TYPE_ELF,
DDOG_CRASHT_FILE_TYPE_PE,
} ddog_crasht_FileType;
typedef enum ddog_crasht_StacktraceCollection {
/**
* Stacktrace collection occurs in the
*/
DDOG_CRASHT_STACKTRACE_COLLECTION_DISABLED,
DDOG_CRASHT_STACKTRACE_COLLECTION_WITHOUT_SYMBOLS,
/**
* This option uses `backtrace::resolve_frame_unsynchronized()` to gather symbol information
* and also unwind inlined functions. Enabling this feature will not only provide symbolic
* details, but may also yield additional or less stack frames compared to other
* configurations.
*/
DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_INPROCESS_SYMBOLS,
DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_SYMBOLS_IN_RECEIVER,
} ddog_crasht_StacktraceCollection;

/**
* This enum represents operations a the tracked library might be engaged in.
Expand All @@ -1120,6 +1112,12 @@ typedef enum ddog_crasht_OpTypes {
DDOG_CRASHT_OP_TYPES_SIZE,
} ddog_crasht_OpTypes;

typedef enum ddog_crasht_ErrorKind {
DDOG_CRASHT_ERROR_KIND_PANIC,
DDOG_CRASHT_ERROR_KIND_UNHANDLED_EXCEPTION,
DDOG_CRASHT_ERROR_KIND_UNIX_SIGNAL,
} ddog_crasht_ErrorKind;

/**
* See https://man7.org/linux/man-pages/man2/sigaction.2.html
* MUST REMAIN IN SYNC WITH THE ENUM IN emit_sigcodes.c
Expand Down Expand Up @@ -1192,28 +1190,31 @@ typedef enum ddog_crasht_SignalNames {
DDOG_CRASHT_SIGNAL_NAMES_UNKNOWN,
} ddog_crasht_SignalNames;

typedef enum ddog_crasht_BuildIdType {
DDOG_CRASHT_BUILD_ID_TYPE_GNU,
DDOG_CRASHT_BUILD_ID_TYPE_GO,
DDOG_CRASHT_BUILD_ID_TYPE_PDB,
DDOG_CRASHT_BUILD_ID_TYPE_SHA1,
} ddog_crasht_BuildIdType;

typedef enum ddog_crasht_FileType {
DDOG_CRASHT_FILE_TYPE_APK,
DDOG_CRASHT_FILE_TYPE_ELF,
DDOG_CRASHT_FILE_TYPE_PE,
} ddog_crasht_FileType;

typedef enum ddog_crasht_DemangleOptions {
DDOG_CRASHT_DEMANGLE_OPTIONS_COMPLETE,
DDOG_CRASHT_DEMANGLE_OPTIONS_NAME_ONLY,
} ddog_crasht_DemangleOptions;

/**
* Stacktrace collection occurs in the context of a crashing process.
* If the stack is sufficiently corruputed, it is possible (but unlikely),
* for stack trace collection itself to crash.
* We recommend fully enabling stacktrace collection, but having an environment
* variable to allow downgrading the collector.
* Result type for runtime callback registration
*/
typedef enum ddog_crasht_StacktraceCollection {
/**
* Stacktrace collection occurs in the
*/
DDOG_CRASHT_STACKTRACE_COLLECTION_DISABLED,
DDOG_CRASHT_STACKTRACE_COLLECTION_WITHOUT_SYMBOLS,
/**
* This option uses `backtrace::resolve_frame_unsynchronized()` to gather symbol information
* and also unwind inlined functions. Enabling this feature will not only provide symbolic
* details, but may also yield additional or less stack frames compared to other
* configurations.
*/
DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_INPROCESS_SYMBOLS,
DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_SYMBOLS_IN_RECEIVER,
} ddog_crasht_StacktraceCollection;
typedef enum ddog_crasht_CallbackResult {
DDOG_CRASHT_CALLBACK_RESULT_OK,
DDOG_CRASHT_CALLBACK_RESULT_ERROR,
} ddog_crasht_CallbackResult;

typedef struct ddog_crasht_CrashInfo ddog_crasht_CrashInfo;

Expand Down Expand Up @@ -1291,7 +1292,7 @@ typedef struct ddog_crasht_Config {
/**
* Timeout in milliseconds before the signal handler starts tearing things down to return.
* If 0, uses the default timeout as specified in
* `datadog_crashtracker::shared::constants::DD_CRASHTRACK_DEFAULT_TIMEOUT`. Otherwise, uses
* `libdd_crashtracker::shared::constants::DD_CRASHTRACK_DEFAULT_TIMEOUT`. Otherwise, uses
* the specified timeout value.
* This is given as a uint32_t, but the actual timeout needs to fit inside of an i32 (max
* 2^31-1). This is a limitation of the various interfaces used to guarantee the timeout.
Expand Down
4 changes: 2 additions & 2 deletions components-rs/crashtracker.h
Original file line number Diff line number Diff line change
Expand Up @@ -854,7 +854,7 @@ struct ddog_StringWrapperResult ddog_crasht_demangle(ddog_CharSlice name,
* signal handler is dangerous, so we fork a sidecar to do the stuff we aren't
* allowed to do in the handler.
*
* See comments in [datadog-crashtracker/lib.rs] for a full architecture description.
* See comments in [libdd-crashtracker/lib.rs] for a full architecture description.
* # Safety
* No safety concerns
*/
Expand All @@ -868,7 +868,7 @@ DDOG_CHECK_RETURN struct ddog_VoidResult ddog_crasht_receiver_entry_point_stdin(
* signal handler is dangerous, so we fork a sidecar to do the stuff we aren't
* allowed to do in the handler.
*
* See comments in [datadog-crashtracker/lib.rs] for a full architecture
* See comments in [libdd-crashtracker/lib.rs] for a full architecture
* description.
* # Safety
* No safety concerns
Expand Down
Loading
Loading