libdatadog 30.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-30.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 +80 -19
  6. data/vendor/{libdatadog-30.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 +17 -4
  7. data/vendor/{libdatadog-30.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-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/profiling.h +36 -0
  9. data/vendor/{libdatadog-30.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-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  11. data/vendor/{libdatadog-30.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-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  14. data/vendor/{libdatadog-30.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/common.h +80 -19
  15. data/vendor/{libdatadog-30.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 +17 -4
  16. data/vendor/{libdatadog-30.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-30.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/profiling.h +36 -0
  18. data/vendor/{libdatadog-30.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-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  20. data/vendor/{libdatadog-30.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-30.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/bin/libdatadog-crashtracking-receiver +0 -0
  23. data/vendor/{libdatadog-30.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/include/datadog/common.h +80 -19
  24. data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/data-pipeline.h +17 -4
  25. data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/ffe.h +7 -3
  26. data/vendor/{libdatadog-30.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 +36 -0
  27. data/vendor/{libdatadog-30.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-30.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/lib/libdatadog_profiling.dylib +0 -0
  29. data/vendor/{libdatadog-30.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-30.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-30.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-30.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/common.h +80 -19
  41. data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/data-pipeline.h +17 -4
  42. data/vendor/{libdatadog-30.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-30.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 +36 -0
  44. data/vendor/{libdatadog-30.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-30.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-30.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 +82 -81
  48. data/vendor/libdatadog-30.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +0 -53656
  49. data/vendor/libdatadog-30.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +0 -53656
  50. data/vendor/libdatadog-30.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin/LICENSE-3rdparty.yml +0 -53656
  51. data/vendor/libdatadog-30.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +0 -53656
  52. data/vendor/libdatadog-30.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h +0 -2814
  53. data/vendor/libdatadog-30.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/data-pipeline.h +0 -203
  54. data/vendor/libdatadog-30.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/ffe.h +0 -175
  55. data/vendor/libdatadog-30.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h +0 -1094
  56. data/vendor/libdatadog-30.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h +0 -286
  57. data/vendor/libdatadog-30.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -15
  58. data/vendor/libdatadog-30.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +0 -53656
  59. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
  60. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
  61. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  62. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
  63. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/crashtracker.h +0 -0
  64. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ddsketch.h +0 -0
  65. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/library-config.h +0 -0
  66. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/log.h +0 -0
  67. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
  68. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
  69. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
  70. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/crashtracker.h +0 -0
  71. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ddsketch.h +0 -0
  72. /data/vendor/{libdatadog-30.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-30.0.0 → libdatadog-33.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/log.h +0 -0
  74. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/LICENSE +0 -0
  75. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/NOTICE +0 -0
  76. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/blazesym.h +0 -0
  77. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/crashtracker.h +0 -0
  78. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/ddsketch.h +0 -0
  79. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/library-config.h +0 -0
  80. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/log.h +0 -0
  81. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
  82. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
  83. /data/vendor/{libdatadog-30.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-30.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-30.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-30.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-30.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-30.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-30.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
  90. /data/vendor/{libdatadog-30.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -0
  91. /data/vendor/{libdatadog-30.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-30.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-30.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-30.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-30.0.0 → libdatadog-33.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/log.h +0 -0
@@ -489,6 +489,24 @@ typedef struct ddog_prof_ProfileExporter_Result {
489
489
  };
490
490
  } ddog_prof_ProfileExporter_Result;
491
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
+
492
510
  typedef struct ddog_HttpStatus {
493
511
  uint16_t code;
494
512
  } ddog_HttpStatus;
@@ -561,24 +579,6 @@ typedef struct ddog_prof_Result_HandleExporterManager {
561
579
  };
562
580
  } ddog_prof_Result_HandleExporterManager;
563
581
 
564
- /**
565
- * A generic result type for when an operation may fail,
566
- * but there's nothing to return in the case of success.
567
- */
568
- typedef enum ddog_VoidResult_Tag {
569
- DDOG_VOID_RESULT_OK,
570
- DDOG_VOID_RESULT_ERR,
571
- } ddog_VoidResult_Tag;
572
-
573
- typedef struct ddog_VoidResult {
574
- ddog_VoidResult_Tag tag;
575
- union {
576
- struct {
577
- struct ddog_Error err;
578
- };
579
- };
580
- } ddog_VoidResult;
581
-
582
582
  /**
583
583
  * Represents the result of an operation that either succeeds with no value, or fails with an
584
584
  * error message. This is like `Result<(), Cow<'static, CStr>` except its representation is
@@ -901,6 +901,10 @@ typedef struct ddog_prof_StringHeader {
901
901
  * another, even if it happens to work by implementation detail. There is an
902
902
  * exception is for well-known strings, which are considered present in every
903
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`.
904
908
  */
905
909
  typedef struct ddog_prof_StringHeader *ddog_prof_StringId2;
906
910
 
@@ -934,6 +938,10 @@ typedef struct ddog_prof_Mapping2 *ddog_prof_MappingId2;
934
938
  /**
935
939
  * An FFI-safe version of the Function which allows null. Be sure to maintain
936
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`.
937
945
  */
938
946
  typedef struct ddog_prof_Function2 {
939
947
  ddog_prof_StringId2 name;
@@ -1564,6 +1572,9 @@ typedef enum ddog_TelemetryWorkerBuilderStrProperty {
1564
1572
  DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_RELEASE,
1565
1573
  DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_VERSION,
1566
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,
1567
1578
  } ddog_TelemetryWorkerBuilderStrProperty;
1568
1579
 
1569
1580
  typedef struct ddog_TelemetryWorkerBuilder ddog_TelemetryWorkerBuilder;
@@ -1612,6 +1623,9 @@ typedef struct ddog_ContextKey {
1612
1623
  enum ddog_MetricType _1;
1613
1624
  } ddog_ContextKey;
1614
1625
 
1626
+ typedef struct ddog_TraceExporter ddog_TraceExporter;
1627
+
1628
+
1615
1629
  /**
1616
1630
  * Represent error codes that `Error` struct can hold
1617
1631
  */
@@ -1652,7 +1666,18 @@ typedef enum ddog_TraceExporterErrorCode {
1652
1666
  */
1653
1667
  typedef struct ddog_TraceExporterResponse ddog_TraceExporterResponse;
1654
1668
 
1655
- 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;
1656
1681
 
1657
1682
  /**
1658
1683
  * The TraceExporterConfig object will hold the configuration properties for the TraceExporter.
@@ -1691,6 +1716,18 @@ typedef struct ddog_TelemetryClientConfig {
1691
1716
  * Defaults to false.
1692
1717
  */
1693
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;
1694
1731
  } ddog_TelemetryClientConfig;
1695
1732
 
1696
1733
  typedef enum ddog_LibraryConfigSource {
@@ -2089,6 +2126,20 @@ typedef struct ddog_ffe_VariantValue {
2089
2126
  };
2090
2127
  } ddog_ffe_VariantValue;
2091
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
+
2092
2143
  typedef struct ddog_ffe_KeyValue_BorrowedStr {
2093
2144
  struct ddog_ffe_BorrowedStr key;
2094
2145
  struct ddog_ffe_BorrowedStr value;
@@ -2349,6 +2400,11 @@ typedef struct ddog_crasht_Slice_I32 {
2349
2400
 
2350
2401
  typedef struct ddog_crasht_Config {
2351
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;
2352
2408
  bool create_alt_stack;
2353
2409
  bool demangle_names;
2354
2410
  /**
@@ -2356,6 +2412,11 @@ typedef struct ddog_crasht_Config {
2356
2412
  * If None, the crashtracker will infer the agent host from env variables.
2357
2413
  */
2358
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;
2359
2420
  /**
2360
2421
  * Optional filename for a unix domain socket if the receiver is used asynchonously
2361
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,6 +144,20 @@ 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
+
148
161
  /**
149
162
  * Enables OTLP HTTP/JSON export and sets the endpoint URL.
150
163
  *
@@ -168,7 +181,7 @@ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_otlp_endpoint(str
168
181
  * * `out_handle` - The handle to write the TraceExporter instance in.
169
182
  * * `config` - The configuration used to set up the TraceExporter handle.
170
183
  */
171
- struct ddog_TraceExporterError *ddog_trace_exporter_new(struct ddog_TraceExporter **out_handle,
184
+ struct ddog_TraceExporterError *ddog_trace_exporter_new(ddog_TraceExporter **out_handle,
172
185
  const struct ddog_TraceExporterConfig *config);
173
186
 
174
187
  /**
@@ -178,7 +191,7 @@ struct ddog_TraceExporterError *ddog_trace_exporter_new(struct ddog_TraceExporte
178
191
  *
179
192
  * * handle - The handle to the TraceExporter instance.
180
193
  */
181
- void ddog_trace_exporter_free(struct ddog_TraceExporter *handle);
194
+ void ddog_trace_exporter_free(ddog_TraceExporter *handle);
182
195
 
183
196
  /**
184
197
  * Send traces to the Datadog Agent.
@@ -192,7 +205,7 @@ void ddog_trace_exporter_free(struct ddog_TraceExporter *handle);
192
205
  * * `trace_count` - The number of traces to send to the Datadog Agent.
193
206
  * * `response_out` - Optional handle to store a pointer to the agent response information.
194
207
  */
195
- struct ddog_TraceExporterError *ddog_trace_exporter_send(const struct ddog_TraceExporter *handle,
208
+ struct ddog_TraceExporterError *ddog_trace_exporter_send(const ddog_TraceExporter *handle,
196
209
  ddog_ByteSlice trace,
197
210
  struct ddog_TraceExporterResponse **response_out);
198
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.
@@ -140,9 +140,32 @@ struct ddog_prof_ProfileExporter_Result ddog_prof_Exporter_new(ddog_CharSlice pr
140
140
  */
141
141
  void ddog_prof_Exporter_drop(struct ddog_prof_ProfileExporter *exporter);
142
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
+
143
163
  /**
144
164
  * Builds a request and sends it, returning the HttpStatus.
145
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
+ *
146
169
  * # Arguments
147
170
  * * `exporter` - Borrows the exporter.
148
171
  * * `profile` - Takes ownership of the profile.
@@ -1010,6 +1033,19 @@ struct ddog_prof_Status ddog_prof_ProfilesDictionary_get_str(ddog_CharSlice *res
1010
1033
  const struct ddog_prof_ProfilesDictionary *dict,
1011
1034
  ddog_prof_StringId2 string_id);
1012
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
+
1013
1049
  /**
1014
1050
  * Drops the `ProfilesDictionary` that the handle owns, leaving a valid but
1015
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: 30.0.0
11
+ Version: 33.0.0
12
12
  Requires:
13
13
  Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
14
14
  Libs.private: