libdatadog 25.0.0.1.0-aarch64-linux → 26.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-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +11292 -5944
  5. data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/common.h +156 -179
  6. data/vendor/{libdatadog-25.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-26.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/profiling.h +32 -62
  7. data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  8. data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  9. data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +11292 -5944
  10. data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/common.h +156 -179
  11. data/vendor/{libdatadog-25.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-26.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/profiling.h +32 -62
  12. data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  13. data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  14. metadata +33 -33
  15. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
  16. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
  17. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  18. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
  19. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/crashtracker.h +0 -0
  20. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h +0 -0
  21. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ddsketch.h +0 -0
  22. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ffe.h +0 -0
  23. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/library-config.h +0 -0
  24. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/log.h +0 -0
  25. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h +0 -0
  26. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
  27. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
  28. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  29. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
  30. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/crashtracker.h +0 -0
  31. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.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-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ddsketch.h +0 -0
  33. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ffe.h +0 -0
  34. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.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-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/log.h +0 -0
  36. /data/vendor/{libdatadog-25.0.0 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/telemetry.h +0 -0
@@ -257,6 +257,10 @@ typedef struct ddog_Vec_Tag_ParseResult {
257
257
  struct ddog_Error *error_message;
258
258
  } ddog_Vec_Tag_ParseResult;
259
259
 
260
+ typedef struct ddog_prof_StringHeader *ddog_prof_StringId2;
261
+ typedef struct ddog_prof_Mapping2 *ddog_prof_MappingId2;
262
+ typedef struct ddog_prof_Function2 *ddog_prof_FunctionId2;
263
+
260
264
  #define ddog_prof_Set_SIZE_HINT (1024 * 1024)
261
265
 
262
266
  typedef enum ddog_prof_Utf8Option {
@@ -276,6 +280,8 @@ typedef enum ddog_prof_Utf8Option {
276
280
  DDOG_PROF_UTF8_OPTION_VALIDATE,
277
281
  } ddog_prof_Utf8Option;
278
282
 
283
+ typedef struct ddog_OpaqueCancellationToken ddog_OpaqueCancellationToken;
284
+
279
285
  typedef struct ddog_prof_EncodedProfile ddog_prof_EncodedProfile;
280
286
 
281
287
  typedef struct ddog_prof_Exporter ddog_prof_Exporter;
@@ -291,8 +297,6 @@ typedef struct ddog_prof_Exporter ddog_prof_Exporter;
291
297
  */
292
298
  typedef struct ddog_prof_ProfilesDictionary ddog_prof_ProfilesDictionary;
293
299
 
294
- typedef struct ddog_prof_Exporter_Request ddog_prof_Exporter_Request;
295
-
296
300
  typedef struct ddog_Slice_U8 {
297
301
  /**
298
302
  * Should be non-null and suitably aligned for the underlying type. It is
@@ -337,17 +341,21 @@ typedef enum ddog_prof_Endpoint_Tag {
337
341
  DDOG_PROF_ENDPOINT_FILE,
338
342
  } ddog_prof_Endpoint_Tag;
339
343
 
344
+ typedef struct ddog_prof_Endpoint_ddog_prof_Agent_Body {
345
+ ddog_CharSlice _0;
346
+ uint64_t _1;
347
+ } ddog_prof_Endpoint_ddog_prof_Agent_Body;
348
+
340
349
  typedef struct ddog_prof_Endpoint_ddog_prof_Agentless_Body {
341
350
  ddog_CharSlice _0;
342
351
  ddog_CharSlice _1;
352
+ uint64_t _2;
343
353
  } ddog_prof_Endpoint_ddog_prof_Agentless_Body;
344
354
 
345
355
  typedef struct ddog_prof_Endpoint {
346
356
  ddog_prof_Endpoint_Tag tag;
347
357
  union {
348
- struct {
349
- ddog_CharSlice agent;
350
- };
358
+ ddog_prof_Endpoint_ddog_prof_Agent_Body AGENT;
351
359
  ddog_prof_Endpoint_ddog_prof_Agentless_Body AGENTLESS;
352
360
  struct {
353
361
  ddog_CharSlice file;
@@ -384,61 +392,6 @@ typedef struct ddog_prof_ProfileExporter_Result {
384
392
  };
385
393
  } ddog_prof_ProfileExporter_Result;
386
394
 
387
- /**
388
- * A generic result type for when an operation may fail,
389
- * but there's nothing to return in the case of success.
390
- */
391
- typedef enum ddog_VoidResult_Tag {
392
- DDOG_VOID_RESULT_OK,
393
- DDOG_VOID_RESULT_ERR,
394
- } ddog_VoidResult_Tag;
395
-
396
- typedef struct ddog_VoidResult {
397
- ddog_VoidResult_Tag tag;
398
- union {
399
- struct {
400
- struct ddog_Error err;
401
- };
402
- };
403
- } ddog_VoidResult;
404
-
405
- /**
406
- * Represents an object that should only be referred to by its handle.
407
- * Do not access its member for any reason, only use the C API functions on this struct.
408
- */
409
- typedef struct ddog_prof_Request {
410
- struct ddog_prof_Exporter_Request *inner;
411
- } ddog_prof_Request;
412
-
413
- /**
414
- * A generic result type for when an operation may fail,
415
- * or may return <T> in case of success.
416
- */
417
- typedef enum ddog_prof_Request_Result_Tag {
418
- DDOG_PROF_REQUEST_RESULT_OK_HANDLE_REQUEST,
419
- DDOG_PROF_REQUEST_RESULT_ERR_HANDLE_REQUEST,
420
- } ddog_prof_Request_Result_Tag;
421
-
422
- typedef struct ddog_prof_Request_Result {
423
- ddog_prof_Request_Result_Tag tag;
424
- union {
425
- struct {
426
- struct ddog_prof_Request ok;
427
- };
428
- struct {
429
- struct ddog_Error err;
430
- };
431
- };
432
- } ddog_prof_Request_Result;
433
-
434
- /**
435
- * Represents an object that should only be referred to by its handle.
436
- * Do not access its member for any reason, only use the C API functions on this struct.
437
- */
438
- typedef struct ddog_prof_EncodedProfile {
439
- struct ddog_prof_EncodedProfile *inner;
440
- } ddog_prof_EncodedProfile;
441
-
442
395
  typedef struct ddog_HttpStatus {
443
396
  uint16_t code;
444
397
  } ddog_HttpStatus;
@@ -464,6 +417,14 @@ typedef struct ddog_prof_Result_HttpStatus {
464
417
  };
465
418
  } ddog_prof_Result_HttpStatus;
466
419
 
420
+ /**
421
+ * Represents an object that should only be referred to by its handle.
422
+ * Do not access its member for any reason, only use the C API functions on this struct.
423
+ */
424
+ typedef struct ddog_prof_EncodedProfile {
425
+ struct ddog_prof_EncodedProfile *inner;
426
+ } ddog_prof_EncodedProfile;
427
+
467
428
  typedef struct ddog_OpaqueCancellationToken ddog_prof_TokioCancellationToken;
468
429
 
469
430
  /**
@@ -486,38 +447,36 @@ typedef struct ddog_CancellationToken {
486
447
  * A `ProfileStatus` owns its error message data. When a `ProfileStatus` with an error is
487
448
  * created, it takes ownership of the error string (either as a static reference or heap
488
449
  * allocation). The caller is responsible for eventually calling [`ddog_prof_Status_drop`] to
489
- * free any heap-allocated memory. This is safe to call on OK as well; it does nothing.
450
+ * free any heap-allocated memory. This is safe to call on OK as well.
490
451
  *
491
452
  * # FFI Safety
492
453
  *
493
- * This type is `#[repr(C)]` and safe to pass across FFI boundaries. The C side must treat
494
- * this as an opaque struct and use the provided FFI functions to inspect and drop it.
454
+ * This type is `#[repr(C)]` and safe to pass across FFI boundaries. The C side must treat the
455
+ * `.flags` as opaque and use API functions; the `.err` field is guaranteed to be null when the
456
+ * `ProfileStatus` is OK, and on Err it will be non-null pointer to a UTF8 encoded string which
457
+ * has a null terminator.
495
458
  */
496
459
  typedef struct ddog_prof_Status {
497
460
  /**
498
461
  * Bitflags indicating the storage type of the error message.
499
462
  * This is only meaningful when `err` is non-null. When `err` is
500
- * null (indicating OK), this field is ignored (but typically 0).
501
- * - `FLAG_STATIC` (0): Error message points to static data that must not be freed.
502
- * - `FLAG_ALLOCATED` (1): Error message is heap-allocated and owned by this `ProfileStatus`.
503
- * Must be freed via [`ddog_prof_Status_drop`].
463
+ * null (indicating OK), this field SHOULD be zero. Currently, only one
464
+ * bit is used `IS_ALLOCATED_MASK`, which determines whether the error
465
+ * message is owned or statically borrowed.
466
+ * In the future, we may store error codes in here as well.
504
467
  */
505
468
  size_t flags;
506
469
  /**
507
470
  * Pointer to a null-terminated UTF-8 error message string.
508
- * - If null: indicates OK (success). Check this from C to determine if the operation
509
- * succeeded.
510
- * - If non-null and `flags == FLAG_STATIC`: points to static data with lifetime `'static`.
511
- * Must not be freed.
512
- * - If non-null and `flags == FLAG_ALLOCATED`: points to heap-allocated data owned by this
513
- * `ProfileStatus`. Must be freed by [`ddog_prof_Status_drop`].
471
+ * - If null this indicates OK (success). This is an FFI guarantee.
472
+ * - If non-null and allocated bit is clear: points to static data with `'static` lifetime.
473
+ * - If non-null and allocated bit is set: points to owned heap-allocated data.
514
474
  *
515
475
  * # Safety Invariant
516
476
  *
517
- * When non-null, `err` must point to a valid, null-terminated C
518
- * string in UTF-8 encoding. The pointer remains valid for the
519
- * lifetime of this `ProfileStatus` or until [`ddog_prof_Status_drop`]
520
- * is called.
477
+ * When non-null, `err` must point to a valid, null-terminated C string in UTF-8 encoding.
478
+ * The pointer remains valid for the lifetime of this `ProfileStatus` or until
479
+ * [`ddog_prof_Status_drop`] is called.
521
480
  */
522
481
  const char *err;
523
482
  } ddog_prof_Status;
@@ -1186,6 +1145,24 @@ typedef struct ddog_prof_StringId_Result {
1186
1145
  };
1187
1146
  } ddog_prof_StringId_Result;
1188
1147
 
1148
+ /**
1149
+ * A generic result type for when an operation may fail,
1150
+ * but there's nothing to return in the case of success.
1151
+ */
1152
+ typedef enum ddog_VoidResult_Tag {
1153
+ DDOG_VOID_RESULT_OK,
1154
+ DDOG_VOID_RESULT_ERR,
1155
+ } ddog_VoidResult_Tag;
1156
+
1157
+ typedef struct ddog_VoidResult {
1158
+ ddog_VoidResult_Tag tag;
1159
+ union {
1160
+ struct {
1161
+ struct ddog_Error err;
1162
+ };
1163
+ };
1164
+ } ddog_VoidResult;
1165
+
1189
1166
  typedef struct ddog_prof_Slice_ManagedStringId {
1190
1167
  /**
1191
1168
  * Should be non-null and suitably aligned for the underlying type. It is
@@ -1394,40 +1371,12 @@ typedef enum ddog_ConfigurationOrigin {
1394
1371
  DDOG_CONFIGURATION_ORIGIN_CALCULATED,
1395
1372
  } ddog_ConfigurationOrigin;
1396
1373
 
1397
- typedef enum ddog_TelemetryWorkerBuilderEndpointProperty {
1398
- DDOG_TELEMETRY_WORKER_BUILDER_ENDPOINT_PROPERTY_CONFIG_ENDPOINT,
1399
- } ddog_TelemetryWorkerBuilderEndpointProperty;
1400
-
1401
- typedef enum ddog_TelemetryWorkerBuilderStrProperty {
1402
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_SERVICE_VERSION,
1403
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_ENV,
1404
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_NAME,
1405
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_VERSION,
1406
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_PATCHES,
1407
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_CONTAINER_ID,
1408
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_OS,
1409
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_NAME,
1410
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_RELEASE,
1411
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_VERSION,
1412
- DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_RUNTIME_ID,
1413
- } ddog_TelemetryWorkerBuilderStrProperty;
1414
-
1415
- typedef enum ddog_TelemetryWorkerBuilderBoolProperty {
1416
- DDOG_TELEMETRY_WORKER_BUILDER_BOOL_PROPERTY_CONFIG_TELEMETRY_DEBUG_LOGGING_ENABLED,
1417
- } ddog_TelemetryWorkerBuilderBoolProperty;
1418
-
1419
1374
  typedef enum ddog_LogLevel {
1420
1375
  DDOG_LOG_LEVEL_ERROR,
1421
1376
  DDOG_LOG_LEVEL_WARN,
1422
1377
  DDOG_LOG_LEVEL_DEBUG,
1423
1378
  } ddog_LogLevel;
1424
1379
 
1425
- typedef enum ddog_MetricType {
1426
- DDOG_METRIC_TYPE_GAUGE,
1427
- DDOG_METRIC_TYPE_COUNT,
1428
- DDOG_METRIC_TYPE_DISTRIBUTION,
1429
- } ddog_MetricType;
1430
-
1431
1380
  typedef enum ddog_MetricNamespace {
1432
1381
  DDOG_METRIC_NAMESPACE_TRACERS,
1433
1382
  DDOG_METRIC_NAMESPACE_PROFILERS,
@@ -1442,6 +1391,34 @@ typedef enum ddog_MetricNamespace {
1442
1391
  DDOG_METRIC_NAMESPACE_SIDECAR,
1443
1392
  } ddog_MetricNamespace;
1444
1393
 
1394
+ typedef enum ddog_MetricType {
1395
+ DDOG_METRIC_TYPE_GAUGE,
1396
+ DDOG_METRIC_TYPE_COUNT,
1397
+ DDOG_METRIC_TYPE_DISTRIBUTION,
1398
+ } ddog_MetricType;
1399
+
1400
+ typedef enum ddog_TelemetryWorkerBuilderBoolProperty {
1401
+ DDOG_TELEMETRY_WORKER_BUILDER_BOOL_PROPERTY_CONFIG_TELEMETRY_DEBUG_LOGGING_ENABLED,
1402
+ } ddog_TelemetryWorkerBuilderBoolProperty;
1403
+
1404
+ typedef enum ddog_TelemetryWorkerBuilderEndpointProperty {
1405
+ DDOG_TELEMETRY_WORKER_BUILDER_ENDPOINT_PROPERTY_CONFIG_ENDPOINT,
1406
+ } ddog_TelemetryWorkerBuilderEndpointProperty;
1407
+
1408
+ typedef enum ddog_TelemetryWorkerBuilderStrProperty {
1409
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_SERVICE_VERSION,
1410
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_ENV,
1411
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_NAME,
1412
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_VERSION,
1413
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_PATCHES,
1414
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_CONTAINER_ID,
1415
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_OS,
1416
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_NAME,
1417
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_RELEASE,
1418
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_VERSION,
1419
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_RUNTIME_ID,
1420
+ } ddog_TelemetryWorkerBuilderStrProperty;
1421
+
1445
1422
  typedef struct ddog_TelemetryWorkerBuilder ddog_TelemetryWorkerBuilder;
1446
1423
 
1447
1424
  /**
@@ -1719,20 +1696,6 @@ typedef struct ddog_Result_TracerMemfdHandle {
1719
1696
  };
1720
1697
  } ddog_Result_TracerMemfdHandle;
1721
1698
 
1722
- /**
1723
- * Target for standard stream output.
1724
- */
1725
- typedef enum ddog_StdTarget {
1726
- /**
1727
- * Write to standard output (stdout).
1728
- */
1729
- DDOG_STD_TARGET_OUT,
1730
- /**
1731
- * Write to standard error (stderr).
1732
- */
1733
- DDOG_STD_TARGET_ERR,
1734
- } ddog_StdTarget;
1735
-
1736
1699
  /**
1737
1700
  * Log level for filtering log events.
1738
1701
  */
@@ -1769,6 +1732,20 @@ typedef enum ddog_LogEventLevel {
1769
1732
  DDOG_LOG_EVENT_LEVEL_ERROR = 4,
1770
1733
  } ddog_LogEventLevel;
1771
1734
 
1735
+ /**
1736
+ * Target for standard stream output.
1737
+ */
1738
+ typedef enum ddog_StdTarget {
1739
+ /**
1740
+ * Write to standard output (stdout).
1741
+ */
1742
+ DDOG_STD_TARGET_OUT,
1743
+ /**
1744
+ * Write to standard error (stderr).
1745
+ */
1746
+ DDOG_STD_TARGET_ERR,
1747
+ } ddog_StdTarget;
1748
+
1772
1749
  /**
1773
1750
  * Configuration for standard stream output.
1774
1751
  */
@@ -1822,6 +1799,17 @@ typedef struct ddsketch_Handle_DDSketch {
1822
1799
  struct ddsketch_DDSketch *inner;
1823
1800
  } ddsketch_Handle_DDSketch;
1824
1801
 
1802
+ typedef enum ddog_ffe_ErrorCode {
1803
+ DDOG_FFE_ERROR_CODE_OK,
1804
+ DDOG_FFE_ERROR_CODE_TYPE_MISMATCH,
1805
+ DDOG_FFE_ERROR_CODE_PARSE_ERROR,
1806
+ DDOG_FFE_ERROR_CODE_FLAG_NOT_FOUND,
1807
+ DDOG_FFE_ERROR_CODE_TARGETING_KEY_MISSING,
1808
+ DDOG_FFE_ERROR_CODE_INVALID_CONTEXT,
1809
+ DDOG_FFE_ERROR_CODE_PROVIDER_NOT_READY,
1810
+ DDOG_FFE_ERROR_CODE_GENERAL,
1811
+ } ddog_ffe_ErrorCode;
1812
+
1825
1813
  typedef enum ddog_ffe_ExpectedFlagType {
1826
1814
  DDOG_FFE_EXPECTED_FLAG_TYPE_STRING,
1827
1815
  DDOG_FFE_EXPECTED_FLAG_TYPE_INTEGER,
@@ -1841,17 +1829,6 @@ typedef enum ddog_ffe_Reason {
1841
1829
  DDOG_FFE_REASON_ERROR,
1842
1830
  } ddog_ffe_Reason;
1843
1831
 
1844
- typedef enum ddog_ffe_ErrorCode {
1845
- DDOG_FFE_ERROR_CODE_OK,
1846
- DDOG_FFE_ERROR_CODE_TYPE_MISMATCH,
1847
- DDOG_FFE_ERROR_CODE_PARSE_ERROR,
1848
- DDOG_FFE_ERROR_CODE_FLAG_NOT_FOUND,
1849
- DDOG_FFE_ERROR_CODE_TARGETING_KEY_MISSING,
1850
- DDOG_FFE_ERROR_CODE_INVALID_CONTEXT,
1851
- DDOG_FFE_ERROR_CODE_PROVIDER_NOT_READY,
1852
- DDOG_FFE_ERROR_CODE_GENERAL,
1853
- } ddog_ffe_ErrorCode;
1854
-
1855
1832
  /**
1856
1833
  * Remote configuration for the feature flagging client. It's a central piece that defines client
1857
1834
  * behavior.
@@ -2032,28 +2009,37 @@ typedef struct ddog_ffe_AttributePair {
2032
2009
  struct ddog_ffe_AttributeValue value;
2033
2010
  } ddog_ffe_AttributePair;
2034
2011
 
2012
+ typedef enum ddog_crasht_BuildIdType {
2013
+ DDOG_CRASHT_BUILD_ID_TYPE_GNU,
2014
+ DDOG_CRASHT_BUILD_ID_TYPE_GO,
2015
+ DDOG_CRASHT_BUILD_ID_TYPE_PDB,
2016
+ DDOG_CRASHT_BUILD_ID_TYPE_SHA1,
2017
+ } ddog_crasht_BuildIdType;
2018
+
2035
2019
  /**
2036
- * Stacktrace collection occurs in the context of a crashing process.
2037
- * If the stack is sufficiently corruputed, it is possible (but unlikely),
2038
- * for stack trace collection itself to crash.
2039
- * We recommend fully enabling stacktrace collection, but having an environment
2040
- * variable to allow downgrading the collector.
2020
+ * Result type for runtime callback registration
2041
2021
  */
2042
- typedef enum ddog_crasht_StacktraceCollection {
2043
- /**
2044
- * Stacktrace collection occurs in the
2045
- */
2046
- DDOG_CRASHT_STACKTRACE_COLLECTION_DISABLED,
2047
- DDOG_CRASHT_STACKTRACE_COLLECTION_WITHOUT_SYMBOLS,
2048
- /**
2049
- * This option uses `backtrace::resolve_frame_unsynchronized()` to gather symbol information
2050
- * and also unwind inlined functions. Enabling this feature will not only provide symbolic
2051
- * details, but may also yield additional or less stack frames compared to other
2052
- * configurations.
2053
- */
2054
- DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_INPROCESS_SYMBOLS,
2055
- DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_SYMBOLS_IN_RECEIVER,
2056
- } ddog_crasht_StacktraceCollection;
2022
+ typedef enum ddog_crasht_CallbackResult {
2023
+ DDOG_CRASHT_CALLBACK_RESULT_OK,
2024
+ DDOG_CRASHT_CALLBACK_RESULT_ERROR,
2025
+ } ddog_crasht_CallbackResult;
2026
+
2027
+ typedef enum ddog_crasht_DemangleOptions {
2028
+ DDOG_CRASHT_DEMANGLE_OPTIONS_COMPLETE,
2029
+ DDOG_CRASHT_DEMANGLE_OPTIONS_NAME_ONLY,
2030
+ } ddog_crasht_DemangleOptions;
2031
+
2032
+ typedef enum ddog_crasht_ErrorKind {
2033
+ DDOG_CRASHT_ERROR_KIND_PANIC,
2034
+ DDOG_CRASHT_ERROR_KIND_UNHANDLED_EXCEPTION,
2035
+ DDOG_CRASHT_ERROR_KIND_UNIX_SIGNAL,
2036
+ } ddog_crasht_ErrorKind;
2037
+
2038
+ typedef enum ddog_crasht_FileType {
2039
+ DDOG_CRASHT_FILE_TYPE_APK,
2040
+ DDOG_CRASHT_FILE_TYPE_ELF,
2041
+ DDOG_CRASHT_FILE_TYPE_PE,
2042
+ } ddog_crasht_FileType;
2057
2043
 
2058
2044
  /**
2059
2045
  * This enum represents operations a the tracked library might be engaged in.
@@ -2078,12 +2064,6 @@ typedef enum ddog_crasht_OpTypes {
2078
2064
  DDOG_CRASHT_OP_TYPES_SIZE,
2079
2065
  } ddog_crasht_OpTypes;
2080
2066
 
2081
- typedef enum ddog_crasht_ErrorKind {
2082
- DDOG_CRASHT_ERROR_KIND_PANIC,
2083
- DDOG_CRASHT_ERROR_KIND_UNHANDLED_EXCEPTION,
2084
- DDOG_CRASHT_ERROR_KIND_UNIX_SIGNAL,
2085
- } ddog_crasht_ErrorKind;
2086
-
2087
2067
  /**
2088
2068
  * See https://man7.org/linux/man-pages/man2/sigaction.2.html
2089
2069
  * MUST REMAIN IN SYNC WITH THE ENUM IN emit_sigcodes.c
@@ -2156,31 +2136,28 @@ typedef enum ddog_crasht_SignalNames {
2156
2136
  DDOG_CRASHT_SIGNAL_NAMES_UNKNOWN,
2157
2137
  } ddog_crasht_SignalNames;
2158
2138
 
2159
- typedef enum ddog_crasht_BuildIdType {
2160
- DDOG_CRASHT_BUILD_ID_TYPE_GNU,
2161
- DDOG_CRASHT_BUILD_ID_TYPE_GO,
2162
- DDOG_CRASHT_BUILD_ID_TYPE_PDB,
2163
- DDOG_CRASHT_BUILD_ID_TYPE_SHA1,
2164
- } ddog_crasht_BuildIdType;
2165
-
2166
- typedef enum ddog_crasht_FileType {
2167
- DDOG_CRASHT_FILE_TYPE_APK,
2168
- DDOG_CRASHT_FILE_TYPE_ELF,
2169
- DDOG_CRASHT_FILE_TYPE_PE,
2170
- } ddog_crasht_FileType;
2171
-
2172
- typedef enum ddog_crasht_DemangleOptions {
2173
- DDOG_CRASHT_DEMANGLE_OPTIONS_COMPLETE,
2174
- DDOG_CRASHT_DEMANGLE_OPTIONS_NAME_ONLY,
2175
- } ddog_crasht_DemangleOptions;
2176
-
2177
2139
  /**
2178
- * Result type for runtime callback registration
2140
+ * Stacktrace collection occurs in the context of a crashing process.
2141
+ * If the stack is sufficiently corruputed, it is possible (but unlikely),
2142
+ * for stack trace collection itself to crash.
2143
+ * We recommend fully enabling stacktrace collection, but having an environment
2144
+ * variable to allow downgrading the collector.
2179
2145
  */
2180
- typedef enum ddog_crasht_CallbackResult {
2181
- DDOG_CRASHT_CALLBACK_RESULT_OK,
2182
- DDOG_CRASHT_CALLBACK_RESULT_ERROR,
2183
- } ddog_crasht_CallbackResult;
2146
+ typedef enum ddog_crasht_StacktraceCollection {
2147
+ /**
2148
+ * Stacktrace collection occurs in the
2149
+ */
2150
+ DDOG_CRASHT_STACKTRACE_COLLECTION_DISABLED,
2151
+ DDOG_CRASHT_STACKTRACE_COLLECTION_WITHOUT_SYMBOLS,
2152
+ /**
2153
+ * This option uses `backtrace::resolve_frame_unsynchronized()` to gather symbol information
2154
+ * and also unwind inlined functions. Enabling this feature will not only provide symbolic
2155
+ * details, but may also yield additional or less stack frames compared to other
2156
+ * configurations.
2157
+ */
2158
+ DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_INPROCESS_SYMBOLS,
2159
+ DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_SYMBOLS_IN_RECEIVER,
2160
+ } ddog_crasht_StacktraceCollection;
2184
2161
 
2185
2162
  typedef struct ddog_crasht_CrashInfo ddog_crasht_CrashInfo;
2186
2163
 
@@ -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,33 @@ 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.
123
+ * This is a more efficient version of calling `ddog_prof_Exporter_Request_build`
124
+ * followed by `ddog_prof_Exporter_send`, as it avoids exposing the intermediate
125
+ * `Request` object.
165
126
  *
166
127
  * # 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.
171
- *
172
- * # Safety
173
- * All non-null arguments MUST have been created by created by apis in this module.
174
- */
175
- 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);
128
+ * * `exporter` - Borrows the exporter.
129
+ * * `profile` - Takes ownership of the profile.
130
+ * * `files_to_compress_and_export` - Files to compress and attach to the profile.
131
+ * * `optional_additional_tags` - Additional tags to include with this profile.
132
+ * * `optional_process_tags` - Process-level tags as a comma-separated string.
133
+ * * `optional_internal_metadata_json` - Internal metadata as a JSON string.
134
+ * * `optional_info_json` - System info as a JSON string.
135
+ * * `cancel` - Optional cancellation token.
136
+ *
137
+ * # Safety
138
+ * All non-null arguments MUST have been created by APIs in this module.
139
+ */
140
+ DDOG_CHECK_RETURN
141
+ struct ddog_prof_Result_HttpStatus ddog_prof_Exporter_send_blocking(struct ddog_prof_ProfileExporter *exporter,
142
+ struct ddog_prof_EncodedProfile *profile,
143
+ struct ddog_prof_Exporter_Slice_File files_to_compress_and_export,
144
+ const struct ddog_Vec_Tag *optional_additional_tags,
145
+ const ddog_CharSlice *optional_process_tags,
146
+ const ddog_CharSlice *optional_internal_metadata_json,
147
+ const ddog_CharSlice *optional_info_json,
148
+ struct ddog_CancellationToken *cancel);
179
149
 
180
150
  /**
181
151
  * Can be passed as an argument to send and then be used to asynchronously cancel it from a
@@ -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: 26.0.0
12
12
  Requires:
13
13
  Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
14
14
  Libs.private: