libdatadog 44.0.1.1.0 → 45.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 (99) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-45.0.0/aarch64-linux}/LICENSE-3rdparty.csv +6 -9
  4. data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux/bin/libdatadog-crashtracking-receiver +0 -0
  5. data/vendor/{libdatadog-44.0.1/x86_64-linux-musl → libdatadog-45.0.0/aarch64-linux}/include/datadog/common.h +168 -122
  6. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-45.0.0/aarch64-linux}/include/datadog/data-pipeline.h +26 -0
  7. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-45.0.0/aarch64-linux}/include/datadog/library-config.h +47 -24
  8. data/vendor/{libdatadog-44.0.1/x86_64-linux-musl → libdatadog-45.0.0/aarch64-linux}/include/datadog/otel-thread-ctx.h +20 -6
  9. data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux/lib/libdatadog_profiling.so +0 -0
  10. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-45.0.0/aarch64-linux}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  11. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-45.0.0/aarch64-linux-musl}/LICENSE-3rdparty.csv +6 -9
  12. data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  13. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-45.0.0/aarch64-linux-musl}/include/datadog/common.h +168 -122
  14. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-45.0.0/aarch64-linux-musl}/include/datadog/data-pipeline.h +26 -0
  15. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-45.0.0/aarch64-linux-musl}/include/datadog/library-config.h +47 -24
  16. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-45.0.0/aarch64-linux-musl}/include/datadog/otel-thread-ctx.h +20 -6
  17. data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux-musl/lib/libdatadog_profiling.so +0 -0
  18. data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  19. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-45.0.0/arm64-darwin}/LICENSE-3rdparty.csv +6 -9
  20. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-45.0.0/arm64-darwin}/include/datadog/common.h +168 -122
  21. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-45.0.0/arm64-darwin}/include/datadog/data-pipeline.h +26 -0
  22. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-45.0.0/arm64-darwin}/include/datadog/library-config.h +47 -24
  23. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-45.0.0/arm64-darwin}/include/datadog/otel-thread-ctx.h +20 -6
  24. data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/arm64-darwin/lib/libdatadog_profiling.dylib +0 -0
  25. data/vendor/{libdatadog-44.0.1/x86_64-linux-musl → libdatadog-45.0.0/arm64-darwin}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  26. data/vendor/libdatadog-45.0.0/x86_64-linux/LICENSE-3rdparty.csv +557 -0
  27. data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux/bin/libdatadog-crashtracking-receiver +0 -0
  28. data/vendor/libdatadog-45.0.0/x86_64-linux/include/datadog/common.h +3169 -0
  29. data/vendor/libdatadog-45.0.0/x86_64-linux/include/datadog/data-pipeline.h +682 -0
  30. data/vendor/libdatadog-45.0.0/x86_64-linux/include/datadog/library-config.h +138 -0
  31. data/vendor/libdatadog-45.0.0/x86_64-linux/include/datadog/otel-thread-ctx.h +116 -0
  32. data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux/lib/libdatadog_profiling.so +0 -0
  33. data/vendor/libdatadog-45.0.0/x86_64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +15 -0
  34. data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/LICENSE-3rdparty.csv +6 -9
  35. data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  36. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-45.0.0/x86_64-linux-musl}/include/datadog/common.h +168 -122
  37. data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/data-pipeline.h +26 -0
  38. data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/library-config.h +47 -24
  39. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-45.0.0/x86_64-linux-musl}/include/datadog/otel-thread-ctx.h +20 -6
  40. data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/lib/libdatadog_profiling.so +0 -0
  41. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-45.0.0/x86_64-linux-musl}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  42. metadata +91 -91
  43. data/vendor/libdatadog-44.0.1/x86_64-linux/LICENSE-3rdparty.csv +0 -560
  44. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/common.h +0 -3123
  45. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/data-pipeline.h +0 -656
  46. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/library-config.h +0 -115
  47. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/otel-thread-ctx.h +0 -102
  48. data/vendor/libdatadog-44.0.1/x86_64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -15
  49. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux/LICENSE +0 -0
  50. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux/NOTICE +0 -0
  51. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux/include/datadog/blazesym.h +0 -0
  52. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux/include/datadog/crashtracker.h +0 -0
  53. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux/include/datadog/ddsketch.h +0 -0
  54. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux/include/datadog/ffe.h +0 -0
  55. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux/include/datadog/log.h +0 -0
  56. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux/include/datadog/profiling.h +0 -0
  57. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux/include/datadog/shared-runtime.h +0 -0
  58. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux/include/datadog/telemetry.h +0 -0
  59. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux-musl/LICENSE +0 -0
  60. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux-musl/NOTICE +0 -0
  61. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/blazesym.h +0 -0
  62. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/crashtracker.h +0 -0
  63. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/ddsketch.h +0 -0
  64. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/ffe.h +0 -0
  65. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/log.h +0 -0
  66. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/profiling.h +0 -0
  67. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/shared-runtime.h +0 -0
  68. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/telemetry.h +0 -0
  69. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/arm64-darwin/LICENSE +0 -0
  70. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/arm64-darwin/NOTICE +0 -0
  71. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/arm64-darwin/bin/libdatadog-crashtracking-receiver +0 -0
  72. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/arm64-darwin/include/datadog/blazesym.h +0 -0
  73. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/arm64-darwin/include/datadog/crashtracker.h +0 -0
  74. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/arm64-darwin/include/datadog/ddsketch.h +0 -0
  75. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/arm64-darwin/include/datadog/ffe.h +0 -0
  76. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/arm64-darwin/include/datadog/log.h +0 -0
  77. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/arm64-darwin/include/datadog/profiling.h +0 -0
  78. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/arm64-darwin/include/datadog/shared-runtime.h +0 -0
  79. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/arm64-darwin/include/datadog/telemetry.h +0 -0
  80. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux/LICENSE +0 -0
  81. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux/NOTICE +0 -0
  82. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux/include/datadog/blazesym.h +0 -0
  83. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux/include/datadog/crashtracker.h +0 -0
  84. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux/include/datadog/ddsketch.h +0 -0
  85. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux/include/datadog/ffe.h +0 -0
  86. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux/include/datadog/log.h +0 -0
  87. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux/include/datadog/profiling.h +0 -0
  88. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux/include/datadog/shared-runtime.h +0 -0
  89. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux/include/datadog/telemetry.h +0 -0
  90. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/LICENSE +0 -0
  91. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/NOTICE +0 -0
  92. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/blazesym.h +0 -0
  93. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/crashtracker.h +0 -0
  94. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/ddsketch.h +0 -0
  95. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/ffe.h +0 -0
  96. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/log.h +0 -0
  97. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/profiling.h +0 -0
  98. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/shared-runtime.h +0 -0
  99. /data/vendor/{libdatadog-44.0.1 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/telemetry.h +0 -0
@@ -52,8 +52,22 @@
52
52
 
53
53
  typedef struct ddog_Endpoint ddog_Endpoint;
54
54
 
55
+ /**
56
+ * A shared handle to a [`MutableMetadata`].
57
+ *
58
+ * This is a cheap-to-clone `Arc<ArcSwap<MutableMetadata>>`: all clones observe the same
59
+ * underlying value. See the
60
+ * [module documentation](self) for the write/read protocol.
61
+ */
62
+ typedef struct ddog_MutableMetadataHandle ddog_MutableMetadataHandle;
63
+
55
64
  typedef struct ddog_Tag ddog_Tag;
56
65
 
66
+ typedef struct ddog_ArrayQueue {
67
+ struct ddog_ArrayQueue *inner;
68
+ void (*item_delete_fn)(void*);
69
+ } ddog_ArrayQueue;
70
+
57
71
  /**
58
72
  * Holds the raw parts of a Rust Vec; it should only be created from Rust,
59
73
  * never from C.
@@ -77,46 +91,6 @@ typedef struct ddog_Error {
77
91
  struct ddog_Vec_U8 message;
78
92
  } ddog_Error;
79
93
 
80
- typedef struct ddog_Slice_CChar {
81
- /**
82
- * Should be non-null and suitably aligned for the underlying type. It is
83
- * allowed but not recommended for the pointer to be null when the len is
84
- * zero.
85
- */
86
- const char *ptr;
87
- /**
88
- * The number of elements (not bytes) that `.ptr` points to. Must be less
89
- * than or equal to [isize::MAX].
90
- */
91
- uintptr_t len;
92
- } ddog_Slice_CChar;
93
-
94
- /**
95
- * Use to represent strings -- should be valid UTF-8.
96
- */
97
- typedef struct ddog_Slice_CChar ddog_CharSlice;
98
-
99
- typedef enum ddog_Option_Error_Tag {
100
- DDOG_OPTION_ERROR_SOME_ERROR,
101
- DDOG_OPTION_ERROR_NONE_ERROR,
102
- } ddog_Option_Error_Tag;
103
-
104
- typedef struct ddog_Option_Error {
105
- ddog_Option_Error_Tag tag;
106
- union {
107
- struct {
108
- struct ddog_Error some;
109
- };
110
- };
111
- } ddog_Option_Error;
112
-
113
- typedef struct ddog_Option_Error ddog_MaybeError;
114
-
115
- typedef struct ddog_ArrayQueue {
116
- struct ddog_ArrayQueue *inner;
117
- void (*item_delete_fn)(void*);
118
- } ddog_ArrayQueue;
119
-
120
94
  typedef enum ddog_ArrayQueue_NewResult_Tag {
121
95
  DDOG_ARRAY_QUEUE_NEW_RESULT_OK,
122
96
  DDOG_ARRAY_QUEUE_NEW_RESULT_ERR,
@@ -210,6 +184,59 @@ typedef struct ddog_ArrayQueue_UsizeResult {
210
184
  };
211
185
  } ddog_ArrayQueue_UsizeResult;
212
186
 
187
+ typedef struct ddog_Slice_CChar {
188
+ /**
189
+ * Should be non-null and suitably aligned for the underlying type. It is
190
+ * allowed but not recommended for the pointer to be null when the len is
191
+ * zero.
192
+ */
193
+ const char *ptr;
194
+ /**
195
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
196
+ * than or equal to [isize::MAX].
197
+ */
198
+ uintptr_t len;
199
+ } ddog_Slice_CChar;
200
+
201
+ /**
202
+ * Use to represent strings -- should be valid UTF-8.
203
+ */
204
+ typedef struct ddog_Slice_CChar ddog_CharSlice;
205
+
206
+ typedef enum ddog_Option_Error_Tag {
207
+ DDOG_OPTION_ERROR_SOME_ERROR,
208
+ DDOG_OPTION_ERROR_NONE_ERROR,
209
+ } ddog_Option_Error_Tag;
210
+
211
+ typedef struct ddog_Option_Error {
212
+ ddog_Option_Error_Tag tag;
213
+ union {
214
+ struct {
215
+ struct ddog_Error some;
216
+ };
217
+ };
218
+ } ddog_Option_Error;
219
+
220
+ typedef struct ddog_Option_Error ddog_MaybeError;
221
+
222
+ /**
223
+ * A generic result type for when an operation may fail,
224
+ * but there's nothing to return in the case of success.
225
+ */
226
+ typedef enum ddog_VoidResult_Tag {
227
+ DDOG_VOID_RESULT_OK,
228
+ DDOG_VOID_RESULT_ERR,
229
+ } ddog_VoidResult_Tag;
230
+
231
+ typedef struct ddog_VoidResult {
232
+ ddog_VoidResult_Tag tag;
233
+ union {
234
+ struct {
235
+ struct ddog_Error err;
236
+ };
237
+ };
238
+ } ddog_VoidResult;
239
+
213
240
  typedef enum ddog_Option_U32_Tag {
214
241
  DDOG_OPTION_U32_SOME_U32,
215
242
  DDOG_OPTION_U32_NONE_U32,
@@ -525,24 +552,6 @@ typedef struct ddog_prof_ProfileExporter_Result {
525
552
  };
526
553
  } ddog_prof_ProfileExporter_Result;
