libdatadog 25.0.0.1.0-aarch64-linux → 27.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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/lib/libdatadog.rb +6 -0
  4. data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +11379 -5795
  5. data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/common.h +277 -184
  6. data/vendor/{libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-27.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/crashtracker.h +11 -1
  7. data/vendor/{libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-27.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/profiling.h +141 -63
  8. data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  9. data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  10. data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +11379 -5795
  11. data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/common.h +277 -184
  12. data/vendor/{libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-27.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/crashtracker.h +11 -1
  13. data/vendor/{libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-27.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/profiling.h +141 -63
  14. data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  15. data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  16. metadata +33 -33
  17. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
  18. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
  19. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  20. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
  21. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h +0 -0
  22. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ddsketch.h +0 -0
  23. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ffe.h +0 -0
  24. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/library-config.h +0 -0
  25. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/log.h +0 -0
  26. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h +0 -0
  27. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
  28. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
  29. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  30. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
  31. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/data-pipeline.h +0 -0
  32. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ddsketch.h +0 -0
  33. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ffe.h +0 -0
  34. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/library-config.h +0 -0
  35. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/log.h +0 -0
  36. /data/vendor/{libdatadog-25.0.0 → libdatadog-27.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/telemetry.h +0 -0
@@ -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,20 @@ 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).
64
66
  */
65
- struct ddog_prof_Endpoint ddog_prof_Endpoint_agent(ddog_CharSlice base_url);
67
+ struct ddog_prof_Endpoint ddog_prof_Endpoint_agent(ddog_CharSlice base_url, uint64_t timeout_ms);
66
68
 
67
69
  /**
68
70
  * Creates an endpoint that uses the Datadog intake directly aka agentless.
69
71
  * # Arguments
70
72
  * * `site` - Contains a host and port e.g. "datadoghq.com".
71
73
  * * `api_key` - Contains the Datadog API key.
74
+ * * `timeout_ms` - Timeout in milliseconds. Use 0 for default timeout (3000ms).
72
75
  */
73
- struct ddog_prof_Endpoint ddog_prof_Endpoint_agentless(ddog_CharSlice site, ddog_CharSlice api_key);
76
+ struct ddog_prof_Endpoint ddog_prof_Endpoint_agentless(ddog_CharSlice site,
77
+ ddog_CharSlice api_key,
78
+ uint64_t timeout_ms);
74
79
 
75
80
  /**
76
81
  * Creates an endpoint that writes to a file.
@@ -105,16 +110,6 @@ struct ddog_prof_ProfileExporter_Result ddog_prof_Exporter_new(ddog_CharSlice pr
105
110
  const struct ddog_Vec_Tag *tags,
106
111
  struct ddog_prof_Endpoint endpoint);
107
112
 
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
113
  /**
119
114
  * # Safety
120
115
  * The `exporter` may be null, but if non-null the pointer must point to a
@@ -124,58 +119,30 @@ struct ddog_VoidResult ddog_prof_Exporter_set_timeout(struct ddog_prof_ProfileEx
124
119
  void ddog_prof_Exporter_drop(struct ddog_prof_ProfileExporter *exporter);
125
120
 
126
121
  /**
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.
122
+ * Builds a request and sends it, returning the HttpStatus.
165
123
  *
166
124
  * # 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.
125
+ * * `exporter` - Borrows the exporter.
126
+ * * `profile` - Takes ownership of the profile.
127
+ * * `files_to_compress_and_export` - Files to compress and attach to the profile.
128
+ * * `optional_additional_tags` - Additional tags to include with this profile.
129
+ * * `optional_process_tags` - Process-level tags as a comma-separated string.
130
+ * * `optional_internal_metadata_json` - Internal metadata as a JSON string.
131
+ * * `optional_info_json` - System info as a JSON string.
132
+ * * `cancel` - Optional cancellation token.
171
133
  *
172
134
  * # Safety
173
- * All non-null arguments MUST have been created by created by apis in this module.
135
+ * All non-null arguments MUST have been created by APIs in this module.
174
136
  */
175
137
  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);
138
+ struct ddog_prof_Result_HttpStatus ddog_prof_Exporter_send_blocking(struct ddog_prof_ProfileExporter *exporter,
139
+ struct ddog_prof_EncodedProfile *profile,
140
+ struct ddog_prof_Exporter_Slice_File files_to_compress_and_export,
141
+ const struct ddog_Vec_Tag *optional_additional_tags,
142
+ const ddog_CharSlice *optional_process_tags,
143
+ const ddog_CharSlice *optional_internal_metadata_json,
144
+ const ddog_CharSlice *optional_info_json,
145
+ struct ddog_CancellationToken *cancel);
179
146
 
180
147
  /**
181
148
  * Can be passed as an argument to send and then be used to asynchronously cancel it from a
@@ -226,6 +193,112 @@ bool ddog_CancellationToken_cancel(struct ddog_CancellationToken *cancel);
226
193
  */
227
194
  void ddog_CancellationToken_drop(struct ddog_CancellationToken *token);
228
195
 
196
+ /**
197
+ * Creates a new ExporterManager with a background worker thread.
198
+ *
199
+ * The ExporterManager provides asynchronous profle export capabilities through a
200
+ * background worker thread and bounded channel.
201
+ *
202
+ * # Arguments
203
+ * * `exporter` - Takes ownership of the ProfileExporter to use for sending profiles.
204
+ *
205
+ * # Safety
206
+ * The `exporter` must point to a valid ProfileExporter that has not been dropped.
207
+ */
208
+ DDOG_CHECK_RETURN
209
+ struct ddog_prof_Result_HandleExporterManager ddog_prof_ExporterManager_new(struct ddog_prof_ProfileExporter *exporter);
210
+
211
+ /**
212
+ * Queues a profile to be sent asynchronously by the background worker thread.
213
+ *
214
+ * **Important**: This function resets the profile and queues the *previous* profile data.
215
+ * After calling this, the profile will be empty and ready for new samples.
216
+ *
217
+ * # Arguments
218
+ * * `manager` - Borrows the ExporterManager.
219
+ * * `profile` - Takes ownership of the profile to send.
220
+ * * `files_to_compress_and_export` - Files to compress and attach to the profile.
221
+ * * `optional_additional_tags` - Additional tags to include with this profile.
222
+ * * `optional_process_tags` - Process-level tags as a comma-separated string.
223
+ * * `optional_internal_metadata_json` - Internal metadata as a JSON string.
224
+ * * `optional_info_json` - System info as a JSON string.
225
+ *
226
+ * # Safety
227
+ * All non-null arguments MUST have been created by APIs in this module.
228
+ */
229
+ DDOG_CHECK_RETURN
230
+ struct ddog_VoidResult ddog_prof_ExporterManager_queue(struct ddog_prof_Handle_ExporterManager *manager,
231
+ struct ddog_prof_EncodedProfile *profile,
232
+ struct ddog_prof_Exporter_Slice_File files_to_compress_and_export,
233
+ const struct ddog_Vec_Tag *optional_additional_tags,
234
+ const ddog_CharSlice *optional_process_tags,
235
+ const ddog_CharSlice *optional_internal_metadata_json,
236
+ const ddog_CharSlice *optional_info_json);
237
+
238
+ /**
239
+ * Aborts the manager, stopping the worker thread and returning inflight requests.
240
+ *
241
+ * **Note**: This consumes the manager - it cannot be used after calling abort.
242
+ *
243
+ * # Arguments
244
+ * * `manager` - Takes ownership of the ExporterManager.
245
+ *
246
+ * # Safety
247
+ * The `manager` must point to a valid ExporterManager that has not been dropped.
248
+ */
249
+ DDOG_CHECK_RETURN
250
+ struct ddog_VoidResult ddog_prof_ExporterManager_abort(struct ddog_prof_Handle_ExporterManager *manager);
251
+
252
+ /**
253
+ * Suspends the manager before forking (prefork).
254
+ *
255
+ * **Note**: This consumes the manager - it cannot be used after calling prefork.
256
+ *
257
+ * # Arguments
258
+ * * `manager` - Takes ownership of the ExporterManager.
259
+ *
260
+ * # Safety
261
+ * The `manager` must point to a valid ExporterManager that has not been dropped.
262
+ */
263
+ DDOG_CHECK_RETURN
264
+ struct ddog_VoidResult ddog_prof_ExporterManager_prefork(struct ddog_prof_Handle_ExporterManager *manager);
265
+
266
+ /**
267
+ * Creates a new manager in the child process after forking (postfork_child).
268
+ *
269
+ * Inflight requests from the parent are discarded in the child.
270
+ *
271
+ * # Arguments
272
+ * * `suspended` - Takes ownership of the suspended ExporterManager.
273
+ *
274
+ * # Safety
275
+ * The `suspended` must point to a valid suspended ExporterManager that has not been dropped.
276
+ */
277
+ DDOG_CHECK_RETURN
278
+ struct ddog_VoidResult ddog_prof_ExporterManager_postfork_child(struct ddog_prof_Handle_ExporterManager *suspended);
279
+
280
+ /**
281
+ * Creates a new manager in the parent process after forking (postfork_parent).
282
+ *
283
+ * Inflight requests from before the fork are re-queued in the new manager.
284
+ *
285
+ * # Arguments
286
+ * * `suspended` - Takes ownership of the suspended ExporterManager.
287
+ *
288
+ * # Safety
289
+ * The `suspended` must point to a valid suspended ExporterManager that has not been dropped.
290
+ */
291
+ DDOG_CHECK_RETURN
292
+ struct ddog_VoidResult ddog_prof_ExporterManager_postfork_parent(struct ddog_prof_Handle_ExporterManager *suspended);
293
+
294
+ /**
295
+ * # Safety
296
+ * The `manager` may be null, but if non-null the pointer must point to a
297
+ * valid `ExporterManager` object made by the Rust Global allocator that
298
+ * has not already been dropped.
299
+ */
300
+ void ddog_prof_ExporterManager_drop(struct ddog_prof_Handle_ExporterManager *manager);
301
+
229
302
  /**
230
303
  * Frees any error associated with the status, and replaces it with an OK.
231
304
  *
@@ -240,7 +313,7 @@ void ddog_prof_Status_drop(struct ddog_prof_Status *status);
240
313
  * `ddog_prof_Profile_drop` when you are done with the profile.
241
314
  *
242
315
  * # Arguments
243
- * * `sample_types`
316
+ * * `sample_types` - A slice of SampleType enums
244
317
  * * `period` - Optional period of the profile. Passing None/null translates to zero values.
245
318
  * * `start_time` - Optional time the profile started at. Passing None/null will use the current
246
319
  * time.
@@ -250,7 +323,7 @@ void ddog_prof_Status_drop(struct ddog_prof_Status *status);
250
323
  * and must have the correct number of elements for the slice.
251
324
  */
252
325
  DDOG_CHECK_RETURN
253
- struct ddog_prof_Profile_NewResult ddog_prof_Profile_new(struct ddog_prof_Slice_ValueType sample_types,
326
+ struct ddog_prof_Profile_NewResult ddog_prof_Profile_new(struct ddog_prof_Slice_SampleType sample_types,
254
327
  const struct ddog_prof_Period *period);
255
328
 
256
329
  /**
@@ -260,7 +333,7 @@ struct ddog_prof_Profile_NewResult ddog_prof_Profile_new(struct ddog_prof_Slice_
260
333
  * # Arguments
261
334
  * * `out` - a non-null pointer to an uninitialized Profile.
262
335
  * * `dict`: a valid reference to a ProfilesDictionary handle.
263
- * * `sample_types`
336
+ * * `sample_types` - A slice of SampleType enums
264
337
  * * `period` - Optional period of the profile. Passing None/null translates to zero values.
265
338
  *
266
339
  * # Safety
@@ -276,7 +349,7 @@ struct ddog_prof_Profile_NewResult ddog_prof_Profile_new(struct ddog_prof_Slice_
276
349
  DDOG_CHECK_RETURN
277
350
  struct ddog_prof_Status ddog_prof_Profile_with_dictionary(struct ddog_prof_Profile *out,
278
351
  const ddog_prof_ProfilesDictionaryHandle *dict,
279
- struct ddog_prof_Slice_ValueType sample_types,
352
+ struct ddog_prof_Slice_SampleType sample_types,
280
353
  const struct ddog_prof_Period *period);
281
354
 
282
355
  /**
@@ -284,7 +357,7 @@ struct ddog_prof_Status ddog_prof_Profile_with_dictionary(struct ddog_prof_Profi
284
357
  * TODO: @ivoanjo Should this take a `*mut ManagedStringStorage` like Profile APIs do?
285
358
  */
286
359
  DDOG_CHECK_RETURN
287
- struct ddog_prof_Profile_NewResult ddog_prof_Profile_with_string_storage(struct ddog_prof_Slice_ValueType sample_types,
360
+ struct ddog_prof_Profile_NewResult ddog_prof_Profile_with_string_storage(struct ddog_prof_Slice_SampleType sample_types,
288
361
  const struct ddog_prof_Period *period,
289
362
  struct ddog_prof_ManagedStringStorage string_storage);
290
363
 
@@ -856,6 +929,11 @@ struct ddog_prof_Status ddog_prof_ProfilesDictionary_insert_mapping(ddog_prof_Ma
856
929
  /**
857
930
  * Inserts a UTF-8 string into the dictionary string table.
858
931
  *
932
+ * Copies the string into the internal buffer--strings are arena allocated
933
+ * and not individually allocated. On success, the [`StringId2`] written to
934
+ * the `string_id` out parameter is valid as long as this dictionary is alive.
935
+ * It should only be passed back to the dictionary that created it.
936
+ *
859
937
  * # Safety
860
938
  *
861
939
  * - `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: 27.0.0
12
12
  Requires:
13
13
  Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
14
14
  Libs.private: