libdatadog 29.0.0.1.0 → 33.0.0.1.0

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 (95) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/tasks/build.rake +175 -0
  4. data/vendor/libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.csv +548 -0
  5. data/vendor/{libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/common.h +109 -20
  6. data/vendor/{libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/data-pipeline.h +32 -4
  7. data/vendor/{libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/ffe.h +7 -3
  8. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/profiling.h +79 -6
  9. data/vendor/{libdatadog-29.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/telemetry.h +21 -0
  10. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  11. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  12. data/vendor/libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.csv +548 -0
  13. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  14. data/vendor/{libdatadog-29.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/common.h +109 -20
  15. data/vendor/{libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/data-pipeline.h +32 -4
  16. data/vendor/{libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/ffe.h +7 -3
  17. data/vendor/{libdatadog-29.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/profiling.h +79 -6
  18. data/vendor/{libdatadog-29.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/telemetry.h +21 -0
  19. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  20. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  21. data/vendor/libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin/LICENSE-3rdparty.csv +548 -0
  22. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/bin/libdatadog-crashtracking-receiver +0 -0
  23. data/vendor/{libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/include/datadog/common.h +109 -20
  24. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/data-pipeline.h +32 -4
  25. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/ffe.h +7 -3
  26. data/vendor/{libdatadog-29.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/include/datadog/profiling.h +79 -6
  27. data/vendor/{libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/include/datadog/telemetry.h +21 -0
  28. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/lib/libdatadog_profiling.dylib +0 -0
  29. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  30. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.csv +548 -0
  31. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h +2875 -0
  32. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/data-pipeline.h +216 -0
  33. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/ffe.h +179 -0
  34. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h +1130 -0
  35. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h +307 -0
  36. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  37. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +15 -0
  38. data/vendor/libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.csv +548 -0
  39. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  40. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/common.h +109 -20
  41. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/data-pipeline.h +32 -4
  42. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/ffe.h +7 -3
  43. data/vendor/{libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/profiling.h +79 -6
  44. data/vendor/{libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/telemetry.h +21 -0
  45. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  46. data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  47. metadata +83 -82
  48. data/vendor/libdatadog-29.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +0 -55788
  49. data/vendor/libdatadog-29.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +0 -55788
  50. data/vendor/libdatadog-29.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin/LICENSE-3rdparty.yml +0 -55788
  51. data/vendor/libdatadog-29.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +0 -55788
  52. data/vendor/libdatadog-29.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h +0 -2786
  53. data/vendor/libdatadog-29.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/data-pipeline.h +0 -188
  54. data/vendor/libdatadog-29.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/ffe.h +0 -175
  55. data/vendor/libdatadog-29.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h +0 -1057
  56. data/vendor/libdatadog-29.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h +0 -286
  57. data/vendor/libdatadog-29.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -15
  58. data/vendor/libdatadog-29.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +0 -55788
  59. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
  60. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
  61. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  62. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
  63. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/crashtracker.h +0 -0
  64. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ddsketch.h +0 -0
  65. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/library-config.h +0 -0
  66. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/log.h +0 -0
  67. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
  68. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
  69. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
  70. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/crashtracker.h +0 -0
  71. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ddsketch.h +0 -0
  72. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/library-config.h +0 -0
  73. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/log.h +0 -0
  74. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/LICENSE +0 -0
  75. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/NOTICE +0 -0
  76. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/blazesym.h +0 -0
  77. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/crashtracker.h +0 -0
  78. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/ddsketch.h +0 -0
  79. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/library-config.h +0 -0
  80. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/log.h +0 -0
  81. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
  82. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
  83. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  84. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
  85. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/crashtracker.h +0 -0
  86. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/ddsketch.h +0 -0
  87. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/library-config.h +0 -0
  88. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/log.h +0 -0
  89. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
  90. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -0
  91. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
  92. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/crashtracker.h +0 -0
  93. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/ddsketch.h +0 -0
  94. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/library-config.h +0 -0
  95. /data/vendor/{libdatadog-29.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/log.h +0 -0
@@ -39,6 +39,12 @@
39
39
  # define DDOG_CHECK_RETURN
40
40
  #endif
41
41
 
42
+ #ifdef _WIN32
43
+ #define LIBDD_DLLIMPORT __declspec(dllimport)
44
+ #else
45
+ #define LIBDD_DLLIMPORT
46
+ #endif
47
+
42
48
  /**
43
49
  * Default value for the timeout field in milliseconds.
44
50
  */
@@ -483,6 +489,24 @@ typedef struct ddog_prof_ProfileExporter_Result {
483
489
  };
484
490
  } ddog_prof_ProfileExporter_Result;
485
491
 
492
+ /**
493
+ * A generic result type for when an operation may fail,
494
+ * but there's nothing to return in the case of success.
495
+ */
496
+ typedef enum ddog_VoidResult_Tag {
497
+ DDOG_VOID_RESULT_OK,
498
+ DDOG_VOID_RESULT_ERR,
499
+ } ddog_VoidResult_Tag;
500
+
501
+ typedef struct ddog_VoidResult {
502
+ ddog_VoidResult_Tag tag;
503
+ union {
504
+ struct {
505
+ struct ddog_Error err;
506
+ };
507
+ };
508
+ } ddog_VoidResult;
509
+
486
510
  typedef struct ddog_HttpStatus {
487
511
  uint16_t code;
488
512
  } ddog_HttpStatus;
@@ -555,24 +579,6 @@ typedef struct ddog_prof_Result_HandleExporterManager {
555
579
  };
556
580
  } ddog_prof_Result_HandleExporterManager;
557
581
 
558
- /**
559
- * A generic result type for when an operation may fail,
560
- * but there's nothing to return in the case of success.
561
- */
562
- typedef enum ddog_VoidResult_Tag {
563
- DDOG_VOID_RESULT_OK,
564
- DDOG_VOID_RESULT_ERR,
565
- } ddog_VoidResult_Tag;
566
-
567
- typedef struct ddog_VoidResult {
568
- ddog_VoidResult_Tag tag;
569
- union {
570
- struct {
571
- struct ddog_Error err;
572
- };
573
- };
574
- } ddog_VoidResult;
575
-
576
582
  /**
577
583
  * Represents the result of an operation that either succeeds with no value, or fails with an
578
584
  * error message. This is like `Result<(), Cow<'static, CStr>` except its representation is
@@ -895,6 +901,10 @@ typedef struct ddog_prof_StringHeader {
895
901
  * another, even if it happens to work by implementation detail. There is an
896
902
  * exception is for well-known strings, which are considered present in every
897
903
  * string set.
904
+ *
905
+ * Equality and hashing are defined by pointer identity, so they are only
906
+ * meaningful when comparing ids that originate from the same
907
+ * `ProfilesDictionary`.
898
908
  */
899
909
  typedef struct ddog_prof_StringHeader *ddog_prof_StringId2;
900
910
 
@@ -928,6 +938,10 @@ typedef struct ddog_prof_Mapping2 *ddog_prof_MappingId2;
928
938
  /**
929
939
  * An FFI-safe version of the Function which allows null. Be sure to maintain
930
940
  * layout-compatibility with it, except that StringId2 may be null.
941
+ *
942
+ * Equality and hashing are defined by pointer identity, so they are only
943
+ * meaningful when comparing ids that originate from the same
944
+ * `ProfilesDictionary`.
931
945
  */
932
946
  typedef struct ddog_prof_Function2 {
933
947
  ddog_prof_StringId2 name;
@@ -1418,6 +1432,20 @@ typedef struct ddog_prof_Result_Generation {
1418
1432
  };
1419
1433
  } ddog_prof_Result_Generation;
1420
1434
 
1435
+ typedef struct ddog_prof_MutSlice_StringId2 {
1436
+ /**
1437
+ * Should be non-null and suitably aligned for the underlying type. It is
1438
+ * allowed but not recommended for the pointer to be null when the len is
1439
+ * zero.
1440
+ */
1441
+ ddog_prof_StringId2 *ptr;
1442
+ /**
1443
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
1444
+ * than or equal to [isize::MAX].
1445
+ */
1446
+ uintptr_t len;
1447
+ } ddog_prof_MutSlice_StringId2;
1448
+
1421
1449
  typedef enum ddog_prof_ManagedStringStorageNewResult_Tag {
1422
1450
  DDOG_PROF_MANAGED_STRING_STORAGE_NEW_RESULT_OK,
1423
1451
  DDOG_PROF_MANAGED_STRING_STORAGE_NEW_RESULT_ERR,
@@ -1544,6 +1572,9 @@ typedef enum ddog_TelemetryWorkerBuilderStrProperty {
1544
1572
  DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_RELEASE,
1545
1573
  DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_VERSION,
1546
1574
  DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_RUNTIME_ID,
1575
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_SESSION_ID,
1576
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_PARENT_SESSION_ID,
1577
+ DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_ROOT_SESSION_ID,
1547
1578
  } ddog_TelemetryWorkerBuilderStrProperty;
1548
1579
 
1549
1580
  typedef struct ddog_TelemetryWorkerBuilder ddog_TelemetryWorkerBuilder;
@@ -1592,6 +1623,9 @@ typedef struct ddog_ContextKey {
1592
1623
  enum ddog_MetricType _1;
1593
1624
  } ddog_ContextKey;
1594
1625
 
1626
+ typedef struct ddog_TraceExporter ddog_TraceExporter;
1627
+
1628
+
1595
1629
  /**
1596
1630
  * Represent error codes that `Error` struct can hold
1597
1631
  */
@@ -1632,7 +1666,18 @@ typedef enum ddog_TraceExporterErrorCode {
1632
1666
  */
1633
1667
  typedef struct ddog_TraceExporterResponse ddog_TraceExporterResponse;
1634
1668
 
1635
- typedef struct ddog_TraceExporter ddog_TraceExporter;
1669
+ /**
1670
+ * A shared runtime that manages PausableWorkers and provides fork safety hooks.
1671
+ *
1672
+ * The SharedRuntime owns a tokio runtime and tracks PausableWorkers spawned on it.
1673
+ * It provides methods to safely pause workers before forking and restart them
1674
+ * after fork in both parent and child processes.
1675
+ *
1676
+ * # Mutex lock order
1677
+ * When locking both [Self::runtime] and [Self::workers], the mutex must be locked in the order of
1678
+ * the fields in the struct. When possible avoid holding both locks simultaneously.
1679
+ */
1680
+ typedef struct ddog_SharedRuntime ddog_SharedRuntime;
1636
1681
 
1637
1682
  /**
1638
1683
  * The TraceExporterConfig object will hold the configuration properties for the TraceExporter.
@@ -1671,6 +1716,18 @@ typedef struct ddog_TelemetryClientConfig {
1671
1716
  * Defaults to false.
1672
1717
  */
1673
1718
  bool debug_enabled;
1719
+ /**
1720
+ * HTTP header `dd-session-id` (empty = omitted).
1721
+ */
1722
+ ddog_CharSlice session_id;
1723
+ /**
1724
+ * HTTP header `dd-root-session-id` (empty = omitted).
1725
+ */
1726
+ ddog_CharSlice root_session_id;
1727
+ /**
1728
+ * HTTP header `dd-parent-session-id` (empty = omitted).
1729
+ */
1730
+ ddog_CharSlice parent_session_id;
1674
1731
  } ddog_TelemetryClientConfig;
1675
1732
 
1676
1733
  typedef enum ddog_LibraryConfigSource {
@@ -2069,6 +2126,20 @@ typedef struct ddog_ffe_VariantValue {
2069
2126
  };
2070
2127
  } ddog_ffe_VariantValue;
2071
2128
 
2129
+ typedef enum ddog_Option_I32_Tag {
2130
+ DDOG_OPTION_I32_SOME_I32,
2131
+ DDOG_OPTION_I32_NONE_I32,
2132
+ } ddog_Option_I32_Tag;
2133
+
2134
+ typedef struct ddog_Option_I32 {
2135
+ ddog_Option_I32_Tag tag;
2136
+ union {
2137
+ struct {
2138
+ int32_t some;
2139
+ };
2140
+ };
2141
+ } ddog_Option_I32;
2142
+
2072
2143
  typedef struct ddog_ffe_KeyValue_BorrowedStr {
2073
2144
  struct ddog_ffe_BorrowedStr key;
2074
2145
  struct ddog_ffe_BorrowedStr value;
@@ -2305,6 +2376,14 @@ typedef struct ddog_crasht_Slice_CharSlice {
2305
2376
  uintptr_t len;
2306
2377
  } ddog_crasht_Slice_CharSlice;
2307
2378
 
2379
+ typedef struct ddog_crasht_EndpointConfig {
2380
+ ddog_CharSlice url;
2381
+ ddog_CharSlice api_key;
2382
+ ddog_CharSlice test_token;
2383
+ uint64_t timeout;
2384
+ bool use_system_resolver;
2385
+ } ddog_crasht_EndpointConfig;
2386
+
2308
2387
  typedef struct ddog_crasht_Slice_I32 {
2309
2388
  /**
2310
2389
  * Should be non-null and suitably aligned for the underlying type. It is
@@ -2321,13 +2400,23 @@ typedef struct ddog_crasht_Slice_I32 {
2321
2400
 
2322
2401
  typedef struct ddog_crasht_Config {
2323
2402
  struct ddog_crasht_Slice_CharSlice additional_files;
2403
+ /**
2404
+ * If true, the receiver will collect stack traces for all threads in the crashing process
2405
+ * (not just the crashing thread) using ptrace-based remote unwinding.
2406
+ */
2407
+ bool collect_all_threads;
2324
2408
  bool create_alt_stack;
2325
2409
  bool demangle_names;
2326
2410
  /**
2327
2411
  * The endpoint to send the crash report to (can be a file://).
2328
2412
  * If None, the crashtracker will infer the agent host from env variables.
2329
2413
  */
2330
- const struct ddog_Endpoint *endpoint;
2414
+ struct ddog_crasht_EndpointConfig endpoint;
2415
+ /**
2416
+ * Maximum number of non-crashing threads to collect when `collect_all_threads` is true.
2417
+ * If 0, uses the default (`libdd_crashtracker::default_max_threads()`).
2418
+ */
2419
+ uintptr_t max_threads;
2331
2420
  /**
2332
2421
  * Optional filename for a unix domain socket if the receiver is used asynchonously
2333
2422
  */
@@ -10,7 +10,6 @@
10
10
  #include <stdint.h>
11
11
  #include <stdlib.h>
12
12
  #include "common.h"
13
-
14
13
  #ifdef __cplusplus
15
14
  extern "C" {
16
15
  #endif // __cplusplus
@@ -145,15 +144,44 @@ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_test_session_toke
145
144
  struct ddog_TraceExporterError *ddog_trace_exporter_config_set_connection_timeout(struct ddog_TraceExporterConfig *config,
146
145
  uint64_t timeout_ms);
147
146
 
147
+ /**
148
+ * Sets a shared runtime for the TraceExporter to use for background workers.
149
+ *
150
+ * `handle` must have been initialized with [`ddog_shared_runtime_new`].
151
+ *
152
+ * When set, the exporter will use the provided runtime instead of creating its own.
153
+ * This allows multiple exporters (or other components) to share a single runtime.
154
+ * The config holds a clone of the `Arc` (increments the strong count), so the
155
+ * original handle remains valid and must still be freed with
156
+ * [`ddog_shared_runtime_free`].
157
+ */
158
+ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_shared_runtime(struct ddog_TraceExporterConfig *config,
159
+ struct ddog_SharedRuntime *handle);
160
+
161
+ /**
162
+ * Enables OTLP HTTP/JSON export and sets the endpoint URL.
163
+ *
164
+ * When set, traces are sent to this URL in OTLP HTTP/JSON format instead of the Datadog
165
+ * agent. The host language is responsible for resolving the endpoint from its configuration
166
+ * (e.g. `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`) before calling this function.
167
+ */
168
+ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_otlp_endpoint(struct ddog_TraceExporterConfig *config,
169
+ ddog_CharSlice url);
170
+
148
171
  /**
149
172
  * Create a new TraceExporter instance.
150
173
  *
174
+ * When an OTLP endpoint is configured via `TraceExporterConfig`, the exporter sends traces in
175
+ * OTLP HTTP/JSON to that endpoint instead of the Datadog agent. The same payload (e.g.
176
+ * MessagePack) is passed to `ddog_trace_exporter_send`; the library decodes and converts to
177
+ * OTLP when OTLP is enabled.
178
+ *
151
179
  * # Arguments
152
180
  *
153
181
  * * `out_handle` - The handle to write the TraceExporter instance in.
154
182
  * * `config` - The configuration used to set up the TraceExporter handle.
155
183
  */
156
- struct ddog_TraceExporterError *ddog_trace_exporter_new(struct ddog_TraceExporter **out_handle,
184
+ struct ddog_TraceExporterError *ddog_trace_exporter_new(ddog_TraceExporter **out_handle,
157
185
  const struct ddog_TraceExporterConfig *config);
158
186
 
159
187
  /**
@@ -163,7 +191,7 @@ struct ddog_TraceExporterError *ddog_trace_exporter_new(struct ddog_TraceExporte
163
191
  *
164
192
  * * handle - The handle to the TraceExporter instance.
165
193
  */
166
- void ddog_trace_exporter_free(struct ddog_TraceExporter *handle);
194
+ void ddog_trace_exporter_free(ddog_TraceExporter *handle);
167
195
 
168
196
  /**
169
197
  * Send traces to the Datadog Agent.
@@ -177,7 +205,7 @@ void ddog_trace_exporter_free(struct ddog_TraceExporter *handle);
177
205
  * * `trace_count` - The number of traces to send to the Datadog Agent.
178
206
  * * `response_out` - Optional handle to store a pointer to the agent response information.
179
207
  */
180
- struct ddog_TraceExporterError *ddog_trace_exporter_send(const struct ddog_TraceExporter *handle,
208
+ struct ddog_TraceExporterError *ddog_trace_exporter_send(const ddog_TraceExporter *handle,
181
209
  ddog_ByteSlice trace,
182
210
  struct ddog_TraceExporterResponse **response_out);
183
211
 
@@ -94,22 +94,26 @@ enum ddog_ffe_ErrorCode ddog_ffe_assignment_get_error_code(ddog_ffe_Handle_Resol
94
94
  struct ddog_ffe_BorrowedStr ddog_ffe_assignment_get_error_message(ddog_ffe_Handle_ResolutionDetails assignment);
95
95
 
96
96
  /**
97
+ * Get the serial_id produced by evaluation.
98
+ *
99
+ * Returns `None` if the assignment has no serial_id or evaluation did not produce any value.
100
+ *
97
101
  * # Safety
98
102
  * `assignment` must be a valid handle.
99
103
  */
100
- bool ddog_ffe_assignment_get_do_log(ddog_ffe_Handle_ResolutionDetails assignment);
104
+ struct ddog_Option_I32 ddog_ffe_assignment_get_serial_id(ddog_ffe_Handle_ResolutionDetails assignment);
101
105
 
102
106
  /**
103
107
  * # Safety
104
108
  * `assignment` must be a valid handle.
105
109
  */
106
- struct ddog_ffe_ArrayMap_BorrowedStr ddog_ffe_assignnment_get_flag_metadata(ddog_ffe_Handle_ResolutionDetails assignment);
110
+ bool ddog_ffe_assignment_get_do_log(ddog_ffe_Handle_ResolutionDetails assignment);
107
111
 
108
112
  /**
109
113
  * # Safety
110
114
  * `assignment` must be a valid handle.
111
115
  */
112
- struct ddog_ffe_ArrayMap_BorrowedStr ddog_ffe_assignnment_get_extra_logging(ddog_ffe_Handle_ResolutionDetails assignment);
116
+ struct ddog_ffe_ArrayMap_BorrowedStr ddog_ffe_assignnment_get_flag_metadata(ddog_ffe_Handle_ResolutionDetails assignment);
113
117
 
114
118
  /**
115
119
  * Frees an Assignment handle.
@@ -19,42 +19,56 @@ struct TokioCancellationToken;
19
19
  extern "C" {
20
20
  #endif // __cplusplus
21
21
 
22
- extern const ddog_prof_StringId ddog_INTERNED_EMPTY_STRING;
22
+ extern LIBDD_DLLIMPORT const ddog_prof_StringId ddog_INTERNED_EMPTY_STRING;
23
23
 
24
24
  /**
25
25
  * A StringId that represents the empty string.
26
26
  * This is always available in every string set and can be used without
27
27
  * needing to insert it into a string set.
28
28
  */
29
- extern const ddog_prof_StringId2 DDOG_PROF_STRINGID2_EMPTY;
29
+ extern LIBDD_DLLIMPORT const ddog_prof_StringId2 DDOG_PROF_STRINGID2_EMPTY;
30
30
 
31
31
  /**
32
32
  * A StringId that represents the string "end_timestamp_ns".
33
33
  * This is always available in every string set and can be used without
34
34
  * needing to insert it into a string set.
35
35
  */
36
- extern const ddog_prof_StringId2 DDOG_PROF_STRINGID2_END_TIMESTAMP_NS;
36
+ extern LIBDD_DLLIMPORT const ddog_prof_StringId2 DDOG_PROF_STRINGID2_END_TIMESTAMP_NS;
37
37
 
38
38
  /**
39
39
  * A StringId that represents the string "local root span id".
40
40
  * This is always available in every string set and can be used without
41
41
  * needing to insert it into a string set.
42
42
  */
43
- extern const ddog_prof_StringId2 DDOG_PROF_STRINGID2_LOCAL_ROOT_SPAN_ID;
43
+ extern LIBDD_DLLIMPORT const ddog_prof_StringId2 DDOG_PROF_STRINGID2_LOCAL_ROOT_SPAN_ID;
44
44
 
45
45
  /**
46
46
  * A StringId that represents the string "trace endpoint".
47
47
  * This is always available in every string set and can be used without
48
48
  * needing to insert it into a string set.
49
49
  */
50
- extern const ddog_prof_StringId2 DDOG_PROF_STRINGID2_TRACE_ENDPOINT;
50
+ extern LIBDD_DLLIMPORT const ddog_prof_StringId2 DDOG_PROF_STRINGID2_TRACE_ENDPOINT;
51
51
 
52
52
  /**
53
53
  * A StringId that represents the string "span id".
54
54
  * This is always available in every string set and can be used without
55
55
  * needing to insert it into a string set.
56
56
  */
57
- extern const ddog_prof_StringId2 DDOG_PROF_STRINGID2_SPAN_ID;
57
+ extern LIBDD_DLLIMPORT const ddog_prof_StringId2 DDOG_PROF_STRINGID2_SPAN_ID;
58
+
59
+ /**
60
+ * A StringId that represents the string "thread id".
61
+ * This is always available in every string set and can be used without
62
+ * needing to insert it into a string set.
63
+ */
64
+ extern LIBDD_DLLIMPORT const ddog_prof_StringId2 DDOG_PROF_STRINGID2_THREAD_ID;
65
+
66
+ /**
67
+ * A StringId that represents the string "thread name".
68
+ * This is always available in every string set and can be used without
69
+ * needing to insert it into a string set.
70
+ */
71
+ extern LIBDD_DLLIMPORT const ddog_prof_StringId2 DDOG_PROF_STRINGID2_THREAD_NAME;
58
72
 
59
73
  DDOG_CHECK_RETURN struct ddog_prof_Exporter_Slice_File ddog_prof_Exporter_Slice_File_empty(void);
60
74
 
@@ -126,9 +140,32 @@ struct ddog_prof_ProfileExporter_Result ddog_prof_Exporter_new(ddog_CharSlice pr
126
140
  */
127
141
  void ddog_prof_Exporter_drop(struct ddog_prof_ProfileExporter *exporter);
128
142
 
143
+ /**
144
+ * Initializes the tokio runtime for the exporter.
145
+ *
146
+ * This function creates the tokio runtime used by `ddog_prof_Exporter_send_blocking`.
147
+ * It can be called ahead of time to ensure the runtime is ready before sending.
148
+ *
149
+ * # Thread Affinity
150
+ *
151
+ * **Important**: The runtime has thread affinity. This function should be called from
152
+ * the same thread that will later call `ddog_prof_Exporter_send_blocking`.
153
+ *
154
+ * # Arguments
155
+ * * `exporter` - Borrows the exporter.
156
+ *
157
+ * # Safety
158
+ * The `exporter` must point to a valid ProfileExporter that has not been dropped.
159
+ */
160
+ DDOG_CHECK_RETURN
161
+ struct ddog_VoidResult ddog_prof_Exporter_init_runtime(struct ddog_prof_ProfileExporter *exporter);
162
+
129
163
  /**
130
164
  * Builds a request and sends it, returning the HttpStatus.
131
165
  *
166
+ * Note: If the runtime has not been initialized via `ddog_prof_Exporter_init_runtime`,
167
+ * it will be lazily initialized on first call.
168
+ *
132
169
  * # Arguments
133
170
  * * `exporter` - Borrows the exporter.
134
171
  * * `profile` - Takes ownership of the profile.
@@ -954,6 +991,29 @@ struct ddog_prof_Status ddog_prof_ProfilesDictionary_insert_str(ddog_prof_String
954
991
  ddog_CharSlice byte_slice,
955
992
  enum ddog_prof_Utf8Option utf8_option);
956
993
 
994
+ /**
995
+ * Inserts a batch of UTF-8 strings into the dictionary string table.
996
+ *
997
+ * On success, each element of `string_ids` corresponds to the same-index element of
998
+ * `strings`. The length of `string_ids` must equal the length of `strings`; a
999
+ * mismatch is an error.
1000
+ *
1001
+ * On failure the number of entries written to `string_ids` is unspecified; callers
1002
+ * must not read any element of `string_ids`.
1003
+ *
1004
+ * # Safety
1005
+ *
1006
+ * - `dict` must refer to a live dictionary.
1007
+ * - `strings` must be a valid slice for the duration of the call.
1008
+ * - `string_ids` must be a valid writable slice of `StringId2` with the same length as `strings`.
1009
+ * - The UTF-8 policy indicated by `utf8_option` must be respected by the caller for every string
1010
+ * in `strings`.
1011
+ */
1012
+ struct ddog_prof_Status ddog_prof_ProfilesDictionary_insert_strs(struct ddog_prof_MutSlice_StringId2 string_ids,
1013
+ const struct ddog_prof_ProfilesDictionary *dict,
1014
+ struct ddog_prof_Slice_CharSlice strings,
1015
+ enum ddog_prof_Utf8Option utf8_option);
1016
+
957
1017
  /**
958
1018
  * Tries to get the string value associated with the string id. Fails if the
959
1019
  * handle has been taken from, or the result param is null.
@@ -973,6 +1033,19 @@ struct ddog_prof_Status ddog_prof_ProfilesDictionary_get_str(ddog_CharSlice *res
973
1033
  const struct ddog_prof_ProfilesDictionary *dict,
974
1034
  ddog_prof_StringId2 string_id);
975
1035
 
1036
+ /**
1037
+ * Tries to get the function value associated with the function id.
1038
+ *
1039
+ * # Safety
1040
+ *
1041
+ * 1. The `function_id` should belong to this dictionary.
1042
+ * 2. The dictionary must be live for the duration of the call.
1043
+ * 3. The result pointer must be valid for [`core::ptr::write`].
1044
+ */
1045
+ struct ddog_prof_Status ddog_prof_ProfilesDictionary_get_func(struct ddog_prof_Function2 *result,
1046
+ const struct ddog_prof_ProfilesDictionary *dict,
1047
+ ddog_prof_FunctionId2 function_id);
1048
+
976
1049
  /**
977
1050
  * Drops the `ProfilesDictionary` that the handle owns, leaving a valid but
978
1051
  * useless handle (all operations on it will error). This takes a pointer to
@@ -123,6 +123,15 @@ ddog_MaybeError ddog_telemetry_builder_with_str_host_kernel_version(struct ddog_
123
123
  ddog_MaybeError ddog_telemetry_builder_with_str_runtime_id(struct ddog_TelemetryWorkerBuilder *telemetry_builder,
124
124
  ddog_CharSlice param);
125
125
 
126
+ ddog_MaybeError ddog_telemetry_builder_with_str_session_id(struct ddog_TelemetryWorkerBuilder *telemetry_builder,
127
+ ddog_CharSlice param);
128
+
129
+ ddog_MaybeError ddog_telemetry_builder_with_str_parent_session_id(struct ddog_TelemetryWorkerBuilder *telemetry_builder,
130
+ ddog_CharSlice param);
131
+
132
+ ddog_MaybeError ddog_telemetry_builder_with_str_root_session_id(struct ddog_TelemetryWorkerBuilder *telemetry_builder,
133
+ ddog_CharSlice param);
134
+
126
135
  /**
127
136
  * Sets a property from it's string value.
128
137
  *
@@ -150,6 +159,12 @@ ddog_MaybeError ddog_telemetry_builder_with_str_runtime_id(struct ddog_Telemetry
150
159
  *
151
160
  * * runtime_id
152
161
  *
162
+ * * session_id
163
+ *
164
+ * * parent_session_id
165
+ *
166
+ * * root_session_id
167
+ *
153
168
  *
154
169
  */
155
170
  ddog_MaybeError ddog_telemetry_builder_with_property_str(struct ddog_TelemetryWorkerBuilder *telemetry_builder,
@@ -183,6 +198,12 @@ ddog_MaybeError ddog_telemetry_builder_with_property_str(struct ddog_TelemetryWo
183
198
  *
184
199
  * * runtime_id
185
200
  *
201
+ * * session_id
202
+ *
203
+ * * parent_session_id
204
+ *
205
+ * * root_session_id
206
+ *
186
207
  *
187
208
  */
188
209
  ddog_MaybeError ddog_telemetry_builder_with_str_named_property(struct ddog_TelemetryWorkerBuilder *telemetry_builder,
@@ -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: 29.0.0
11
+ Version: 33.0.0
12
12
  Requires:
13
13
  Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
14
14
  Libs.private: