libdatadog 44.0.1.1.0 → 46.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 (102) 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-46.0.0/aarch64-linux}/LICENSE-3rdparty.csv +6 -9
  4. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/bin/libdatadog-crashtracking-receiver +0 -0
  5. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/include/datadog/common.h +235 -143
  6. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux}/include/datadog/crashtracker.h +4 -4
  7. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux}/include/datadog/data-pipeline.h +78 -2
  8. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux}/include/datadog/ddsketch.h +2 -2
  9. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-46.0.0/aarch64-linux}/include/datadog/library-config.h +47 -24
  10. data/vendor/{libdatadog-44.0.1/x86_64-linux-musl → libdatadog-46.0.0/aarch64-linux}/include/datadog/otel-thread-ctx.h +20 -6
  11. data/vendor/{libdatadog-44.0.1/x86_64-linux-musl → libdatadog-46.0.0/aarch64-linux}/include/datadog/profiling.h +1 -1
  12. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/lib/libdatadog_profiling.so +0 -0
  13. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  14. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux-musl}/LICENSE-3rdparty.csv +6 -9
  15. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  16. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/include/datadog/common.h +235 -143
  17. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/aarch64-linux-musl}/include/datadog/crashtracker.h +4 -4
  18. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/aarch64-linux-musl}/include/datadog/data-pipeline.h +78 -2
  19. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/include/datadog/ddsketch.h +2 -2
  20. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux-musl}/include/datadog/library-config.h +47 -24
  21. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux-musl}/include/datadog/otel-thread-ctx.h +20 -6
  22. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux-musl}/include/datadog/profiling.h +1 -1
  23. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/lib/libdatadog_profiling.so +0 -0
  24. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  25. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/arm64-darwin}/LICENSE-3rdparty.csv +6 -9
  26. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/include/datadog/common.h +235 -143
  27. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-46.0.0/arm64-darwin}/include/datadog/crashtracker.h +4 -4
  28. data/vendor/{libdatadog-44.0.1/x86_64-linux-musl → libdatadog-46.0.0/arm64-darwin}/include/datadog/data-pipeline.h +78 -2
  29. data/vendor/{libdatadog-44.0.1/x86_64-linux-musl → libdatadog-46.0.0/arm64-darwin}/include/datadog/ddsketch.h +2 -2
  30. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/arm64-darwin}/include/datadog/library-config.h +47 -24
  31. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/arm64-darwin}/include/datadog/otel-thread-ctx.h +20 -6
  32. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-46.0.0/arm64-darwin}/include/datadog/profiling.h +1 -1
  33. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/lib/libdatadog_profiling.dylib +0 -0
  34. data/vendor/{libdatadog-44.0.1/x86_64-linux-musl → libdatadog-46.0.0/arm64-darwin}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  35. data/vendor/libdatadog-46.0.0/x86_64-linux/LICENSE-3rdparty.csv +557 -0
  36. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/bin/libdatadog-crashtracking-receiver +0 -0
  37. data/vendor/libdatadog-46.0.0/x86_64-linux/include/datadog/common.h +3215 -0
  38. data/vendor/libdatadog-46.0.0/x86_64-linux/include/datadog/crashtracker.h +1026 -0
  39. data/vendor/libdatadog-46.0.0/x86_64-linux/include/datadog/data-pipeline.h +732 -0
  40. data/vendor/libdatadog-46.0.0/x86_64-linux/include/datadog/ddsketch.h +89 -0
  41. data/vendor/libdatadog-46.0.0/x86_64-linux/include/datadog/library-config.h +138 -0
  42. data/vendor/libdatadog-46.0.0/x86_64-linux/include/datadog/otel-thread-ctx.h +116 -0
  43. data/vendor/libdatadog-46.0.0/x86_64-linux/include/datadog/profiling.h +1167 -0
  44. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/lib/libdatadog_profiling.so +0 -0
  45. data/vendor/libdatadog-46.0.0/x86_64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +15 -0
  46. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/LICENSE-3rdparty.csv +6 -9
  47. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  48. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/common.h +235 -143
  49. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/crashtracker.h +4 -4
  50. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-46.0.0/x86_64-linux-musl}/include/datadog/data-pipeline.h +78 -2
  51. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/x86_64-linux-musl}/include/datadog/ddsketch.h +2 -2
  52. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/library-config.h +47 -24
  53. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-46.0.0/x86_64-linux-musl}/include/datadog/otel-thread-ctx.h +20 -6
  54. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/x86_64-linux-musl}/include/datadog/profiling.h +1 -1
  55. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/lib/libdatadog_profiling.so +0 -0
  56. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/x86_64-linux-musl}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  57. metadata +91 -91
  58. data/vendor/libdatadog-44.0.1/x86_64-linux/LICENSE-3rdparty.csv +0 -560
  59. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/common.h +0 -3123
  60. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/crashtracker.h +0 -1026
  61. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/data-pipeline.h +0 -656
  62. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/ddsketch.h +0 -89
  63. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/library-config.h +0 -115
  64. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/otel-thread-ctx.h +0 -102
  65. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/profiling.h +0 -1167
  66. data/vendor/libdatadog-44.0.1/x86_64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -15
  67. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/LICENSE +0 -0
  68. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/NOTICE +0 -0
  69. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/include/datadog/blazesym.h +0 -0
  70. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/include/datadog/ffe.h +0 -0
  71. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/include/datadog/log.h +0 -0
  72. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/include/datadog/shared-runtime.h +0 -0
  73. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/include/datadog/telemetry.h +0 -0
  74. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/LICENSE +0 -0
  75. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/NOTICE +0 -0
  76. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/include/datadog/blazesym.h +0 -0
  77. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/include/datadog/ffe.h +0 -0
  78. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/include/datadog/log.h +0 -0
  79. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/include/datadog/shared-runtime.h +0 -0
  80. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/include/datadog/telemetry.h +0 -0
  81. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/LICENSE +0 -0
  82. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/NOTICE +0 -0
  83. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/bin/libdatadog-crashtracking-receiver +0 -0
  84. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/include/datadog/blazesym.h +0 -0
  85. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/include/datadog/ffe.h +0 -0
  86. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/include/datadog/log.h +0 -0
  87. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/include/datadog/shared-runtime.h +0 -0
  88. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/include/datadog/telemetry.h +0 -0
  89. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/LICENSE +0 -0
  90. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/NOTICE +0 -0
  91. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/include/datadog/blazesym.h +0 -0
  92. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/include/datadog/ffe.h +0 -0
  93. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/include/datadog/log.h +0 -0
  94. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/include/datadog/shared-runtime.h +0 -0
  95. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/include/datadog/telemetry.h +0 -0
  96. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/LICENSE +0 -0
  97. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/NOTICE +0 -0
  98. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/blazesym.h +0 -0
  99. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/ffe.h +0 -0
  100. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/log.h +0 -0
  101. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/shared-runtime.h +0 -0
  102. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.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,
@@ -506,7 +533,7 @@ typedef struct ddog_prof_ProfileExporter {
506
533
 
507
534
  /**
508
535
  * A generic result type for when an operation may fail,
509
- * or may return <T> in case of success.
536
+ * or may return `<T>` in case of success.
510
537
  */
511
538
  typedef enum ddog_prof_ProfileExporter_Result_Tag {
512
539
  DDOG_PROF_PROFILE_EXPORTER_RESULT_OK_HANDLE_PROFILE_EXPORTER,
@@ -525,31 +552,13 @@ 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;
549
558
 
550
559
  /**
551
560
  * A generic result type for when an operation may fail,
552
- * or may return <T> in case of success.
561
+ * or may return `<T>` in case of success.
553
562
  */
554
563
  typedef enum ddog_prof_Result_HttpStatus_Tag {
555
564
  DDOG_PROF_RESULT_HTTP_STATUS_OK_HTTP_STATUS,
@@ -596,7 +605,7 @@ typedef struct ddog_prof_Handle_ExporterManager {
596
605
 
597
606
  /**
598
607
  * A generic result type for when an operation may fail,
599
- * or may return <T> in case of success.
608
+ * or may return `<T>` in case of success.
600
609
  */
601
610
  typedef enum ddog_prof_Result_HandleExporterManager_Tag {
602
611
  DDOG_PROF_RESULT_HANDLE_EXPORTER_MANAGER_OK_HANDLE_EXPORTER_MANAGER,
@@ -781,7 +790,7 @@ typedef struct ddog_prof_Mapping {
781
790
  /**
782
791
  * The object this entry is loaded from. This can be a filename on
783
792
  * disk for the main binary and shared libraries, or virtual
784
- * abstractions like "[vdso]".
793
+ * abstractions like "\[vdso\]".
785
794
  */
786
795
  ddog_CharSlice filename;
787
796
  struct ddog_prof_ManagedStringId filename_id;
@@ -896,7 +905,7 @@ typedef struct ddog_prof_Slice_Label {
896
905
 
897
906
  typedef struct ddog_prof_Sample {
898
907
  /**
899
- * The leaf is at locations[0].
908
+ * The leaf is at locations\[0\].
900
909
  */
901
910
  struct ddog_prof_Slice_Location locations;
902
911
  /**
@@ -1022,7 +1031,7 @@ typedef struct ddog_prof_Slice_Label2 {
1022
1031
 
1023
1032
  typedef struct ddog_prof_Sample2 {
1024
1033
  /**
1025
- * The leaf is at locations[0].
1034
+ * The leaf is at locations\[0\].
1026
1035
  */
1027
1036
  struct ddog_prof_Slice_Location2 locations;
1028
1037
  /**
@@ -1057,7 +1066,7 @@ typedef struct ddog_prof_Slice_Usize {
1057
1066
 
1058
1067
  /**
1059
1068
  * A generic result type for when an operation may fail,
1060
- * or may return <T> in case of success.
1069
+ * or may return `<T>` in case of success.
1061
1070
  */
1062
1071
  typedef enum ddog_prof_Result_ByteSlice_Tag {
1063
1072
  DDOG_PROF_RESULT_BYTE_SLICE_OK_BYTE_SLICE,
@@ -1119,7 +1128,7 @@ typedef struct ddog_prof_FunctionId {
1119
1128
 
1120
1129
  /**
1121
1130
  * A generic result type for when an operation may fail,
1122
- * or may return <T> in case of success.
1131
+ * or may return `<T>` in case of success.
1123
1132
  */
1124
1133
  typedef enum ddog_prof_FunctionId_Result_Tag {
1125
1134
  DDOG_PROF_FUNCTION_ID_RESULT_OK_GENERATIONAL_ID_FUNCTION_ID,
@@ -1168,7 +1177,7 @@ typedef struct ddog_prof_LabelId {
1168
1177
 
1169
1178
  /**
1170
1179
  * A generic result type for when an operation may fail,
1171
- * or may return <T> in case of success.
1180
+ * or may return `<T>` in case of success.
1172
1181
  */
1173
1182
  typedef enum ddog_prof_LabelId_Result_Tag {
1174
1183
  DDOG_PROF_LABEL_ID_RESULT_OK_GENERATIONAL_ID_LABEL_ID,
@@ -1198,7 +1207,7 @@ typedef struct ddog_prof_LabelSetId {
1198
1207
 
1199
1208
  /**
1200
1209
  * A generic result type for when an operation may fail,
1201
- * or may return <T> in case of success.
1210
+ * or may return `<T>` in case of success.
1202
1211
  */
1203
1212
  typedef enum ddog_prof_LabelSetId_Result_Tag {
1204
1213
  DDOG_PROF_LABEL_SET_ID_RESULT_OK_GENERATIONAL_ID_LABEL_SET_ID,
@@ -1242,7 +1251,7 @@ typedef struct ddog_prof_LocationId {
1242
1251
 
1243
1252
  /**
1244
1253
  * A generic result type for when an operation may fail,
1245
- * or may return <T> in case of success.
1254
+ * or may return `<T>` in case of success.
1246
1255
  */
1247
1256
  typedef enum ddog_prof_LocationId_Result_Tag {
1248
1257
  DDOG_PROF_LOCATION_ID_RESULT_OK_GENERATIONAL_ID_LOCATION_ID,
@@ -1272,7 +1281,7 @@ typedef struct ddog_prof_MappingId {
1272
1281
 
1273
1282
  /**
1274
1283
  * A generic result type for when an operation may fail,
1275
- * or may return <T> in case of success.
1284
+ * or may return `<T>` in case of success.
1276
1285
  */
1277
1286
  typedef enum ddog_prof_StringId_Result_Tag {
1278
1287
  DDOG_PROF_STRING_ID_RESULT_OK_GENERATIONAL_ID_STRING_ID,
@@ -1321,7 +1330,7 @@ typedef struct ddog_prof_MutSlice_GenerationalIdStringId {
1321
1330
 
1322
1331
  /**
1323
1332
  * A generic result type for when an operation may fail,
1324
- * or may return <T> in case of success.
1333
+ * or may return `<T>` in case of success.
1325
1334
  */
1326
1335
  typedef enum ddog_prof_MappingId_Result_Tag {
1327
1336
  DDOG_PROF_MAPPING_ID_RESULT_OK_GENERATIONAL_ID_MAPPING_ID,
@@ -1351,7 +1360,7 @@ typedef struct ddog_prof_StackTraceId {
1351
1360
 
1352
1361
  /**
1353
1362
  * A generic result type for when an operation may fail,
1354
- * or may return <T> in case of success.
1363
+ * or may return `<T>` in case of success.
1355
1364
  */
1356
1365
  typedef enum ddog_prof_StackTraceId_Result_Tag {
1357
1366
  DDOG_PROF_STACK_TRACE_ID_RESULT_OK_GENERATIONAL_ID_STACK_TRACE_ID,
@@ -1400,7 +1409,7 @@ typedef struct ddog_prof_Slice_CharSlice {
1400
1409
 
1401
1410
  /**
1402
1411
  * A generic result type for when an operation may fail,
1403
- * or may return <T> in case of success.
1412
+ * or may return `<T>` in case of success.
1404
1413
  */
1405
1414
  typedef enum ddog_prof_Result_Generation_Tag {
1406
1415
  DDOG_PROF_RESULT_GENERATION_OK_GENERATION,
@@ -1526,6 +1535,9 @@ typedef enum ddog_MetricNamespace {
1526
1535
  DDOG_METRIC_NAMESPACE_RUM,
1527
1536
  DDOG_METRIC_NAMESPACE_APPSEC,
1528
1537
  DDOG_METRIC_NAMESPACE_IDE_PLUGINS,
1538
+ /**
1539
+ * Superseded by [`MetricNamespace::Debugger`]. Kept so existing FFI discriminants stay stable.
1540
+ */
1529
1541
  DDOG_METRIC_NAMESPACE_LIVE_DEBUGGER,
1530
1542
  DDOG_METRIC_NAMESPACE_IAST,
1531
1543
  DDOG_METRIC_NAMESPACE_GENERAL,
@@ -1536,6 +1548,7 @@ typedef enum ddog_MetricNamespace {
1536
1548
  DDOG_METRIC_NAMESPACE_MLOBS,
1537
1549
  DDOG_METRIC_NAMESPACE_DDTRACEAPI,
1538
1550
  DDOG_METRIC_NAMESPACE_AI_GUARD,
1551
+ DDOG_METRIC_NAMESPACE_DEBUGGER,
1539
1552
  } ddog_MetricNamespace;
1540
1553
 
1541
1554
  typedef enum ddog_MetricType {
@@ -1698,7 +1711,7 @@ typedef enum ddog_TraceExporterErrorCode {
1698
1711
  typedef struct ddog_TraceExporterResponse ddog_TraceExporterResponse;
1699
1712
 
1700
1713
  /**
1701
- * Owns a tokio runtime and manages [`PausableWorker`]s on it.
1714
+ * Owns a tokio runtime and manages `PausableWorker`s on it.
1702
1715
  *
1703
1716
  * Supports the full fork protocol ([`before_fork`](Self::before_fork) /
1704
1717
  * [`after_fork_parent`](Self::after_fork_parent) /
@@ -1726,6 +1739,29 @@ typedef struct ddog_TraceExporterError {
1726
1739
  char *msg;
1727
1740
  } ddog_TraceExporterError;
1728
1741
 
1742
+ /**
1743
+ * Caller-owned observations from one send. All counts are unsigned and zero-suppressed.
1744
+ * `bytes_sent` is one successful payload-size distribution sample. Status zero means no
1745
+ * terminal HTTP response; otherwise `responses_count` belongs to `status_code`.
1746
+ * The struct contains no owned pointers and requires no destructor. Each exporter send currently
1747
+ * prepares at most one payload, including V1 fallback.
1748
+ */
1749
+ typedef struct ddog_TraceExporterObservations {
1750
+ uint64_t requests_count;
1751
+ uint64_t errors_network;
1752
+ uint64_t errors_timeout;
1753
+ uint64_t errors_status_code;
1754
+ uint64_t bytes_sent;
1755
+ uint64_t chunks_sent;
1756
+ uint64_t chunks_dropped_serialization_error;
1757
+ uint64_t chunks_dropped_send_failure;
1758
+ uint64_t spans_enqueued_for_serialization;
1759
+ uint64_t spans_dropped_serialization_error;
1760
+ uint64_t spans_dropped_api_error;
1761
+ uint64_t responses_count;
1762
+ uint16_t status_code;
1763
+ } ddog_TraceExporterObservations;
1764
+
1729
1765
  /**
1730
1766
  * One value in a flat preorder representation of a structured value.
1731
1767
  *
@@ -1767,14 +1803,6 @@ typedef struct ddog_TelemetryClientConfig {
1767
1803
  * How often telemetry should be sent, in milliseconds.
1768
1804
  */
1769
1805
  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
1806
  /**
1779
1807
  * Whether to enable debug mode for telemetry.
1780
1808
  * When enabled, sets the DD-Telemetry-Debug-Enabled header to true.
@@ -1979,6 +2007,37 @@ typedef struct ddog_ProcessInfo {
1979
2007
  ddog_CharSlice language;
1980
2008
  } ddog_ProcessInfo;
1981
2009
 
2010
+ /**
2011
+ * C-compatible representation of an anonymous file handle
2012
+ */
2013
+ typedef struct ddog_TracerMemfdHandle {
2014
+ /**
2015
+ * File descriptor (relevant only on Linux)
2016
+ */
2017
+ int fd;
2018
+ } ddog_TracerMemfdHandle;
2019
+
2020
+ /**
2021
+ * A generic result type for when an operation may fail,
2022
+ * or may return `<T>` in case of success.
2023
+ */
2024
+ typedef enum ddog_Result_TracerMemfdHandle_Tag {
2025
+ DDOG_RESULT_TRACER_MEMFD_HANDLE_OK_TRACER_MEMFD_HANDLE,
2026
+ DDOG_RESULT_TRACER_MEMFD_HANDLE_ERR_TRACER_MEMFD_HANDLE,
2027
+ } ddog_Result_TracerMemfdHandle_Tag;
2028
+
2029
+ typedef struct ddog_Result_TracerMemfdHandle {
2030
+ ddog_Result_TracerMemfdHandle_Tag tag;
2031
+ union {
2032
+ struct {
2033
+ struct ddog_TracerMemfdHandle ok;
2034
+ };
2035
+ struct {
2036
+ struct ddog_Error err;
2037
+ };
2038
+ };
2039
+ } ddog_Result_TracerMemfdHandle;
2040
+
1982
2041
  /**
1983
2042
  * Ffi safe type representing an owned null-terminated C array
1984
2043
  * Equivalent to a std::ffi::CString
@@ -2036,37 +2095,6 @@ typedef struct ddog_LibraryConfigLoggedResult {
2036
2095
  };
2037
2096
  } ddog_LibraryConfigLoggedResult;
2038
2097
 
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
2098
  /**
2071
2099
  * Log level for filtering log events.
2072
2100
  */
@@ -2339,7 +2367,7 @@ typedef struct ddog_ffe_ArrayMap_BorrowedStr {
2339
2367
 
2340
2368
  /**
2341
2369
  * A generic result type for when an operation may fail,
2342
- * or may return <T> in case of success.
2370
+ * or may return `<T>` in case of success.
2343
2371
  */
2344
2372
  typedef enum ddog_ffe_Result_HandleConfiguration_Tag {
2345
2373
  DDOG_FFE_RESULT_HANDLE_CONFIGURATION_OK_HANDLE_CONFIGURATION,
@@ -2446,10 +2474,9 @@ typedef struct ddog_SharedRuntimeFFIError {
2446
2474
  #define ddog_MAX_ATTRS_DATA_SIZE 612
2447
2475
 
2448
2476
  /**
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.)
2477
+ * Opaque handle to a thread context record. Used to pass an owned thread context to and from C
2478
+ * without exposing `ThreadContext`, as the underlying record needs extra care to be
2479
+ * manipulated (async-signal-safety, seq-lock-like modification protocol, etc.)
2453
2480
  */
2454
2481
  typedef struct ddog_ThreadContextHandle {
2455
2482
 
@@ -2511,7 +2538,7 @@ typedef enum ddog_crasht_OpTypes {
2511
2538
  } ddog_crasht_OpTypes;
2512
2539
 
2513
2540
  /**
2514
- * See https://man7.org/linux/man-pages/man2/sigaction.2.html
2541
+ * See <https://man7.org/linux/man-pages/man2/sigaction.2.html>
2515
2542
  * MUST REMAIN IN SYNC WITH THE ENUM IN emit_sigcodes.c
2516
2543
  */
2517
2544
  typedef enum ddog_crasht_SiCodes {
@@ -2545,7 +2572,7 @@ typedef enum ddog_crasht_SiCodes {
2545
2572
  } ddog_crasht_SiCodes;
2546
2573
 
2547
2574
  /**
2548
- * See https://man7.org/linux/man-pages/man7/signal.7.html
2575
+ * See <https://man7.org/linux/man-pages/man7/signal.7.html>
2549
2576
  */
2550
2577
  typedef enum ddog_crasht_SignalNames {
2551
2578
  DDOG_CRASHT_SIGNAL_NAMES_SIGHUP,
@@ -2754,7 +2781,7 @@ typedef struct ddog_crasht_Handle_StackTrace {
2754
2781
 
2755
2782
  /**
2756
2783
  * A generic result type for when an operation may fail,
2757
- * or may return <T> in case of success.
2784
+ * or may return `<T>` in case of success.
2758
2785
  */
2759
2786
  typedef enum ddog_crasht_Result_Usize_Tag {
2760
2787
  DDOG_CRASHT_RESULT_USIZE_OK_USIZE,
@@ -2808,7 +2835,7 @@ typedef struct ddog_crasht_CrashInfoBuilder_NewResult {
2808
2835
 
2809
2836
  /**
2810
2837
  * A generic result type for when an operation may fail,
2811
- * or may return <T> in case of success.
2838
+ * or may return `<T>` in case of success.
2812
2839
  */
2813
2840
  typedef enum ddog_crasht_Result_HandleCrashInfo_Tag {
2814
2841
  DDOG_CRASHT_RESULT_HANDLE_CRASH_INFO_OK_HANDLE_CRASH_INFO,
@@ -2950,27 +2977,6 @@ typedef void (*ddog_crasht_RuntimeStacktraceStringCallback)(void (*emit_stacktra
2950
2977
  extern "C" {
2951
2978
  #endif // __cplusplus
2952
2979
 
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
2980
  /**
2975
2981
  * Creates a new ArrayQueue with the given capacity and item_delete_fn.
2976
2982
  * The item_delete_fn is called when an item is dropped from the queue.
@@ -3065,6 +3071,92 @@ void ddog_endpoint_set_use_system_resolver(struct ddog_Endpoint *endpoint,
3065
3071
 
3066
3072
  void ddog_endpoint_drop(struct ddog_Endpoint*);
3067
3073
 
3074
+ /**
3075
+ * Drops the error. It should not be used after this, though the
3076
+ * implementation tries to limit the damage in the case of use-after-free and
3077
+ * double-free scenarios.
3078
+ *
3079
+ * # Safety
3080
+ *
3081
+ * Only pass null or a pointer to a valid, mutable `ddog_Error`.
3082
+ */
3083
+ void ddog_Error_drop(struct ddog_Error *error);
3084
+
3085
+ /**
3086
+ * Returns a CharSlice of the error's message that is valid until the error
3087
+ * is dropped.
3088
+ * # Safety
3089
+ * Only pass null or a valid reference to a `ddog_Error`.
3090
+ */
3091
+ ddog_CharSlice ddog_Error_message(const struct ddog_Error *error);
3092
+
3093
+ void ddog_MaybeError_drop(ddog_MaybeError);
3094
+
3095
+ /**
3096
+ * Creates a shared, updatable metadata handle initialized with default values.
3097
+ *
3098
+ * Use the metadata setters to configure or update its values.
3099
+ *
3100
+ * # Safety
3101
+ *
3102
+ * `out_handle` must point to valid, writable (uninitialized) memory for a
3103
+ * `ddog_MutableMetadataHandle *`.
3104
+ */
3105
+ void ddog_mutable_metadata_new(struct ddog_MutableMetadataHandle **out_handle);
3106
+
3107
+ /**
3108
+ * Frees a `ddog_MutableMetadataHandle` handle.
3109
+ *
3110
+ * Call once this handle is no longer needed. It must not be used concurrently
3111
+ * with this call or accessed afterward. Other cloned handles remain valid.
3112
+ *
3113
+ * # Safety
3114
+ *
3115
+ * `handle` must be a valid mutable metadata handle obtained through [`ddog_mutable_metadata_new`]
3116
+ */
3117
+ void ddog_mutable_metadata_free(struct ddog_MutableMetadataHandle *handle);
3118
+
3119
+ /**
3120
+ * Replaces the `runtime_id` held by the shared mutable metadata handle.
3121
+ *
3122
+ * # Safety
3123
+ *
3124
+ * `handle` must be a valid mutable metadata handle obtained through [`ddog_mutable_metadata_new`]
3125
+ */
3126
+ DDOG_CHECK_RETURN
3127
+ struct ddog_VoidResult ddog_mutable_metadata_set_runtime_id(const struct ddog_MutableMetadataHandle *handle,
3128
+ ddog_CharSlice runtime_id);
3129
+
3130
+ /**
3131
+ * Replaces the `process_tags` held by the shared mutable metadata handle.
3132
+ *
3133
+ * # Safety
3134
+ *
3135
+ * `handle` must be a valid mutable metadata handle obtained through [`ddog_mutable_metadata_new`]
3136
+ */
3137
+ DDOG_CHECK_RETURN
3138
+ struct ddog_VoidResult ddog_mutable_metadata_set_process_tags(const struct ddog_MutableMetadataHandle *handle,
3139
+ ddog_CharSlice process_tags);
3140
+
3141
+ /**
3142
+ * Atomically replaces runtime identity and instrumentation session ancestry.
3143
+ * Empty session strings omit the corresponding headers, overriding static configuration.
3144
+ * Strings are copied before returning; process tags are preserved.
3145
+ *
3146
+ * For a fork child, call after all native workers and sends have paused and before
3147
+ * `ddog_shared_runtime_after_fork_child`. This does not reset pending data or sequences.
3148
+ *
3149
+ * # Safety
3150
+ *
3151
+ * `handle` must be valid and all slices must remain valid for the duration of the call.
3152
+ */
3153
+ DDOG_CHECK_RETURN
3154
+ struct ddog_VoidResult ddog_mutable_metadata_set_identity(const struct ddog_MutableMetadataHandle *handle,
3155
+ ddog_CharSlice runtime_id,
3156
+ ddog_CharSlice session_id,
3157
+ ddog_CharSlice root_session_id,
3158
+ ddog_CharSlice parent_session_id);
3159
+
3068
3160
  struct ddog_Option_U32 ddog_Option_U32_some(uint32_t v);
3069
3161
 
3070
3162
  struct ddog_Option_U32 ddog_Option_U32_none(void);
@@ -298,7 +298,7 @@ DDOG_CHECK_RETURN struct ddog_VoidResult ddog_crasht_clear_trace_ids(void);
298
298
  * Err() on failure. The most likely cause of failure is that the underlying set is full.
299
299
  *
300
300
  * Note: 128 bit ints in FFI were not stabilized until Rust 1.77
301
- * https://blog.rust-lang.org/2024/03/30/i128-layout-update.html
301
+ * <https://blog.rust-lang.org/2024/03/30/i128-layout-update.html>
302
302
  * We're currently locked into 1.76.0, have to do an ugly workaround involving 2 64 bit ints
303
303
  * until we can upgrade.
304
304
  *
@@ -323,7 +323,7 @@ struct ddog_crasht_Result_Usize ddog_crasht_insert_trace_id(uint64_t id_high,
323
323
  * Err() on failure. The most likely cause of failure is that the underlying set is full.
324
324
  *
325
325
  * Note: 128 bit ints in FFI were not stabilized until Rust 1.77
326
- * https://blog.rust-lang.org/2024/03/30/i128-layout-update.html
326
+ * <https://blog.rust-lang.org/2024/03/30/i128-layout-update.html>
327
327
  * We're currently locked into 1.76.0, have to do an ugly workaround involving 2 64 bit ints
328
328
  * until we can upgrade.
329
329
  *
@@ -349,7 +349,7 @@ struct ddog_crasht_Result_Usize ddog_crasht_insert_span_id(uint64_t id_high,
349
349
  * be modified.
350
350
  *
351
351
  * Note: 128 bit ints in FFI were not stabilized until Rust 1.77
352
- * https://blog.rust-lang.org/2024/03/30/i128-layout-update.html
352
+ * <https://blog.rust-lang.org/2024/03/30/i128-layout-update.html>
353
353
  * We're currently locked into 1.76.0, have to do an ugly workaround involving 2 64 bit ints
354
354
  * until we can upgrade.
355
355
  *
@@ -376,7 +376,7 @@ struct ddog_VoidResult ddog_crasht_remove_span_id(uint64_t id_high,
376
376
  * be modified.
377
377
  *
378
378
  * Note: 128 bit ints in FFI were not stabilized until Rust 1.77
379
- * https://blog.rust-lang.org/2024/03/30/i128-layout-update.html
379
+ * <https://blog.rust-lang.org/2024/03/30/i128-layout-update.html>
380
380
  * We're currently locked into 1.76.0, have to do an ugly workaround involving 2 64 bit ints
381
381
  * until we can upgrade.
382
382
  *