libdatadog 25.0.0.1.0-aarch64-linux → 29.0.0.1.0-aarch64-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +6 -0
- data/LICENSE.Apache +200 -0
- data/LICENSE.BSD3 +24 -0
- data/NOTICE +4 -0
- data/lib/libdatadog/version.rb +1 -1
- data/lib/libdatadog.rb +6 -0
- data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +17987 -11921
- data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/common.h +304 -192
- data/vendor/{libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/crashtracker.h +55 -1
- data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h +6 -1
- data/vendor/{libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/library-config.h +2 -0
- data/vendor/{libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/profiling.h +150 -64
- data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +17987 -11921
- data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/common.h +304 -192
- data/vendor/{libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/crashtracker.h +55 -1
- data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/data-pipeline.h +6 -1
- data/vendor/{libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/library-config.h +2 -0
- data/vendor/{libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/profiling.h +150 -64
- data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- metadata +39 -35
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/telemetry.h +0 -0
|
@@ -131,6 +131,45 @@ struct ddog_VoidResult ddog_crasht_init_without_receiver(struct ddog_crasht_Conf
|
|
|
131
131
|
*/
|
|
132
132
|
struct ddog_crasht_Slice_CInt ddog_crasht_default_signals(void);
|
|
133
133
|
|
|
134
|
+
/**
|
|
135
|
+
* Report an unhandled exception as a crash event.
|
|
136
|
+
*
|
|
137
|
+
* This function sends a crash report for an unhandled exception detected
|
|
138
|
+
* by the runtime. It is intended to be called when the process is in a
|
|
139
|
+
* terminal state due to an unhandled exception.
|
|
140
|
+
*
|
|
141
|
+
* # Parameters
|
|
142
|
+
* - `error_type`: Optional type/class of the exception (e.g. "NullPointerException"). Pass empty
|
|
143
|
+
* CharSlice for unknown.
|
|
144
|
+
* - `error_message`: Optional error message. Pass empty CharSlice for no message.
|
|
145
|
+
* - `runtime_stack`: Stack trace from the runtime. Consumed by this call.
|
|
146
|
+
*
|
|
147
|
+
* If the crash-tracker has not been initialized, this function is a no-op.
|
|
148
|
+
*
|
|
149
|
+
* # Side effects
|
|
150
|
+
* This function disables the signal-based crash handler before performing
|
|
151
|
+
* any work. This means that if the process receives a fatal signal (SIGSEGV)
|
|
152
|
+
* during or after this call, the crashtracker will not produce a
|
|
153
|
+
* second crash report. The previous signal handler (if any) will still be
|
|
154
|
+
* chained.
|
|
155
|
+
*
|
|
156
|
+
* # Failure mode
|
|
157
|
+
* If a fatal signal occurs while this function is in progress, the calling
|
|
158
|
+
* process is in an unrecoverable state; the crashtracker cannot report the
|
|
159
|
+
* secondary fault and the caller's own signal handler (if any) will execute
|
|
160
|
+
* in a potentially corrupted context. Callers should treat this function as a
|
|
161
|
+
* terminal operation and exit shortly after it returns.
|
|
162
|
+
*
|
|
163
|
+
* # Safety
|
|
164
|
+
* Crash-tracking functions are not reentrant.
|
|
165
|
+
* No other crash-handler functions should be called concurrently.
|
|
166
|
+
* The `runtime_stack` handle must be valid and will be consumed.
|
|
167
|
+
*/
|
|
168
|
+
DDOG_CHECK_RETURN
|
|
169
|
+
struct ddog_VoidResult ddog_crasht_report_unhandled_exception(ddog_CharSlice error_type,
|
|
170
|
+
ddog_CharSlice error_message,
|
|
171
|
+
struct ddog_crasht_Handle_StackTrace *runtime_stack);
|
|
172
|
+
|
|
134
173
|
/**
|
|
135
174
|
* Removes all existing additional tags
|
|
136
175
|
* Expected to be used after a fork, to reset the additional tags on the child
|
|
@@ -646,12 +685,27 @@ DDOG_CHECK_RETURN
|
|
|
646
685
|
struct ddog_VoidResult ddog_crasht_CrashInfoBuilder_with_message(struct ddog_crasht_Handle_CrashInfoBuilder *builder,
|
|
647
686
|
ddog_CharSlice message);
|
|
648
687
|
|
|
688
|
+
/**
|
|
689
|
+
* # Safety
|
|
690
|
+
* The `builder` can be null, but if non-null it must point to a Builder made by this module,
|
|
691
|
+
* which has not previously been dropped.
|
|
692
|
+
* The CharSlice must be valid.
|
|
693
|
+
*/
|
|
694
|
+
DDOG_CHECK_RETURN
|
|
695
|
+
struct ddog_VoidResult ddog_crasht_CrashInfoBuilder_with_thread_name(struct ddog_crasht_Handle_CrashInfoBuilder *builder,
|
|
696
|
+
ddog_CharSlice thread_name);
|
|
697
|
+
|
|
649
698
|
/**
|
|
650
699
|
* # Safety
|
|
651
700
|
* The `builder` can be null, but if non-null it must point to a Builder made by this module,
|
|
652
701
|
* which has not previously been dropped.
|
|
653
702
|
* All arguments must be valid.
|
|
654
|
-
* This method requires that the builder has
|
|
703
|
+
* This method requires that the builder has `metadata` and `kind` set
|
|
704
|
+
* Applications can add `message` or `sig_info` to the builder to provide additional context.
|
|
705
|
+
* If set, the data will be used to derive the crash ping message in the order of
|
|
706
|
+
* - an explicit message set with `with_message`
|
|
707
|
+
* - sig_info set with `with_sig_info`
|
|
708
|
+
* - kind set with `with_kind`
|
|
655
709
|
*/
|
|
656
710
|
DDOG_CHECK_RETURN
|
|
657
711
|
struct ddog_VoidResult ddog_crasht_CrashInfoBuilder_upload_ping_to_endpoint(struct ddog_crasht_Handle_CrashInfoBuilder *builder,
|
|
@@ -127,6 +127,12 @@ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_compute_stats(str
|
|
|
127
127
|
struct ddog_TraceExporterError *ddog_trace_exporter_config_set_client_computed_stats(struct ddog_TraceExporterConfig *config,
|
|
128
128
|
bool client_computed_stats);
|
|
129
129
|
|
|
130
|
+
/**
|
|
131
|
+
* Sets the process tags to be included in the stats payload.
|
|
132
|
+
*/
|
|
133
|
+
struct ddog_TraceExporterError *ddog_trace_exporter_config_set_process_tags(struct ddog_TraceExporterConfig *config,
|
|
134
|
+
ddog_CharSlice process_tags);
|
|
135
|
+
|
|
130
136
|
/**
|
|
131
137
|
* Sets the `X-Datadog-Test-Session-Token` header. Only used for testing with the test agent.
|
|
132
138
|
*/
|
|
@@ -173,7 +179,6 @@ void ddog_trace_exporter_free(struct ddog_TraceExporter *handle);
|
|
|
173
179
|
*/
|
|
174
180
|
struct ddog_TraceExporterError *ddog_trace_exporter_send(const struct ddog_TraceExporter *handle,
|
|
175
181
|
ddog_ByteSlice trace,
|
|
176
|
-
uintptr_t trace_count,
|
|
177
182
|
struct ddog_TraceExporterResponse **response_out);
|
|
178
183
|
|
|
179
184
|
#ifdef __cplusplus
|
|
@@ -91,6 +91,8 @@ void ddog_tracer_metadata_set(struct ddog_TracerMetadata *ptr,
|
|
|
91
91
|
|
|
92
92
|
/**
|
|
93
93
|
* Serializes the `TracerMetadata` into a platform-specific memory handle (e.g., memfd on Linux).
|
|
94
|
+
* This function also attempts to publish the tracer metadata as an OTel process context
|
|
95
|
+
* separately, but will ignore resulting errors.
|
|
94
96
|
*
|
|
95
97
|
* # Safety
|
|
96
98
|
* - `ptr` must be a valid, non-null pointer to a `TracerMetadata`.
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
#include <stdbool.h>
|
|
11
11
|
#include <stddef.h>
|
|
12
12
|
#include <stdint.h>
|
|
13
|
+
// Forward declarations for types used in common.h to avoid circular dependencies
|
|
13
14
|
#include "common.h"
|
|
14
15
|
struct TokioCancellationToken;
|
|
15
16
|
|
|
@@ -61,16 +62,27 @@ DDOG_CHECK_RETURN struct ddog_prof_Exporter_Slice_File ddog_prof_Exporter_Slice_
|
|
|
61
62
|
* Creates an endpoint that uses the agent.
|
|
62
63
|
* # Arguments
|
|
63
64
|
* * `base_url` - Contains a URL with scheme, host, and port e.g. "https://agent:8126/".
|
|
65
|
+
* * `timeout_ms` - Timeout in milliseconds. Use 0 for default timeout (3000ms).
|
|
66
|
+
* * `use_system_resolver` - If true, use the system DNS resolver (less fork-safe). If false, the
|
|
67
|
+
* default in-process resolver is used (fork-safe).
|
|
64
68
|
*/
|
|
65
|
-
struct ddog_prof_Endpoint ddog_prof_Endpoint_agent(ddog_CharSlice base_url
|
|
69
|
+
struct ddog_prof_Endpoint ddog_prof_Endpoint_agent(ddog_CharSlice base_url,
|
|
70
|
+
uint64_t timeout_ms,
|
|
71
|
+
bool use_system_resolver);
|
|
66
72
|
|
|
67
73
|
/**
|
|
68
74
|
* Creates an endpoint that uses the Datadog intake directly aka agentless.
|
|
69
75
|
* # Arguments
|
|
70
76
|
* * `site` - Contains a host and port e.g. "datadoghq.com".
|
|
71
77
|
* * `api_key` - Contains the Datadog API key.
|
|
78
|
+
* * `timeout_ms` - Timeout in milliseconds. Use 0 for default timeout (3000ms).
|
|
79
|
+
* * `use_system_resolver` - If true, use the system DNS resolver (less fork-safe). If false, the
|
|
80
|
+
* default in-process resolver is used (fork-safe).
|
|
72
81
|
*/
|
|
73
|
-
struct ddog_prof_Endpoint ddog_prof_Endpoint_agentless(ddog_CharSlice site,
|
|
82
|
+
struct ddog_prof_Endpoint ddog_prof_Endpoint_agentless(ddog_CharSlice site,
|
|
83
|
+
ddog_CharSlice api_key,
|
|
84
|
+
uint64_t timeout_ms,
|
|
85
|
+
bool use_system_resolver);
|
|
74
86
|
|
|
75
87
|
/**
|
|
76
88
|
* Creates an endpoint that writes to a file.
|
|
@@ -94,7 +106,8 @@ struct ddog_prof_Endpoint ddog_Endpoint_file(ddog_CharSlice filename);
|
|
|
94
106
|
* * `family` - Profile family, e.g. "ruby"
|
|
95
107
|
* * `tags` - Tags to include with every profile reported by this exporter. It's also possible to
|
|
96
108
|
* include profile-specific tags, see `additional_tags` on `profile_exporter_build`.
|
|
97
|
-
* * `endpoint` - Configuration for reporting data
|
|
109
|
+
* * `endpoint` - Configuration for reporting data (includes use_system_resolver for
|
|
110
|
+
* Agent/Agentless).
|
|
98
111
|
* # Safety
|
|
99
112
|
* All pointers must refer to valid objects of the correct types.
|
|
100
113
|
*/
|
|
@@ -105,16 +118,6 @@ struct ddog_prof_ProfileExporter_Result ddog_prof_Exporter_new(ddog_CharSlice pr
|
|
|
105
118
|
const struct ddog_Vec_Tag *tags,
|
|
106
119
|
struct ddog_prof_Endpoint endpoint);
|
|
107
120
|
|
|
108
|
-
/**
|
|
109
|
-
* Sets the value for the exporter's timeout.
|
|
110
|
-
* # Arguments
|
|
111
|
-
* * `exporter` - ProfileExporter instance.
|
|
112
|
-
* * `timeout_ms` - timeout in milliseconds.
|
|
113
|
-
*/
|
|
114
|
-
DDOG_CHECK_RETURN
|
|
115
|
-
struct ddog_VoidResult ddog_prof_Exporter_set_timeout(struct ddog_prof_ProfileExporter *exporter,
|
|
116
|
-
uint64_t timeout_ms);
|
|
117
|
-
|
|
118
121
|
/**
|
|
119
122
|
* # Safety
|
|
120
123
|
* The `exporter` may be null, but if non-null the pointer must point to a
|
|
@@ -124,58 +127,30 @@ struct ddog_VoidResult ddog_prof_Exporter_set_timeout(struct ddog_prof_ProfileEx
|
|
|
124
127
|
void ddog_prof_Exporter_drop(struct ddog_prof_ProfileExporter *exporter);
|
|
125
128
|
|
|
126
129
|
/**
|
|
127
|
-
*
|
|
128
|
-
* profile data supplied. If unsuccessful, it returns an error message.
|
|
129
|
-
*
|
|
130
|
-
* For details on the `optional_internal_metadata_json`, please reference the Datadog-internal
|
|
131
|
-
* "RFC: Attaching internal metadata to pprof profiles".
|
|
132
|
-
* If you use this parameter, please update the RFC with your use-case, so we can keep track of how
|
|
133
|
-
* this is getting used.
|
|
134
|
-
*
|
|
135
|
-
* For details on the `optional_info_json`, please reference the Datadog-internal
|
|
136
|
-
* "RFC: Pprof System Info Support".
|
|
137
|
-
*
|
|
138
|
-
* # Safety
|
|
139
|
-
* The `exporter`, `optional_additional_stats`, and `optional_endpoint_stats` args should be
|
|
140
|
-
* valid objects created by this module.
|
|
141
|
-
* NULL is allowed for `optional_additional_tags`, `optional_endpoints_stats`,
|
|
142
|
-
* `optional_internal_metadata_json` and `optional_info_json`.
|
|
143
|
-
* Consumes the `SerializedProfile`
|
|
144
|
-
*/
|
|
145
|
-
DDOG_CHECK_RETURN
|
|
146
|
-
struct ddog_prof_Request_Result ddog_prof_Exporter_Request_build(struct ddog_prof_ProfileExporter *exporter,
|
|
147
|
-
struct ddog_prof_EncodedProfile *profile,
|
|
148
|
-
struct ddog_prof_Exporter_Slice_File files_to_compress_and_export,
|
|
149
|
-
struct ddog_prof_Exporter_Slice_File files_to_export_unmodified,
|
|
150
|
-
const struct ddog_Vec_Tag *optional_additional_tags,
|
|
151
|
-
const ddog_CharSlice *optional_process_tags,
|
|
152
|
-
const ddog_CharSlice *optional_internal_metadata_json,
|
|
153
|
-
const ddog_CharSlice *optional_info_json);
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* # Safety
|
|
157
|
-
* Each pointer of `request` may be null, but if non-null the inner-most
|
|
158
|
-
* pointer must point to a valid `ddog_prof_Exporter_Request` object made by
|
|
159
|
-
* the Rust Global allocator.
|
|
160
|
-
*/
|
|
161
|
-
void ddog_prof_Exporter_Request_drop(struct ddog_prof_Request *request);
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Sends the request, returning the HttpStatus.
|
|
130
|
+
* Builds a request and sends it, returning the HttpStatus.
|
|
165
131
|
*
|
|
166
132
|
* # Arguments
|
|
167
|
-
* * `exporter` - Borrows the exporter
|
|
168
|
-
* * `
|
|
169
|
-
*
|
|
170
|
-
* * `
|
|
133
|
+
* * `exporter` - Borrows the exporter.
|
|
134
|
+
* * `profile` - Takes ownership of the profile.
|
|
135
|
+
* * `files_to_compress_and_export` - Files to compress and attach to the profile.
|
|
136
|
+
* * `optional_additional_tags` - Additional tags to include with this profile.
|
|
137
|
+
* * `optional_process_tags` - Process-level tags as a comma-separated string.
|
|
138
|
+
* * `optional_internal_metadata_json` - Internal metadata as a JSON string.
|
|
139
|
+
* * `optional_info_json` - System info as a JSON string.
|
|
140
|
+
* * `cancel` - Optional cancellation token.
|
|
171
141
|
*
|
|
172
142
|
* # Safety
|
|
173
|
-
* All non-null arguments MUST have been created by
|
|
143
|
+
* All non-null arguments MUST have been created by APIs in this module.
|
|
174
144
|
*/
|
|
175
145
|
DDOG_CHECK_RETURN
|
|
176
|
-
struct ddog_prof_Result_HttpStatus
|
|
177
|
-
|
|
178
|
-
|
|
146
|
+
struct ddog_prof_Result_HttpStatus ddog_prof_Exporter_send_blocking(struct ddog_prof_ProfileExporter *exporter,
|
|
147
|
+
struct ddog_prof_EncodedProfile *profile,
|
|
148
|
+
struct ddog_prof_Exporter_Slice_File files_to_compress_and_export,
|
|
149
|
+
const struct ddog_Vec_Tag *optional_additional_tags,
|
|
150
|
+
const ddog_CharSlice *optional_process_tags,
|
|
151
|
+
const ddog_CharSlice *optional_internal_metadata_json,
|
|
152
|
+
const ddog_CharSlice *optional_info_json,
|
|
153
|
+
struct ddog_CancellationToken *cancel);
|
|
179
154
|
|
|
180
155
|
/**
|
|
181
156
|
* Can be passed as an argument to send and then be used to asynchronously cancel it from a
|
|
@@ -226,6 +201,112 @@ bool ddog_CancellationToken_cancel(struct ddog_CancellationToken *cancel);
|
|
|
226
201
|
*/
|
|
227
202
|
void ddog_CancellationToken_drop(struct ddog_CancellationToken *token);
|
|
228
203
|
|
|
204
|
+
/**
|
|
205
|
+
* Creates a new ExporterManager with a background worker thread.
|
|
206
|
+
*
|
|
207
|
+
* The ExporterManager provides asynchronous profle export capabilities through a
|
|
208
|
+
* background worker thread and bounded channel.
|
|
209
|
+
*
|
|
210
|
+
* # Arguments
|
|
211
|
+
* * `exporter` - Takes ownership of the ProfileExporter to use for sending profiles.
|
|
212
|
+
*
|
|
213
|
+
* # Safety
|
|
214
|
+
* The `exporter` must point to a valid ProfileExporter that has not been dropped.
|
|
215
|
+
*/
|
|
216
|
+
DDOG_CHECK_RETURN
|
|
217
|
+
struct ddog_prof_Result_HandleExporterManager ddog_prof_ExporterManager_new(struct ddog_prof_ProfileExporter *exporter);
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Queues a profile to be sent asynchronously by the background worker thread.
|
|
221
|
+
*
|
|
222
|
+
* **Important**: This function resets the profile and queues the *previous* profile data.
|
|
223
|
+
* After calling this, the profile will be empty and ready for new samples.
|
|
224
|
+
*
|
|
225
|
+
* # Arguments
|
|
226
|
+
* * `manager` - Borrows the ExporterManager.
|
|
227
|
+
* * `profile` - Takes ownership of the profile to send.
|
|
228
|
+
* * `files_to_compress_and_export` - Files to compress and attach to the profile.
|
|
229
|
+
* * `optional_additional_tags` - Additional tags to include with this profile.
|
|
230
|
+
* * `optional_process_tags` - Process-level tags as a comma-separated string.
|
|
231
|
+
* * `optional_internal_metadata_json` - Internal metadata as a JSON string.
|
|
232
|
+
* * `optional_info_json` - System info as a JSON string.
|
|
233
|
+
*
|
|
234
|
+
* # Safety
|
|
235
|
+
* All non-null arguments MUST have been created by APIs in this module.
|
|
236
|
+
*/
|
|
237
|
+
DDOG_CHECK_RETURN
|
|
238
|
+
struct ddog_VoidResult ddog_prof_ExporterManager_queue(struct ddog_prof_Handle_ExporterManager *manager,
|
|
239
|
+
struct ddog_prof_EncodedProfile *profile,
|
|
240
|
+
struct ddog_prof_Exporter_Slice_File files_to_compress_and_export,
|
|
241
|
+
const struct ddog_Vec_Tag *optional_additional_tags,
|
|
242
|
+
const ddog_CharSlice *optional_process_tags,
|
|
243
|
+
const ddog_CharSlice *optional_internal_metadata_json,
|
|
244
|
+
const ddog_CharSlice *optional_info_json);
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Aborts the manager, stopping the worker thread and returning inflight requests.
|
|
248
|
+
*
|
|
249
|
+
* **Note**: This consumes the manager - it cannot be used after calling abort.
|
|
250
|
+
*
|
|
251
|
+
* # Arguments
|
|
252
|
+
* * `manager` - Takes ownership of the ExporterManager.
|
|
253
|
+
*
|
|
254
|
+
* # Safety
|
|
255
|
+
* The `manager` must point to a valid ExporterManager that has not been dropped.
|
|
256
|
+
*/
|
|
257
|
+
DDOG_CHECK_RETURN
|
|
258
|
+
struct ddog_VoidResult ddog_prof_ExporterManager_abort(struct ddog_prof_Handle_ExporterManager *manager);
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Suspends the manager before forking (prefork).
|
|
262
|
+
*
|
|
263
|
+
* **Note**: This consumes the manager - it cannot be used after calling prefork.
|
|
264
|
+
*
|
|
265
|
+
* # Arguments
|
|
266
|
+
* * `manager` - Takes ownership of the ExporterManager.
|
|
267
|
+
*
|
|
268
|
+
* # Safety
|
|
269
|
+
* The `manager` must point to a valid ExporterManager that has not been dropped.
|
|
270
|
+
*/
|
|
271
|
+
DDOG_CHECK_RETURN
|
|
272
|
+
struct ddog_VoidResult ddog_prof_ExporterManager_prefork(struct ddog_prof_Handle_ExporterManager *manager);
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Creates a new manager in the child process after forking (postfork_child).
|
|
276
|
+
*
|
|
277
|
+
* Inflight requests from the parent are discarded in the child.
|
|
278
|
+
*
|
|
279
|
+
* # Arguments
|
|
280
|
+
* * `suspended` - Takes ownership of the suspended ExporterManager.
|
|
281
|
+
*
|
|
282
|
+
* # Safety
|
|
283
|
+
* The `suspended` must point to a valid suspended ExporterManager that has not been dropped.
|
|
284
|
+
*/
|
|
285
|
+
DDOG_CHECK_RETURN
|
|
286
|
+
struct ddog_VoidResult ddog_prof_ExporterManager_postfork_child(struct ddog_prof_Handle_ExporterManager *suspended);
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Creates a new manager in the parent process after forking (postfork_parent).
|
|
290
|
+
*
|
|
291
|
+
* Inflight requests from before the fork are re-queued in the new manager.
|
|
292
|
+
*
|
|
293
|
+
* # Arguments
|
|
294
|
+
* * `suspended` - Takes ownership of the suspended ExporterManager.
|
|
295
|
+
*
|
|
296
|
+
* # Safety
|
|
297
|
+
* The `suspended` must point to a valid suspended ExporterManager that has not been dropped.
|
|
298
|
+
*/
|
|
299
|
+
DDOG_CHECK_RETURN
|
|
300
|
+
struct ddog_VoidResult ddog_prof_ExporterManager_postfork_parent(struct ddog_prof_Handle_ExporterManager *suspended);
|
|
301
|
+
|
|
302
|
+
/**
|
|
303
|
+
* # Safety
|
|
304
|
+
* The `manager` may be null, but if non-null the pointer must point to a
|
|
305
|
+
* valid `ExporterManager` object made by the Rust Global allocator that
|
|
306
|
+
* has not already been dropped.
|
|
307
|
+
*/
|
|
308
|
+
void ddog_prof_ExporterManager_drop(struct ddog_prof_Handle_ExporterManager *manager);
|
|
309
|
+
|
|
229
310
|
/**
|
|
230
311
|
* Frees any error associated with the status, and replaces it with an OK.
|
|
231
312
|
*
|
|
@@ -240,7 +321,7 @@ void ddog_prof_Status_drop(struct ddog_prof_Status *status);
|
|
|
240
321
|
* `ddog_prof_Profile_drop` when you are done with the profile.
|
|
241
322
|
*
|
|
242
323
|
* # Arguments
|
|
243
|
-
* * `sample_types`
|
|
324
|
+
* * `sample_types` - A slice of SampleType enums
|
|
244
325
|
* * `period` - Optional period of the profile. Passing None/null translates to zero values.
|
|
245
326
|
* * `start_time` - Optional time the profile started at. Passing None/null will use the current
|
|
246
327
|
* time.
|
|
@@ -250,7 +331,7 @@ void ddog_prof_Status_drop(struct ddog_prof_Status *status);
|
|
|
250
331
|
* and must have the correct number of elements for the slice.
|
|
251
332
|
*/
|
|
252
333
|
DDOG_CHECK_RETURN
|
|
253
|
-
struct ddog_prof_Profile_NewResult ddog_prof_Profile_new(struct
|
|
334
|
+
struct ddog_prof_Profile_NewResult ddog_prof_Profile_new(struct ddog_prof_Slice_SampleType sample_types,
|
|
254
335
|
const struct ddog_prof_Period *period);
|
|
255
336
|
|
|
256
337
|
/**
|
|
@@ -260,7 +341,7 @@ struct ddog_prof_Profile_NewResult ddog_prof_Profile_new(struct ddog_prof_Slice_
|
|
|
260
341
|
* # Arguments
|
|
261
342
|
* * `out` - a non-null pointer to an uninitialized Profile.
|
|
262
343
|
* * `dict`: a valid reference to a ProfilesDictionary handle.
|
|
263
|
-
* * `sample_types`
|
|
344
|
+
* * `sample_types` - A slice of SampleType enums
|
|
264
345
|
* * `period` - Optional period of the profile. Passing None/null translates to zero values.
|
|
265
346
|
*
|
|
266
347
|
* # Safety
|
|
@@ -276,7 +357,7 @@ struct ddog_prof_Profile_NewResult ddog_prof_Profile_new(struct ddog_prof_Slice_
|
|
|
276
357
|
DDOG_CHECK_RETURN
|
|
277
358
|
struct ddog_prof_Status ddog_prof_Profile_with_dictionary(struct ddog_prof_Profile *out,
|
|
278
359
|
const ddog_prof_ProfilesDictionaryHandle *dict,
|
|
279
|
-
struct
|
|
360
|
+
struct ddog_prof_Slice_SampleType sample_types,
|
|
280
361
|
const struct ddog_prof_Period *period);
|
|
281
362
|
|
|
282
363
|
/**
|
|
@@ -284,7 +365,7 @@ struct ddog_prof_Status ddog_prof_Profile_with_dictionary(struct ddog_prof_Profi
|
|
|
284
365
|
* TODO: @ivoanjo Should this take a `*mut ManagedStringStorage` like Profile APIs do?
|
|
285
366
|
*/
|
|
286
367
|
DDOG_CHECK_RETURN
|
|
287
|
-
struct ddog_prof_Profile_NewResult ddog_prof_Profile_with_string_storage(struct
|
|
368
|
+
struct ddog_prof_Profile_NewResult ddog_prof_Profile_with_string_storage(struct ddog_prof_Slice_SampleType sample_types,
|
|
288
369
|
const struct ddog_prof_Period *period,
|
|
289
370
|
struct ddog_prof_ManagedStringStorage string_storage);
|
|
290
371
|
|
|
@@ -856,6 +937,11 @@ struct ddog_prof_Status ddog_prof_ProfilesDictionary_insert_mapping(ddog_prof_Ma
|
|
|
856
937
|
/**
|
|
857
938
|
* Inserts a UTF-8 string into the dictionary string table.
|
|
858
939
|
*
|
|
940
|
+
* Copies the string into the internal buffer--strings are arena allocated
|
|
941
|
+
* and not individually allocated. On success, the [`StringId2`] written to
|
|
942
|
+
* the `string_id` out parameter is valid as long as this dictionary is alive.
|
|
943
|
+
* It should only be passed back to the dictionary that created it.
|
|
944
|
+
*
|
|
859
945
|
* # Safety
|
|
860
946
|
*
|
|
861
947
|
* - `string_id` must be non-null and valid for writes of `StringId`.
|
|
Binary file
|
|
@@ -8,7 +8,7 @@ includedir=${prefix}/include
|
|
|
8
8
|
|
|
9
9
|
Name: datadog_profiling
|
|
10
10
|
Description: Contains common code used to implement Datadog's Continuous Profilers. (Dynamic linking variant, sets rpath)
|
|
11
|
-
Version:
|
|
11
|
+
Version: 29.0.0
|
|
12
12
|
Requires:
|
|
13
13
|
Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
|
|
14
14
|
Libs.private:
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: libdatadog
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 29.0.0.1.0
|
|
5
5
|
platform: aarch64-linux
|
|
6
6
|
authors:
|
|
7
7
|
- Datadog, Inc.
|
|
@@ -16,47 +16,51 @@ executables: []
|
|
|
16
16
|
extensions: []
|
|
17
17
|
extra_rdoc_files: []
|
|
18
18
|
files:
|
|
19
|
+
- LICENSE
|
|
20
|
+
- LICENSE.Apache
|
|
21
|
+
- LICENSE.BSD3
|
|
22
|
+
- NOTICE
|
|
19
23
|
- lib/libdatadog.rb
|
|
20
24
|
- lib/libdatadog/version.rb
|
|
21
|
-
- vendor/libdatadog-
|
|
22
|
-
- vendor/libdatadog-
|
|
23
|
-
- vendor/libdatadog-
|
|
24
|
-
- vendor/libdatadog-
|
|
25
|
-
- vendor/libdatadog-
|
|
26
|
-
- vendor/libdatadog-
|
|
27
|
-
- vendor/libdatadog-
|
|
28
|
-
- vendor/libdatadog-
|
|
29
|
-
- vendor/libdatadog-
|
|
30
|
-
- vendor/libdatadog-
|
|
31
|
-
- vendor/libdatadog-
|
|
32
|
-
- vendor/libdatadog-
|
|
33
|
-
- vendor/libdatadog-
|
|
34
|
-
- vendor/libdatadog-
|
|
35
|
-
- vendor/libdatadog-
|
|
36
|
-
- vendor/libdatadog-
|
|
37
|
-
- vendor/libdatadog-
|
|
38
|
-
- vendor/libdatadog-
|
|
39
|
-
- vendor/libdatadog-
|
|
40
|
-
- vendor/libdatadog-
|
|
41
|
-
- vendor/libdatadog-
|
|
42
|
-
- vendor/libdatadog-
|
|
43
|
-
- vendor/libdatadog-
|
|
44
|
-
- vendor/libdatadog-
|
|
45
|
-
- vendor/libdatadog-
|
|
46
|
-
- vendor/libdatadog-
|
|
47
|
-
- vendor/libdatadog-
|
|
48
|
-
- vendor/libdatadog-
|
|
49
|
-
- vendor/libdatadog-
|
|
50
|
-
- vendor/libdatadog-
|
|
51
|
-
- vendor/libdatadog-
|
|
52
|
-
- vendor/libdatadog-
|
|
25
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE
|
|
26
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml
|
|
27
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE
|
|
28
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver
|
|
29
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h
|
|
30
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/common.h
|
|
31
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/crashtracker.h
|
|
32
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/data-pipeline.h
|
|
33
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ddsketch.h
|
|
34
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ffe.h
|
|
35
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/library-config.h
|
|
36
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/log.h
|
|
37
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/profiling.h
|
|
38
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/telemetry.h
|
|
39
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so
|
|
40
|
+
- vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc
|
|
41
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE
|
|
42
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml
|
|
43
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE
|
|
44
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver
|
|
45
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h
|
|
46
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/common.h
|
|
47
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/crashtracker.h
|
|
48
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h
|
|
49
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ddsketch.h
|
|
50
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ffe.h
|
|
51
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/library-config.h
|
|
52
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/log.h
|
|
53
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/profiling.h
|
|
54
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h
|
|
55
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so
|
|
56
|
+
- vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc
|
|
53
57
|
homepage: https://docs.datadoghq.com/tracing/
|
|
54
58
|
licenses:
|
|
55
59
|
- Apache-2.0
|
|
56
60
|
metadata:
|
|
57
61
|
allowed_push_host: https://rubygems.org
|
|
58
62
|
homepage_uri: https://docs.datadoghq.com/tracing/
|
|
59
|
-
source_code_uri: https://github.com/datadog/libdatadog
|
|
63
|
+
source_code_uri: https://github.com/datadog/libdatadog-rb
|
|
60
64
|
rubygems_mfa_required: 'true'
|
|
61
65
|
rdoc_options: []
|
|
62
66
|
require_paths:
|
|
@@ -72,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
72
76
|
- !ruby/object:Gem::Version
|
|
73
77
|
version: '0'
|
|
74
78
|
requirements: []
|
|
75
|
-
rubygems_version:
|
|
79
|
+
rubygems_version: 4.0.3
|
|
76
80
|
specification_version: 4
|
|
77
81
|
summary: Library of common code used by Datadog Continuous Profiler for Ruby
|
|
78
82
|
test_files: []
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|