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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +6 -0
  3. data/LICENSE.Apache +200 -0
  4. data/LICENSE.BSD3 +24 -0
  5. data/NOTICE +4 -0
  6. data/lib/libdatadog/version.rb +1 -1
  7. data/lib/libdatadog.rb +6 -0
  8. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +17987 -11921
  9. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/common.h +304 -192
  10. 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
  11. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h +6 -1
  12. 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
  13. 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
  14. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  15. 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
  16. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +17987 -11921
  17. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/common.h +304 -192
  18. 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
  19. 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
  20. 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
  21. 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
  22. data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  23. 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
  24. metadata +39 -35
  25. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
  26. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
  27. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  28. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
  29. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ddsketch.h +0 -0
  30. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ffe.h +0 -0
  31. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/log.h +0 -0
  32. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h +0 -0
  33. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
  34. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
  35. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  36. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
  37. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ddsketch.h +0 -0
  38. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ffe.h +0 -0
  39. /data/vendor/{libdatadog-25.0.0 → libdatadog-29.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/log.h +0 -0
  40. /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 a UUID, siginfo, and metadata set
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, ddog_CharSlice api_key);
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
- * If successful, builds a `ddog_prof_Exporter_Request` object based on the
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 for sending the request.
168
- * * `request` - Takes ownership of the request, replacing it with a null pointer. This is why it
169
- * takes a double-pointer, rather than a single one.
170
- * * `cancel` - Borrows the cancel, if any.
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 created by apis in this module.
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 ddog_prof_Exporter_send(struct ddog_prof_ProfileExporter *exporter,
177
- struct ddog_prof_Request *request,
178
- struct ddog_CancellationToken *cancel);
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 ddog_prof_Slice_ValueType sample_types,
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 ddog_prof_Slice_ValueType sample_types,
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 ddog_prof_Slice_ValueType sample_types,
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`.
@@ -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: 25.0.0
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: 25.0.0.1.0
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-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE
22
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml
23
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE
24
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver
25
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h
26
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/common.h
27
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/crashtracker.h
28
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/data-pipeline.h
29
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ddsketch.h
30
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ffe.h
31
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/library-config.h
32
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/log.h
33
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/profiling.h
34
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/telemetry.h
35
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so
36
- - vendor/libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc
37
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE
38
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml
39
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE
40
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver
41
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h
42
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/common.h
43
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/crashtracker.h
44
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h
45
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ddsketch.h
46
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ffe.h
47
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/library-config.h
48
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/log.h
49
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/profiling.h
50
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h
51
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so
52
- - vendor/libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc
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/tree/main/ruby
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: 3.6.7
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: []