527
554
 
528
- /**
529
- * A generic result type for when an operation may fail,
530
- * but there's nothing to return in the case of success.
531
- */
532
- typedef enum ddog_VoidResult_Tag {
533
- DDOG_VOID_RESULT_OK,
534
- DDOG_VOID_RESULT_ERR,
535
- } ddog_VoidResult_Tag;
536
-
537
- typedef struct ddog_VoidResult {
538
- ddog_VoidResult_Tag tag;
539
- union {
540
- struct {
541
- struct ddog_Error err;
542
- };
543
- };
544
- } ddog_VoidResult;
545
-
546
555
  typedef struct ddog_HttpStatus {
547
556
  uint16_t code;
548
557
  } ddog_HttpStatus;
@@ -1767,14 +1776,6 @@ typedef struct ddog_TelemetryClientConfig {
1767
1776
  * How often telemetry should be sent, in milliseconds.
1768
1777
  */
1769
1778
  uint64_t interval;
1770
- /**
1771
- * A V4 UUID that represents a tracer session. This ID should:
1772
- * - Be generated when the tracer starts
1773
- * - Be identical within the context of a host (i.e. multiple threads/processes that belong to
1774
- * a single instrumented app should share the same runtime_id)
1775
- * - Be associated with traces to allow correlation between traces and telemetry data
1776
- */
1777
- ddog_CharSlice runtime_id;
1778
1779
  /**
1779
1780
  * Whether to enable debug mode for telemetry.
1780
1781
  * When enabled, sets the DD-Telemetry-Debug-Enabled header to true.
@@ -1979,6 +1980,37 @@ typedef struct ddog_ProcessInfo {
1979
1980
  ddog_CharSlice language;
1980
1981
  } ddog_ProcessInfo;
1981
1982
 
1983
+ /**
1984
+ * C-compatible representation of an anonymous file handle
1985
+ */
1986
+ typedef struct ddog_TracerMemfdHandle {
1987
+ /**
1988
+ * File descriptor (relevant only on Linux)
1989
+ */
1990
+ int fd;
1991
+ } ddog_TracerMemfdHandle;
1992
+
1993
+ /**
1994
+ * A generic result type for when an operation may fail,
1995
+ * or may return <T> in case of success.
1996
+ */
1997
+ typedef enum ddog_Result_TracerMemfdHandle_Tag {
1998
+ DDOG_RESULT_TRACER_MEMFD_HANDLE_OK_TRACER_MEMFD_HANDLE,
1999
+ DDOG_RESULT_TRACER_MEMFD_HANDLE_ERR_TRACER_MEMFD_HANDLE,
2000
+ } ddog_Result_TracerMemfdHandle_Tag;
2001
+
2002
+ typedef struct ddog_Result_TracerMemfdHandle {
2003
+ ddog_Result_TracerMemfdHandle_Tag tag;
2004
+ union {
2005
+ struct {
2006
+ struct ddog_TracerMemfdHandle ok;
2007
+ };
2008
+ struct {
2009
+ struct ddog_Error err;
2010
+ };
2011
+ };
2012
+ } ddog_Result_TracerMemfdHandle;
2013
+
1982
2014
  /**
1983
2015
  * Ffi safe type representing an owned null-terminated C array
1984
2016
  * Equivalent to a std::ffi::CString
@@ -2036,37 +2068,6 @@ typedef struct ddog_LibraryConfigLoggedResult {
2036
2068
  };
2037
2069
  } ddog_LibraryConfigLoggedResult;
2038
2070
 
2039
- /**
2040
- * C-compatible representation of an anonymous file handle
2041
- */
2042
- typedef struct ddog_TracerMemfdHandle {
2043
- /**
2044
- * File descriptor (relevant only on Linux)
2045
- */
2046
- int fd;
2047
- } ddog_TracerMemfdHandle;
2048
-
2049
- /**
2050
- * A generic result type for when an operation may fail,
2051
- * or may return <T> in case of success.
2052
- */
2053
- typedef enum ddog_Result_TracerMemfdHandle_Tag {
2054
- DDOG_RESULT_TRACER_MEMFD_HANDLE_OK_TRACER_MEMFD_HANDLE,
2055
- DDOG_RESULT_TRACER_MEMFD_HANDLE_ERR_TRACER_MEMFD_HANDLE,
2056
- } ddog_Result_TracerMemfdHandle_Tag;
2057
-
2058
- typedef struct ddog_Result_TracerMemfdHandle {
2059
- ddog_Result_TracerMemfdHandle_Tag tag;
2060
- union {
2061
- struct {
2062
- struct ddog_TracerMemfdHandle ok;
2063
- };
2064
- struct {
2065
- struct ddog_Error err;
2066
- };
2067
- };
2068
- } ddog_Result_TracerMemfdHandle;
2069
-
2070
2071
  /**
2071
2072
  * Log level for filtering log events.
2072
2073
  */
@@ -2446,10 +2447,9 @@ typedef struct ddog_SharedRuntimeFFIError {
2446
2447
  #define ddog_MAX_ATTRS_DATA_SIZE 612
2447
2448
 
2448
2449
  /**
2449
- * Opaque handle to a thread context record. Used to allow the FFI to convert [ThreadContext]
2450
- * to and from raw pointers without exposing [ThreadContextRecord], as the latter needs extra
2451
- * care to be manipulated (async-signal-safety, seq-lock-like modification protocol through
2452
- * [ThreadContextRecord::valid], etc.)
2450
+ * Opaque handle to a thread context record. Used to pass an owned thread context to and from C
2451
+ * without exposing `ThreadContext`, as the underlying record needs extra care to be
2452
+ * manipulated (async-signal-safety, seq-lock-like modification protocol, etc.)
2453
2453
  */
2454
2454
  typedef struct ddog_ThreadContextHandle {
2455
2455
 
@@ -2950,27 +2950,6 @@ typedef void (*ddog_crasht_RuntimeStacktraceStringCallback)(void (*emit_stacktra
2950
2950
  extern "C" {
2951
2951
  #endif // __cplusplus
2952
2952
 
2953
- /**
2954
- * Drops the error. It should not be used after this, though the
2955
- * implementation tries to limit the damage in the case of use-after-free and
2956
- * double-free scenarios.
2957
- *
2958
- * # Safety
2959
- *
2960
- * Only pass null or a pointer to a valid, mutable `ddog_Error`.
2961
- */
2962
- void ddog_Error_drop(struct ddog_Error *error);
2963
-
2964
- /**
2965
- * Returns a CharSlice of the error's message that is valid until the error
2966
- * is dropped.
2967
- * # Safety
2968
- * Only pass null or a valid reference to a `ddog_Error`.
2969
- */
2970
- ddog_CharSlice ddog_Error_message(const struct ddog_Error *error);
2971
-
2972
- void ddog_MaybeError_drop(ddog_MaybeError);
2973
-
2974
2953
  /**
2975
2954
  * Creates a new ArrayQueue with the given capacity and item_delete_fn.
2976
2955
  * The item_delete_fn is called when an item is dropped from the queue.
@@ -3065,6 +3044,73 @@ void ddog_endpoint_set_use_system_resolver(struct ddog_Endpoint *endpoint,
3065
3044
 
3066
3045
  void ddog_endpoint_drop(struct ddog_Endpoint*);
3067
3046
 
3047
+ /**
3048
+ * Drops the error. It should not be used after this, though the
3049
+ * implementation tries to limit the damage in the case of use-after-free and
3050
+ * double-free scenarios.
3051
+ *
3052
+ * # Safety
3053
+ *
3054
+ * Only pass null or a pointer to a valid, mutable `ddog_Error`.
3055
+ */
3056
+ void ddog_Error_drop(struct ddog_Error *error);
3057
+
3058
+ /**
3059
+ * Returns a CharSlice of the error's message that is valid until the error
3060
+ * is dropped.
3061
+ * # Safety
3062
+ * Only pass null or a valid reference to a `ddog_Error`.
3063
+ */
3064
+ ddog_CharSlice ddog_Error_message(const struct ddog_Error *error);
3065
+
3066
+ void ddog_MaybeError_drop(ddog_MaybeError);
3067
+
3068
+ /**
3069
+ * Creates a shared, updatable metadata handle initialized with default values.
3070
+ *
3071
+ * Use the metadata setters to configure or update its values.
3072
+ *
3073
+ * # Safety
3074
+ *
3075
+ * `out_handle` must point to valid, writable (uninitialized) memory for a
3076
+ * `ddog_MutableMetadataHandle *`.
3077
+ */
3078
+ void ddog_mutable_metadata_new(struct ddog_MutableMetadataHandle **out_handle);
3079
+
3080
+ /**
3081
+ * Frees a `ddog_MutableMetadataHandle` handle.
3082
+ *
3083
+ * Call once this handle is no longer needed. It must not be used concurrently
3084
+ * with this call or accessed afterward. Other cloned handles remain valid.
3085
+ *
3086
+ * # Safety
3087
+ *
3088
+ * `handle` must be a valid mutable metadata handle obtained through [`ddog_mutable_metadata_new`]
3089
+ */
3090
+ void ddog_mutable_metadata_free(struct ddog_MutableMetadataHandle *handle);
3091
+
3092
+ /**
3093
+ * Replaces the `runtime_id` held by the shared mutable metadata handle.
3094
+ *
3095
+ * # Safety
3096
+ *
3097
+ * `handle` must be a valid mutable metadata handle obtained through [`ddog_mutable_metadata_new`]
3098
+ */
3099
+ DDOG_CHECK_RETURN
3100
+ struct ddog_VoidResult ddog_mutable_metadata_set_runtime_id(const struct ddog_MutableMetadataHandle *handle,
3101
+ ddog_CharSlice runtime_id);
3102
+
3103
+ /**
3104
+ * Replaces the `process_tags` held by the shared mutable metadata handle.
3105
+ *
3106
+ * # Safety
3107
+ *
3108
+ * `handle` must be a valid mutable metadata handle obtained through [`ddog_mutable_metadata_new`]
3109
+ */
3110
+ DDOG_CHECK_RETURN
3111
+ struct ddog_VoidResult ddog_mutable_metadata_set_process_tags(const struct ddog_MutableMetadataHandle *handle,
3112
+ ddog_CharSlice process_tags);
3113
+
3068
3114
  struct ddog_Option_U32 ddog_Option_U32_some(uint32_t v);
3069
3115
 
3070
3116
  struct ddog_Option_U32 ddog_Option_U32_none(void);
@@ -137,6 +137,13 @@ struct ddog_TraceExporterError *ddog_trace_exporter_config_enable_telemetry(stru
137
137
  struct ddog_TraceExporterError *ddog_trace_exporter_config_set_compute_stats(struct ddog_TraceExporterConfig *config,
138
138
  bool is_enabled);
139
139
 
140
+ /**
141
+ * Indicates that the tracer has already marked top-level spans with `_dd.top_level`.
142
+ * Sets the `Datadog-Client-Computed-Top-Level` header without enabling stats computation.
143
+ */
144
+ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_client_computed_top_level(struct ddog_TraceExporterConfig *config,
145
+ bool client_computed_top_level);
146
+
140
147
  /**
141
148
  * Sets `Datadog-Client-Computed-Stats` header to `true`.
142
149
  * This indicates that the upstream system has already computed the stats,
@@ -154,12 +161,31 @@ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_compute_stats(str
154
161
  struct ddog_TraceExporterError *ddog_trace_exporter_config_set_client_computed_stats(struct ddog_TraceExporterConfig *config,
155
162
  bool client_computed_stats);
156
163
 
164
+ /**
165
+ * Shares a mutable metadata handle with the exporter config.
166
+ *
167
+ * When set, this supersedes `ddog_trace_exporter_config_set_process_tags` and
168
+ * `ddog_trace_exporter_config_set_runtime_id`.
169
+ */
170
+ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_mutable_metadata(struct ddog_TraceExporterConfig *config,
171
+ const ddog_MutableMetadataHandle *metadata);
172
+
157
173
  /**
158
174
  * Sets the process tags to be included in the stats payload.
175
+ *
176
+ * This should not be used when `ddog_trace_exporter_config_set_mutable_metadata` is used.
159
177
  */
160
178
  struct ddog_TraceExporterError *ddog_trace_exporter_config_set_process_tags(struct ddog_TraceExporterConfig *config,
161
179
  ddog_CharSlice process_tags);
162
180
 
181
+ /**
182
+ * Sets the runtime id used in payloads.
183
+ *
184
+ * This should not be used when `ddog_trace_exporter_config_set_mutable_metadata` is used.
185
+ */
186
+ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_runtime_id(struct ddog_TraceExporterConfig *config,
187
+ ddog_CharSlice runtime_id);
188
+
163
189
  /**
164
190
  * Sets the `X-Datadog-Test-Session-Token` header. Only used for testing with the test agent.
165
191
  */
@@ -24,32 +24,8 @@ void ddog_library_configurator_with_fleet_path(struct ddog_Configurator *c,
24
24
  void ddog_library_configurator_with_process_info(struct ddog_Configurator *c,
25
25
  struct ddog_ProcessInfo p);
26
26
 
27
- void ddog_library_configurator_with_detect_process_info(struct ddog_Configurator *c);
28
-
29
27
  void ddog_library_configurator_drop(struct ddog_Configurator*);
30
28
 
31
- struct ddog_LibraryConfigLoggedResult ddog_library_configurator_get(const struct ddog_Configurator *configurator);
32
-
33
- /**
34
- * Returns a static null-terminated string, containing the name of the environment variable
35
- * associated with the library configuration
36
- */
37
- struct ddog_CStr ddog_library_config_source_to_string(enum ddog_LibraryConfigSource name);
38
-
39
- /**
40
- * Returns a static null-terminated string with the path to the managed stable config yaml config
41
- * file
42
- */
43
- struct ddog_CStr ddog_library_config_fleet_stable_config_path(void);
44
-
45
- /**
46
- * Returns a static null-terminated string with the path to the local stable config yaml config
47
- * file
48
- */
49
- struct ddog_CStr ddog_library_config_local_stable_config_path(void);
50
-
51
- void ddog_library_config_drop(struct ddog_LibraryConfigLoggedResult config_result);
52
-
53
29
  /**
54
30
  * Allocates and returns a pointer to a new `TracerMetadata` object on the heap.
55
31
  *
@@ -89,6 +65,29 @@ void ddog_tracer_metadata_set(struct ddog_TracerMetadata *ptr,
89
65
  enum ddog_MetadataKind kind,
90
66
  const char *value);
91
67
 
68
+ /**
69
+ * Includes thread-context discovery metadata in the `TracerMetadata` object pointed to by `ptr`.
70
+ *
71
+ * If the builder has no thread-context metadata, configures it to publish
72
+ * the `tlsdesc_v1_dev` schema and a key map containing `datadog.local_root_span_id`.
73
+ * If the thread-context metadata is already set, leaves it unchanged.
74
+ *
75
+ * This function only updates the builder. Call `ddog_tracer_metadata_store` to publish it.
76
+ *
77
+ * # Arguments
78
+ * - `ptr`: Pointer to a `TracerMetadata` instance.
79
+ *
80
+ * # Safety
81
+ * - If non-null, `ptr` must point to a valid, properly aligned, live `TracerMetadata`.
82
+ * - The caller must ensure exclusive access to the instance for the duration of the call.
83
+ * - Ownership remains with the caller
84
+ *
85
+ * # Returns
86
+ * - On success: `VoidResult::Ok`, also when thread-context metadata is already present
87
+ * - An error if `ptr` is null.
88
+ */
89
+ struct ddog_VoidResult ddog_tracer_metadata_include_otel_thread_context(struct ddog_TracerMetadata *ptr);
90
+
92
91
  /**
93
92
  * Serializes the `TracerMetadata` into a platform-specific memory handle (e.g., memfd on Linux).
94
93
  * This function also attempts to publish the tracer metadata as an OTel process context
@@ -108,6 +107,30 @@ void ddog_tracer_metadata_set(struct ddog_TracerMetadata *ptr,
108
107
  */
109
108
  struct ddog_Result_TracerMemfdHandle ddog_tracer_metadata_store(struct ddog_TracerMetadata *ptr);
110
109
 
110
+ void ddog_library_configurator_with_detect_process_info(struct ddog_Configurator *c);
111
+
112
+ struct ddog_LibraryConfigLoggedResult ddog_library_configurator_get(const struct ddog_Configurator *configurator);
113
+
114
+ /**
115
+ * Returns a static null-terminated string, containing the name of the environment variable
116
+ * associated with the library configuration
117
+ */
118
+ struct ddog_CStr ddog_library_config_source_to_string(enum ddog_LibraryConfigSource name);
119
+
120
+ /**
121
+ * Returns a static null-terminated string with the path to the managed stable config yaml
122
+ * config file
123
+ */
124
+ struct ddog_CStr ddog_library_config_fleet_stable_config_path(void);
125
+
126
+ /**
127
+ * Returns a static null-terminated string with the path to the local stable config yaml config
128
+ * file
129
+ */
130
+ struct ddog_CStr ddog_library_config_local_stable_config_path(void);
131
+
132
+ void ddog_library_config_drop(struct ddog_LibraryConfigLoggedResult config_result);
133
+
111
134
  #ifdef __cplusplus
112
135
  } // extern "C"
113
136
  #endif // __cplusplus
@@ -29,6 +29,15 @@ struct ddog_VoidResult ddog_otel_thread_ctx_sanity_check(void);
29
29
  /**
30
30
  * Allocate and initialise a new thread context, including its W3C trace-flags byte.
31
31
  *
32
+ * `trace_id`, `span_id`, and `local_root_span_id` use W3C Trace Context byte order,
33
+ * equivalent to big-endian when interpreted as integers.
34
+ *
35
+ * When representing an active trace, both `trace_id` and `span_id` must be nonzero. Otherwise,
36
+ * `trace_id`, `span_id`, and `trace_flags` must be zero.
37
+ *
38
+ * This function does not validate IDs or reject invalid combinations of `trace_id`, `span_id`,
39
+ * and `trace_flags`.
40
+ *
32
41
  * Returns a non-null owned handle that must eventually be released with
33
42
  * `ddog_otel_thread_ctx_free`.
34
43
  */
@@ -42,9 +51,11 @@ struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_new(const uint8_t (*trace_
42
51
  *
43
52
  * # Safety
44
53
  *
54
+ * **`ctx` must not be a handle to a currently attached to a thread**. Only free detached
55
+ * contexts.
56
+ *
45
57
  * `ctx` must be a valid non-null pointer obtained from `ddog_otel_thread_ctx_new` or
46
- * `ddog_otel_thread_ctx_detach`, and must not be used after this call. In particular, `ctx`
47
- * must not be currently attached to a thread.
58
+ * `ddog_otel_thread_ctx_detach`, and must not be used after this call.
48
59
  */
49
60
  void ddog_otel_thread_ctx_free(struct ddog_ThreadContextHandle *ctx);
50
61
 
@@ -54,9 +65,10 @@ void ddog_otel_thread_ctx_free(struct ddog_ThreadContextHandle *ctx);
54
65
  *
55
66
  * # Safety
56
67
  *
57
- * `ctx` must be a valid non-null pointer obtained from this API. Ownership of `ctx` is
58
- * transferred to the TLS slot: the caller must not drop `ctx` while it is still actively
59
- * attached.
68
+ * Ownership of `ctx` is transferred to the TLS slot. **The caller must NOT free `ctx` while it
69
+ * is still actively attached**.
70
+ *
71
+ * `ctx` must be a valid non-null pointer obtained from this API.
60
72
  */
61
73
  struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_attach(struct ddog_ThreadContextHandle *ctx);
62
74
 
@@ -70,6 +82,7 @@ struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_detach(void);
70
82
 
71
83
  /**
72
84
  * Update the currently attached context in-place, including its W3C trace-flags byte.
85
+ * Uses the same ID byte order and zero-value rules as `ddog_otel_thread_ctx_new`.
73
86
  *
74
87
  * If no context is currently attached, one is created and attached, equivalent to calling
75
88
  * `ddog_otel_thread_ctx_new` followed by `ddog_otel_thread_ctx_attach`.
@@ -81,7 +94,8 @@ void ddog_otel_thread_ctx_update(const uint8_t (*trace_id)[16],
81
94
 
82
95
  /**
83
96
  * Update `ctx` and attach it to the current thread. Returns the previously attached different
84
- * context, if any.
97
+ * context, if any. Uses the same ID byte order and zero-value rules as
98
+ * `ddog_otel_thread_ctx_new`.
85
99
  *
86
100
  * # Safety
87
101
  *
@@ -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: 44.0.1
11
+ Version: 45.0.0
12
12
  Requires:
13
13
  Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
14
14
  Libs.private: