libdatadog 40.0.0.2.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.
- checksums.yaml +4 -4
- data/lib/libdatadog/version.rb +2 -2
- data/vendor/{libdatadog-40.0.0/aarch64-linux-musl → libdatadog-45.0.0/aarch64-linux}/LICENSE-3rdparty.csv +15 -12
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/{libdatadog-40.0.0/x86_64-linux-musl → libdatadog-45.0.0/aarch64-linux}/include/datadog/common.h +176 -122
- data/vendor/{libdatadog-40.0.0/arm64-darwin → libdatadog-45.0.0/aarch64-linux}/include/datadog/data-pipeline.h +79 -9
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/ffe.h +12 -0
- data/vendor/{libdatadog-40.0.0/aarch64-linux-musl → libdatadog-45.0.0/aarch64-linux}/include/datadog/library-config.h +47 -24
- data/vendor/{libdatadog-40.0.0/x86_64-linux-musl → libdatadog-45.0.0/aarch64-linux}/include/datadog/otel-thread-ctx.h +35 -5
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-40.0.0/arm64-darwin → libdatadog-45.0.0/aarch64-linux}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/{libdatadog-40.0.0/arm64-darwin → libdatadog-45.0.0/aarch64-linux-musl}/LICENSE-3rdparty.csv +15 -12
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/{libdatadog-40.0.0/arm64-darwin → libdatadog-45.0.0/aarch64-linux-musl}/include/datadog/common.h +176 -122
- data/vendor/{libdatadog-40.0.0/aarch64-linux → libdatadog-45.0.0/aarch64-linux-musl}/include/datadog/data-pipeline.h +79 -9
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/ffe.h +12 -0
- data/vendor/{libdatadog-40.0.0/arm64-darwin → libdatadog-45.0.0/aarch64-linux-musl}/include/datadog/library-config.h +47 -24
- data/vendor/{libdatadog-40.0.0/arm64-darwin → libdatadog-45.0.0/aarch64-linux-musl}/include/datadog/otel-thread-ctx.h +35 -5
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/{libdatadog-40.0.0/aarch64-linux → libdatadog-45.0.0/arm64-darwin}/LICENSE-3rdparty.csv +15 -12
- data/vendor/{libdatadog-40.0.0/aarch64-linux-musl → libdatadog-45.0.0/arm64-darwin}/include/datadog/common.h +176 -122
- data/vendor/{libdatadog-40.0.0/aarch64-linux-musl → libdatadog-45.0.0/arm64-darwin}/include/datadog/data-pipeline.h +79 -9
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/ffe.h +12 -0
- data/vendor/{libdatadog-40.0.0/aarch64-linux → libdatadog-45.0.0/arm64-darwin}/include/datadog/library-config.h +47 -24
- data/vendor/{libdatadog-40.0.0/aarch64-linux → libdatadog-45.0.0/arm64-darwin}/include/datadog/otel-thread-ctx.h +35 -5
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/lib/libdatadog_profiling.dylib +0 -0
- data/vendor/{libdatadog-40.0.0/x86_64-linux-musl → libdatadog-45.0.0/arm64-darwin}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/libdatadog-45.0.0/x86_64-linux/LICENSE-3rdparty.csv +557 -0
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/libdatadog-45.0.0/x86_64-linux/include/datadog/common.h +3169 -0
- data/vendor/libdatadog-45.0.0/x86_64-linux/include/datadog/data-pipeline.h +682 -0
- data/vendor/libdatadog-45.0.0/x86_64-linux/include/datadog/ffe.h +191 -0
- data/vendor/libdatadog-45.0.0/x86_64-linux/include/datadog/library-config.h +138 -0
- data/vendor/libdatadog-45.0.0/x86_64-linux/include/datadog/otel-thread-ctx.h +116 -0
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/lib/libdatadog_profiling.so +0 -0
- data/vendor/libdatadog-45.0.0/x86_64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +15 -0
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/LICENSE-3rdparty.csv +15 -12
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/{libdatadog-40.0.0/aarch64-linux → libdatadog-45.0.0/x86_64-linux-musl}/include/datadog/common.h +176 -122
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/data-pipeline.h +79 -9
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/ffe.h +12 -0
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/library-config.h +47 -24
- data/vendor/{libdatadog-40.0.0/aarch64-linux-musl → libdatadog-45.0.0/x86_64-linux-musl}/include/datadog/otel-thread-ctx.h +35 -5
- data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-40.0.0/aarch64-linux → libdatadog-45.0.0/x86_64-linux-musl}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- metadata +91 -91
- data/vendor/libdatadog-40.0.0/x86_64-linux/LICENSE-3rdparty.csv +0 -554
- data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/common.h +0 -3115
- data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/data-pipeline.h +0 -612
- data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/ffe.h +0 -179
- data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/library-config.h +0 -115
- data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/otel-thread-ctx.h +0 -86
- data/vendor/libdatadog-40.0.0/x86_64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -15
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/LICENSE +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/NOTICE +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/crashtracker.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/profiling.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/shared-runtime.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux/include/datadog/telemetry.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/LICENSE +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/NOTICE +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/crashtracker.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/profiling.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/shared-runtime.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/telemetry.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/LICENSE +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/NOTICE +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/bin/libdatadog-crashtracking-receiver +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/crashtracker.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/profiling.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/shared-runtime.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/arm64-darwin/include/datadog/telemetry.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/LICENSE +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/NOTICE +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/include/datadog/crashtracker.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/include/datadog/profiling.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/include/datadog/shared-runtime.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux/include/datadog/telemetry.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/LICENSE +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/NOTICE +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/crashtracker.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/profiling.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/x86_64-linux-musl/include/datadog/shared-runtime.h +0 -0
- /data/vendor/{libdatadog-40.0.0 → 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,
|
|
@@ -384,6 +411,14 @@ typedef enum ddog_prof_SampleType {
|
|
|
384
411
|
* serialization.
|
|
385
412
|
*/
|
|
386
413
|
DDOG_PROF_SAMPLE_TYPE_CUSTOM5,
|
|
414
|
+
/**
|
|
415
|
+
* Time spent in garbage collection.
|
|
416
|
+
*/
|
|
417
|
+
DDOG_PROF_SAMPLE_TYPE_GC_TIME,
|
|
418
|
+
/**
|
|
419
|
+
* Number of garbage-collection samples / pause events.
|
|
420
|
+
*/
|
|
421
|
+
DDOG_PROF_SAMPLE_TYPE_GC_SAMPLES,
|
|
387
422
|
} ddog_prof_SampleType;
|
|
388
423
|
|
|
389
424
|
typedef enum ddog_prof_Utf8Option {
|
|
@@ -517,24 +552,6 @@ typedef struct ddog_prof_ProfileExporter_Result {
|
|
|
517
552
|
};
|
|
518
553
|
} ddog_prof_ProfileExporter_Result;
|
|
519
554
|
|
|
520
|
-
/**
|
|
521
|
-
* A generic result type for when an operation may fail,
|
|
522
|
-
* but there's nothing to return in the case of success.
|
|
523
|
-
*/
|
|
524
|
-
typedef enum ddog_VoidResult_Tag {
|
|
525
|
-
DDOG_VOID_RESULT_OK,
|
|
526
|
-
DDOG_VOID_RESULT_ERR,
|
|
527
|
-
} ddog_VoidResult_Tag;
|
|
528
|
-
|
|
529
|
-
typedef struct ddog_VoidResult {
|
|
530
|
-
ddog_VoidResult_Tag tag;
|
|
531
|
-
union {
|
|
532
|
-
struct {
|
|
533
|
-
struct ddog_Error err;
|
|
534
|
-
};
|
|
535
|
-
};
|
|
536
|
-
} ddog_VoidResult;
|
|
537
|
-
|
|
538
555
|
typedef struct ddog_HttpStatus {
|
|
539
556
|
uint16_t code;
|
|
540
557
|
} ddog_HttpStatus;
|
|
@@ -1759,14 +1776,6 @@ typedef struct ddog_TelemetryClientConfig {
|
|
|
1759
1776
|
* How often telemetry should be sent, in milliseconds.
|
|
1760
1777
|
*/
|
|
1761
1778
|
uint64_t interval;
|
|
1762
|
-
/**
|
|
1763
|
-
* A V4 UUID that represents a tracer session. This ID should:
|
|
1764
|
-
* - Be generated when the tracer starts
|
|
1765
|
-
* - Be identical within the context of a host (i.e. multiple threads/processes that belong to
|
|
1766
|
-
* a single instrumented app should share the same runtime_id)
|
|
1767
|
-
* - Be associated with traces to allow correlation between traces and telemetry data
|
|
1768
|
-
*/
|
|
1769
|
-
ddog_CharSlice runtime_id;
|
|
1770
1779
|
/**
|
|
1771
1780
|
* Whether to enable debug mode for telemetry.
|
|
1772
1781
|
* When enabled, sets the DD-Telemetry-Debug-Enabled header to true.
|
|
@@ -1971,6 +1980,37 @@ typedef struct ddog_ProcessInfo {
|
|
|
1971
1980
|
ddog_CharSlice language;
|
|
1972
1981
|
} ddog_ProcessInfo;
|
|
1973
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
|
+
|
|
1974
2014
|
/**
|
|
1975
2015
|
* Ffi safe type representing an owned null-terminated C array
|
|
1976
2016
|
* Equivalent to a std::ffi::CString
|
|
@@ -2028,37 +2068,6 @@ typedef struct ddog_LibraryConfigLoggedResult {
|
|
|
2028
2068
|
};
|
|
2029
2069
|
} ddog_LibraryConfigLoggedResult;
|
|
2030
2070
|
|
|
2031
|
-
/**
|
|
2032
|
-
* C-compatible representation of an anonymous file handle
|
|
2033
|
-
*/
|
|
2034
|
-
typedef struct ddog_TracerMemfdHandle {
|
|
2035
|
-
/**
|
|
2036
|
-
* File descriptor (relevant only on Linux)
|
|
2037
|
-
*/
|
|
2038
|
-
int fd;
|
|
2039
|
-
} ddog_TracerMemfdHandle;
|
|
2040
|
-
|
|
2041
|
-
/**
|
|
2042
|
-
* A generic result type for when an operation may fail,
|
|
2043
|
-
* or may return <T> in case of success.
|
|
2044
|
-
*/
|
|
2045
|
-
typedef enum ddog_Result_TracerMemfdHandle_Tag {
|
|
2046
|
-
DDOG_RESULT_TRACER_MEMFD_HANDLE_OK_TRACER_MEMFD_HANDLE,
|
|
2047
|
-
DDOG_RESULT_TRACER_MEMFD_HANDLE_ERR_TRACER_MEMFD_HANDLE,
|
|
2048
|
-
} ddog_Result_TracerMemfdHandle_Tag;
|
|
2049
|
-
|
|
2050
|
-
typedef struct ddog_Result_TracerMemfdHandle {
|
|
2051
|
-
ddog_Result_TracerMemfdHandle_Tag tag;
|
|
2052
|
-
union {
|
|
2053
|
-
struct {
|
|
2054
|
-
struct ddog_TracerMemfdHandle ok;
|
|
2055
|
-
};
|
|
2056
|
-
struct {
|
|
2057
|
-
struct ddog_Error err;
|
|
2058
|
-
};
|
|
2059
|
-
};
|
|
2060
|
-
} ddog_Result_TracerMemfdHandle;
|
|
2061
|
-
|
|
2062
2071
|
/**
|
|
2063
2072
|
* Log level for filtering log events.
|
|
2064
2073
|
*/
|
|
@@ -2438,10 +2447,9 @@ typedef struct ddog_SharedRuntimeFFIError {
|
|
|
2438
2447
|
#define ddog_MAX_ATTRS_DATA_SIZE 612
|
|
2439
2448
|
|
|
2440
2449
|
/**
|
|
2441
|
-
* Opaque handle to a thread context record. Used to
|
|
2442
|
-
*
|
|
2443
|
-
*
|
|
2444
|
-
* [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.)
|
|
2445
2453
|
*/
|
|
2446
2454
|
typedef struct ddog_ThreadContextHandle {
|
|
2447
2455
|
|
|
@@ -2942,27 +2950,6 @@ typedef void (*ddog_crasht_RuntimeStacktraceStringCallback)(void (*emit_stacktra
|
|
|
2942
2950
|
extern "C" {
|
|
2943
2951
|
#endif // __cplusplus
|
|
2944
2952
|
|
|
2945
|
-
/**
|
|
2946
|
-
* Drops the error. It should not be used after this, though the
|
|
2947
|
-
* implementation tries to limit the damage in the case of use-after-free and
|
|
2948
|
-
* double-free scenarios.
|
|
2949
|
-
*
|
|
2950
|
-
* # Safety
|
|
2951
|
-
*
|
|
2952
|
-
* Only pass null or a pointer to a valid, mutable `ddog_Error`.
|
|
2953
|
-
*/
|
|
2954
|
-
void ddog_Error_drop(struct ddog_Error *error);
|
|
2955
|
-
|
|
2956
|
-
/**
|
|
2957
|
-
* Returns a CharSlice of the error's message that is valid until the error
|
|
2958
|
-
* is dropped.
|
|
2959
|
-
* # Safety
|
|
2960
|
-
* Only pass null or a valid reference to a `ddog_Error`.
|
|
2961
|
-
*/
|
|
2962
|
-
ddog_CharSlice ddog_Error_message(const struct ddog_Error *error);
|
|
2963
|
-
|
|
2964
|
-
void ddog_MaybeError_drop(ddog_MaybeError);
|
|
2965
|
-
|
|
2966
2953
|
/**
|
|
2967
2954
|
* Creates a new ArrayQueue with the given capacity and item_delete_fn.
|
|
2968
2955
|
* The item_delete_fn is called when an item is dropped from the queue.
|
|
@@ -3057,6 +3044,73 @@ void ddog_endpoint_set_use_system_resolver(struct ddog_Endpoint *endpoint,
|
|
|
3057
3044
|
|
|
3058
3045
|
void ddog_endpoint_drop(struct ddog_Endpoint*);
|
|
3059
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
|
+
|
|
3060
3114
|
struct ddog_Option_U32 ddog_Option_U32_some(uint32_t v);
|
|
3061
3115
|
|
|
3062
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
|
*/
|
|
@@ -187,19 +213,21 @@ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_shared_runtime(st
|
|
|
187
213
|
struct ddog_ForkSafeRuntime *handle);
|
|
188
214
|
|
|
189
215
|
/**
|
|
190
|
-
* Enables OTLP
|
|
216
|
+
* Enables OTLP trace export and sets the endpoint URL.
|
|
191
217
|
*
|
|
192
|
-
* When set, traces are sent to this URL
|
|
193
|
-
* agent. The host language
|
|
194
|
-
*
|
|
218
|
+
* When set, traces are sent to this URL using the protocol selected by
|
|
219
|
+
* `ddog_trace_exporter_config_set_otlp_protocol` instead of the Datadog agent. The host language
|
|
220
|
+
* is responsible for resolving the endpoint from its configuration (e.g.
|
|
221
|
+
* `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT`) before calling this function.
|
|
195
222
|
*/
|
|
196
223
|
struct ddog_TraceExporterError *ddog_trace_exporter_config_set_otlp_endpoint(struct ddog_TraceExporterConfig *config,
|
|
197
224
|
ddog_CharSlice url);
|
|
198
225
|
|
|
199
226
|
/**
|
|
200
|
-
* Sets the OTLP export protocol. Accepts the OTel-standard values `http/json` (default)
|
|
201
|
-
* `http/protobuf
|
|
227
|
+
* Sets the OTLP export protocol. Accepts the OTel-standard values `http/json` (default),
|
|
228
|
+
* `http/protobuf`, or `grpc`; unknown values are rejected. The host language resolves the value
|
|
202
229
|
* (e.g. from `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL`).
|
|
230
|
+
* The `grpc` protocol currently supports plaintext `http://` endpoints only.
|
|
203
231
|
*
|
|
204
232
|
* Has no effect unless an OTLP endpoint is also configured via
|
|
205
233
|
* `ddog_trace_exporter_config_set_otlp_endpoint`; without one, traces are sent to the
|
|
@@ -240,6 +268,48 @@ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_stats_cardinality
|
|
|
240
268
|
*/
|
|
241
269
|
struct ddog_CardinalityLimitConfig ddog_trace_exporter_config_default_stats_cardinality_limit(void);
|
|
242
270
|
|
|
271
|
+
/**
|
|
272
|
+
* Enables agentless APM trace export and sets the intake URL and API key.
|
|
273
|
+
*
|
|
274
|
+
* When set, APM trace spans are sent directly to the Datadog HTTP intake in JSON format
|
|
275
|
+
* (`POST /v1/input`) instead of through the Datadog Agent. Agentless trace export is mutually
|
|
276
|
+
* exclusive with both an agent URL ([`ddog_trace_exporter_config_set_url`]) and an OTLP endpoint
|
|
277
|
+
* ([`ddog_trace_exporter_config_set_otlp_endpoint`]); combining either with this setter causes
|
|
278
|
+
* [`ddog_trace_exporter_new`] to return an error.
|
|
279
|
+
*/
|
|
280
|
+
struct ddog_TraceExporterError *ddog_trace_exporter_config_set_agentless_endpoint(struct ddog_TraceExporterConfig *config,
|
|
281
|
+
ddog_CharSlice url,
|
|
282
|
+
ddog_CharSlice api_key);
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Sets the request timeout (in milliseconds) used by the agentless intake transport.
|
|
286
|
+
*
|
|
287
|
+
* Defaults to 15 seconds when unset. Calling this without also setting an agentless endpoint
|
|
288
|
+
* causes [`ddog_trace_exporter_new`] to return an error.
|
|
289
|
+
*/
|
|
290
|
+
struct ddog_TraceExporterError *ddog_trace_exporter_config_set_agentless_timeout(struct ddog_TraceExporterConfig *config,
|
|
291
|
+
uint64_t timeout_ms);
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* Sets the span obfuscation configuration from a JSON string.
|
|
295
|
+
*
|
|
296
|
+
* `json` is deserialized into `ObfuscationConfig` (the same struct the Datadog Agent uses),
|
|
297
|
+
* which controls obfuscation of HTTP URLs, SQL resources, Redis/Valkey commands, memcached
|
|
298
|
+
* commands, credit-card numbers, elasticsearch/opensearch/mongodb bodies, and tag-replace
|
|
299
|
+
* rules. Obfuscation is applied to every span on the agentless export path (see
|
|
300
|
+
* [`ddog_trace_exporter_config_set_agentless_endpoint`]); it has no effect on the agent path.
|
|
301
|
+
*
|
|
302
|
+
* Returns an error if `json` is not valid UTF-8 or fails to deserialize. Example:
|
|
303
|
+
* ```c
|
|
304
|
+
* ddog_trace_exporter_config_set_obfuscation_config(
|
|
305
|
+
* cfg, DDOG_CHARSLICE_C(
|
|
306
|
+
* "{\"http\":{\"remove_query_string\":true},"
|
|
307
|
+
* "\"credit_cards\":{\"enabled\":true}}"));
|
|
308
|
+
* ```
|
|
309
|
+
*/
|
|
310
|
+
struct ddog_TraceExporterError *ddog_trace_exporter_config_set_obfuscation_config(struct ddog_TraceExporterConfig *config,
|
|
311
|
+
ddog_CharSlice json);
|
|
312
|
+
|
|
243
313
|
/**
|
|
244
314
|
* Configure the exporter to write traces as newline-delimited JSON to stdout (the Datadog
|
|
245
315
|
* Forwarder "log exporter" path) instead of sending them to a Datadog agent. Used in serverless
|
|
@@ -262,9 +332,9 @@ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_output_to_log(str
|
|
|
262
332
|
/**
|
|
263
333
|
* Create a new TraceExporter instance.
|
|
264
334
|
*
|
|
265
|
-
* When an OTLP endpoint is configured via `TraceExporterConfig`, the exporter sends traces
|
|
266
|
-
*
|
|
267
|
-
*
|
|
335
|
+
* When an OTLP endpoint is configured via `TraceExporterConfig`, the exporter sends traces using
|
|
336
|
+
* the configured `http/json`, `http/protobuf`, or `grpc` protocol instead of the Datadog agent.
|
|
337
|
+
* The same payload (e.g. MessagePack) is passed to
|
|
268
338
|
* `ddog_trace_exporter_send`; the library decodes and converts it to OTLP when OTLP is enabled.
|
|
269
339
|
*
|
|
270
340
|
* # Arguments
|
data/vendor/{libdatadog-40.0.0 → libdatadog-45.0.0}/aarch64-linux-musl/include/datadog/ffe.h
RENAMED
|
@@ -147,6 +147,18 @@ struct ddog_ffe_Result_HandleConfiguration ddog_ffe_configuration_new(struct ddo
|
|
|
147
147
|
*/
|
|
148
148
|
void ddog_ffe_configuration_drop(ddog_ffe_Handle_Configuration *config);
|
|
149
149
|
|
|
150
|
+
/**
|
|
151
|
+
* Get the config-level `observeFullEvaluationData` flag.
|
|
152
|
+
*
|
|
153
|
+
* Opt-in boolean for emitting full flag evaluation data from SDKs to Datadog. Flag evaluation data
|
|
154
|
+
* may contain PII; defaults to `false` for privacy.
|
|
155
|
+
*
|
|
156
|
+
* # Safety
|
|
157
|
+
*
|
|
158
|
+
* `config` must be a valid `Configuration` handle created by `ddog_ffe_configuration_new`.
|
|
159
|
+
*/
|
|
160
|
+
bool ddog_ffe_configuration_get_observe_full_evaluation_data(ddog_ffe_Handle_Configuration config);
|
|
161
|
+
|
|
150
162
|
/**
|
|
151
163
|
* Creates a new EvaluationContext with the given targeting key and attributes.
|
|
152
164
|
*
|
|
@@ -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.
|
|
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`
|
|
58
|
-
*
|
|
59
|
-
*
|
|
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`.
|
|
@@ -79,6 +92,23 @@ void ddog_otel_thread_ctx_update(const uint8_t (*trace_id)[16],
|
|
|
79
92
|
uint8_t trace_flags,
|
|
80
93
|
const uint8_t (*local_root_span_id)[8]);
|
|
81
94
|
|
|
95
|
+
/**
|
|
96
|
+
* Update `ctx` and attach it to the current thread. Returns the previously attached different
|
|
97
|
+
* context, if any. Uses the same ID byte order and zero-value rules as
|
|
98
|
+
* `ddog_otel_thread_ctx_new`.
|
|
99
|
+
*
|
|
100
|
+
* # Safety
|
|
101
|
+
*
|
|
102
|
+
* `ctx` may be null; otherwise it must be a valid non-null pointer obtained from this API.
|
|
103
|
+
* If attached, it must be attached only to the calling native thread and must not be
|
|
104
|
+
* concurrently updated or freed. A non-null returned context is owned by the caller.
|
|
105
|
+
*/
|
|
106
|
+
struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_update_and_attach(struct ddog_ThreadContextHandle *ctx,
|
|
107
|
+
const uint8_t (*trace_id)[16],
|
|
108
|
+
const uint8_t (*span_id)[8],
|
|
109
|
+
uint8_t trace_flags,
|
|
110
|
+
const uint8_t (*local_root_span_id)[8]);
|
|
111
|
+
|
|
82
112
|
#ifdef __cplusplus
|
|
83
113
|
} // extern "C"
|
|
84
114
|
#endif // __cplusplus
|