libdatadog 24.0.1.1.0 → 26.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 +1 -1
- data/lib/libdatadog.rb +6 -0
- data/vendor/{libdatadog-24.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-26.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/LICENSE-3rdparty.yml +15538 -9137
- data/vendor/{libdatadog-24.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-26.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/common.h +313 -66
- data/vendor/{libdatadog-24.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-26.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/crashtracker.h +1 -1
- data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/profiling.h +215 -57
- data/vendor/{libdatadog-24.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-26.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/telemetry.h +2 -1
- data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/{libdatadog-24.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-26.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/LICENSE-3rdparty.yml +15538 -9137
- data/vendor/{libdatadog-24.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-26.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/common.h +313 -66
- data/vendor/{libdatadog-24.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-26.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/crashtracker.h +1 -1
- data/vendor/{libdatadog-24.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-26.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/profiling.h +215 -57
- data/vendor/{libdatadog-24.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-26.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/telemetry.h +2 -1
- data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/{libdatadog-24.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/LICENSE-3rdparty.yml +15538 -9137
- data/vendor/libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/{libdatadog-24.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/include/datadog/common.h +313 -66
- data/vendor/{libdatadog-24.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/include/datadog/crashtracker.h +1 -1
- data/vendor/{libdatadog-24.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/include/datadog/profiling.h +215 -57
- data/vendor/{libdatadog-24.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/include/datadog/telemetry.h +2 -1
- data/vendor/libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin/lib/libdatadog_profiling.dylib +0 -0
- data/vendor/{libdatadog-24.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/libdatadog-26.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +202 -0
- data/vendor/libdatadog-26.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +55070 -0
- data/vendor/libdatadog-26.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +4 -0
- data/vendor/libdatadog-26.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h +1497 -0
- data/vendor/libdatadog-26.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h +2651 -0
- data/vendor/libdatadog-26.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/crashtracker.h +953 -0
- data/vendor/libdatadog-26.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/data-pipeline.h +183 -0
- data/vendor/libdatadog-26.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/ddsketch.h +89 -0
- data/vendor/libdatadog-26.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/ffe.h +175 -0
- data/vendor/libdatadog-26.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/library-config.h +113 -0
- data/vendor/libdatadog-26.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/log.h +63 -0
- data/vendor/libdatadog-26.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h +941 -0
- data/vendor/libdatadog-26.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h +286 -0
- data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- data/vendor/libdatadog-26.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +15 -0
- data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +15538 -9137
- data/vendor/{libdatadog-24.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-26.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/common.h +313 -66
- data/vendor/{libdatadog-24.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-26.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/crashtracker.h +1 -1
- data/vendor/{libdatadog-24.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-26.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/profiling.h +215 -57
- data/vendor/{libdatadog-24.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-26.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/telemetry.h +2 -1
- data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-24.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-26.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- metadata +81 -65
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/data-pipeline.h +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/LICENSE +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/NOTICE +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/include/datadog/data-pipeline.h +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-26.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin}/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-26.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/LICENSE +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-26.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/NOTICE +0 -0
- /data/vendor/{libdatadog-24.0.1 → libdatadog-26.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-26.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-26.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/data-pipeline.h +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-26.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-26.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-26.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-24.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-26.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/log.h +0 -0
|
Binary file
|
|
@@ -257,11 +257,45 @@ typedef struct ddog_Vec_Tag_ParseResult {
|
|
|
257
257
|
struct ddog_Error *error_message;
|
|
258
258
|
} ddog_Vec_Tag_ParseResult;
|
|
259
259
|
|
|
260
|
+
typedef struct ddog_prof_StringHeader *ddog_prof_StringId2;
|
|
261
|
+
typedef struct ddog_prof_Mapping2 *ddog_prof_MappingId2;
|
|
262
|
+
typedef struct ddog_prof_Function2 *ddog_prof_FunctionId2;
|
|
263
|
+
|
|
264
|
+
#define ddog_prof_Set_SIZE_HINT (1024 * 1024)
|
|
265
|
+
|
|
266
|
+
typedef enum ddog_prof_Utf8Option {
|
|
267
|
+
/**
|
|
268
|
+
* The string is assumed to be valid UTF-8. If it's not, the behavior
|
|
269
|
+
* is undefined.
|
|
270
|
+
*/
|
|
271
|
+
DDOG_PROF_UTF8_OPTION_ASSUME,
|
|
272
|
+
/**
|
|
273
|
+
* The string is converted to UTF-8 using lossy conversion.
|
|
274
|
+
*/
|
|
275
|
+
DDOG_PROF_UTF8_OPTION_CONVERT_LOSSY,
|
|
276
|
+
/**
|
|
277
|
+
* The string is validated to be UTF-8. If it's not, an error is
|
|
278
|
+
* returned.
|
|
279
|
+
*/
|
|
280
|
+
DDOG_PROF_UTF8_OPTION_VALIDATE,
|
|
281
|
+
} ddog_prof_Utf8Option;
|
|
282
|
+
|
|
283
|
+
typedef struct ddog_OpaqueCancellationToken ddog_OpaqueCancellationToken;
|
|
284
|
+
|
|
260
285
|
typedef struct ddog_prof_EncodedProfile ddog_prof_EncodedProfile;
|
|
261
286
|
|
|
262
287
|
typedef struct ddog_prof_Exporter ddog_prof_Exporter;
|
|
263
288
|
|
|
264
|
-
|
|
289
|
+
/**
|
|
290
|
+
* `ProfilesDictionary` contains data which are common to multiple profiles,
|
|
291
|
+
* whether that's multiple profiles simultaneously or multiple profiles
|
|
292
|
+
* through time.
|
|
293
|
+
*
|
|
294
|
+
* The current implementation is thread-safe, though there has been some
|
|
295
|
+
* discussion about making that optional, as some libraries will call these
|
|
296
|
+
* APIs in places where a mutex is already employed.
|
|
297
|
+
*/
|
|
298
|
+
typedef struct ddog_prof_ProfilesDictionary ddog_prof_ProfilesDictionary;
|
|
265
299
|
|
|
266
300
|
typedef struct ddog_Slice_U8 {
|
|
267
301
|
/**
|
|
@@ -307,17 +341,21 @@ typedef enum ddog_prof_Endpoint_Tag {
|
|
|
307
341
|
DDOG_PROF_ENDPOINT_FILE,
|
|
308
342
|
} ddog_prof_Endpoint_Tag;
|
|
309
343
|
|
|
344
|
+
typedef struct ddog_prof_Endpoint_ddog_prof_Agent_Body {
|
|
345
|
+
ddog_CharSlice _0;
|
|
346
|
+
uint64_t _1;
|
|
347
|
+
} ddog_prof_Endpoint_ddog_prof_Agent_Body;
|
|
348
|
+
|
|
310
349
|
typedef struct ddog_prof_Endpoint_ddog_prof_Agentless_Body {
|
|
311
350
|
ddog_CharSlice _0;
|
|
312
351
|
ddog_CharSlice _1;
|
|
352
|
+
uint64_t _2;
|
|
313
353
|
} ddog_prof_Endpoint_ddog_prof_Agentless_Body;
|
|
314
354
|
|
|
315
355
|
typedef struct ddog_prof_Endpoint {
|
|
316
356
|
ddog_prof_Endpoint_Tag tag;
|
|
317
357
|
union {
|
|
318
|
-
|
|
319
|
-
ddog_CharSlice agent;
|
|
320
|
-
};
|
|
358
|
+
ddog_prof_Endpoint_ddog_prof_Agent_Body AGENT;
|
|
321
359
|
ddog_prof_Endpoint_ddog_prof_Agentless_Body AGENTLESS;
|
|
322
360
|
struct {
|
|
323
361
|
ddog_CharSlice file;
|
|
@@ -354,61 +392,6 @@ typedef struct ddog_prof_ProfileExporter_Result {
|
|
|
354
392
|
};
|
|
355
393
|
} ddog_prof_ProfileExporter_Result;
|
|
356
394
|
|
|
357
|
-
/**
|
|
358
|
-
* A generic result type for when an operation may fail,
|
|
359
|
-
* but there's nothing to return in the case of success.
|
|
360
|
-
*/
|
|
361
|
-
typedef enum ddog_VoidResult_Tag {
|
|
362
|
-
DDOG_VOID_RESULT_OK,
|
|
363
|
-
DDOG_VOID_RESULT_ERR,
|
|
364
|
-
} ddog_VoidResult_Tag;
|
|
365
|
-
|
|
366
|
-
typedef struct ddog_VoidResult {
|
|
367
|
-
ddog_VoidResult_Tag tag;
|
|
368
|
-
union {
|
|
369
|
-
struct {
|
|
370
|
-
struct ddog_Error err;
|
|
371
|
-
};
|
|
372
|
-
};
|
|
373
|
-
} ddog_VoidResult;
|
|
374
|
-
|
|
375
|
-
/**
|
|
376
|
-
* Represents an object that should only be referred to by its handle.
|
|
377
|
-
* Do not access its member for any reason, only use the C API functions on this struct.
|
|
378
|
-
*/
|
|
379
|
-
typedef struct ddog_prof_Request {
|
|
380
|
-
struct ddog_prof_Exporter_Request *inner;
|
|
381
|
-
} ddog_prof_Request;
|
|
382
|
-
|
|
383
|
-
/**
|
|
384
|
-
* A generic result type for when an operation may fail,
|
|
385
|
-
* or may return <T> in case of success.
|
|
386
|
-
*/
|
|
387
|
-
typedef enum ddog_prof_Request_Result_Tag {
|
|
388
|
-
DDOG_PROF_REQUEST_RESULT_OK_HANDLE_REQUEST,
|
|
389
|
-
DDOG_PROF_REQUEST_RESULT_ERR_HANDLE_REQUEST,
|
|
390
|
-
} ddog_prof_Request_Result_Tag;
|
|
391
|
-
|
|
392
|
-
typedef struct ddog_prof_Request_Result {
|
|
393
|
-
ddog_prof_Request_Result_Tag tag;
|
|
394
|
-
union {
|
|
395
|
-
struct {
|
|
396
|
-
struct ddog_prof_Request ok;
|
|
397
|
-
};
|
|
398
|
-
struct {
|
|
399
|
-
struct ddog_Error err;
|
|
400
|
-
};
|
|
401
|
-
};
|
|
402
|
-
} ddog_prof_Request_Result;
|
|
403
|
-
|
|
404
|
-
/**
|
|
405
|
-
* Represents an object that should only be referred to by its handle.
|
|
406
|
-
* Do not access its member for any reason, only use the C API functions on this struct.
|
|
407
|
-
*/
|
|
408
|
-
typedef struct ddog_prof_EncodedProfile {
|
|
409
|
-
struct ddog_prof_EncodedProfile *inner;
|
|
410
|
-
} ddog_prof_EncodedProfile;
|
|
411
|
-
|
|
412
395
|
typedef struct ddog_HttpStatus {
|
|
413
396
|
uint16_t code;
|
|
414
397
|
} ddog_HttpStatus;
|
|
@@ -434,6 +417,14 @@ typedef struct ddog_prof_Result_HttpStatus {
|
|
|
434
417
|
};
|
|
435
418
|
} ddog_prof_Result_HttpStatus;
|
|
436
419
|
|
|
420
|
+
/**
|
|
421
|
+
* Represents an object that should only be referred to by its handle.
|
|
422
|
+
* Do not access its member for any reason, only use the C API functions on this struct.
|
|
423
|
+
*/
|
|
424
|
+
typedef struct ddog_prof_EncodedProfile {
|
|
425
|
+
struct ddog_prof_EncodedProfile *inner;
|
|
426
|
+
} ddog_prof_EncodedProfile;
|
|
427
|
+
|
|
437
428
|
typedef struct ddog_OpaqueCancellationToken ddog_prof_TokioCancellationToken;
|
|
438
429
|
|
|
439
430
|
/**
|
|
@@ -444,6 +435,53 @@ typedef struct ddog_CancellationToken {
|
|
|
444
435
|
ddog_prof_TokioCancellationToken *inner;
|
|
445
436
|
} ddog_CancellationToken;
|
|
446
437
|
|
|
438
|
+
/**
|
|
439
|
+
* Represents the result of an operation that either succeeds with no value, or fails with an
|
|
440
|
+
* error message. This is like `Result<(), Cow<'static, CStr>` except its representation is
|
|
441
|
+
* smaller, and is FFI-stable.
|
|
442
|
+
*
|
|
443
|
+
* The OK status is guaranteed to have a representation of `{ 0, null }`.
|
|
444
|
+
*
|
|
445
|
+
* # Ownership
|
|
446
|
+
*
|
|
447
|
+
* A `ProfileStatus` owns its error message data. When a `ProfileStatus` with an error is
|
|
448
|
+
* created, it takes ownership of the error string (either as a static reference or heap
|
|
449
|
+
* allocation). The caller is responsible for eventually calling [`ddog_prof_Status_drop`] to
|
|
450
|
+
* free any heap-allocated memory. This is safe to call on OK as well.
|
|
451
|
+
*
|
|
452
|
+
* # FFI Safety
|
|
453
|
+
*
|
|
454
|
+
* This type is `#[repr(C)]` and safe to pass across FFI boundaries. The C side must treat the
|
|
455
|
+
* `.flags` as opaque and use API functions; the `.err` field is guaranteed to be null when the
|
|
456
|
+
* `ProfileStatus` is OK, and on Err it will be non-null pointer to a UTF8 encoded string which
|
|
457
|
+
* has a null terminator.
|
|
458
|
+
*/
|
|
459
|
+
typedef struct ddog_prof_Status {
|
|
460
|
+
/**
|
|
461
|
+
* Bitflags indicating the storage type of the error message.
|
|
462
|
+
* This is only meaningful when `err` is non-null. When `err` is
|
|
463
|
+
* null (indicating OK), this field SHOULD be zero. Currently, only one
|
|
464
|
+
* bit is used `IS_ALLOCATED_MASK`, which determines whether the error
|
|
465
|
+
* message is owned or statically borrowed.
|
|
466
|
+
* In the future, we may store error codes in here as well.
|
|
467
|
+
*/
|
|
468
|
+
size_t flags;
|
|
469
|
+
/**
|
|
470
|
+
* Pointer to a null-terminated UTF-8 error message string.
|
|
471
|
+
* - If null this indicates OK (success). This is an FFI guarantee.
|
|
472
|
+
* - If non-null and allocated bit is clear: points to static data with `'static` lifetime.
|
|
473
|
+
* - If non-null and allocated bit is set: points to owned heap-allocated data.
|
|
474
|
+
*
|
|
475
|
+
* # Safety Invariant
|
|
476
|
+
*
|
|
477
|
+
* When non-null, `err` must point to a valid, null-terminated C string in UTF-8 encoding.
|
|
478
|
+
* The pointer remains valid for the lifetime of this `ProfileStatus` or until
|
|
479
|
+
* [`ddog_prof_Status_drop`] is called.
|
|
480
|
+
*/
|
|
481
|
+
const char *err;
|
|
482
|
+
} ddog_prof_Status;
|
|
483
|
+
#define ddog_prof_Status_OK (ddog_prof_Status){ .flags = 0, .err = (ddog_prof_null){ } }
|
|
484
|
+
|
|
447
485
|
/**
|
|
448
486
|
* Represents a profile. Do not access its member for any reason, only use
|
|
449
487
|
* the C API functions on this struct.
|
|
@@ -502,6 +540,23 @@ typedef struct ddog_prof_Period {
|
|
|
502
540
|
int64_t value;
|
|
503
541
|
} ddog_prof_Period;
|
|
504
542
|
|
|
543
|
+
/**
|
|
544
|
+
* Opaque FFI handle to an `Arc<T>`'s inner `T`.
|
|
545
|
+
*
|
|
546
|
+
* Safety rules for implementors/callers:
|
|
547
|
+
* - Do not create multiple owning `Arc<T>`s from the same raw pointer.
|
|
548
|
+
* - Always restore the original `Arc` with `into_raw` after any `from_raw`.
|
|
549
|
+
* - Use `as_inner()` to validate non-null before performing raw round-trips.
|
|
550
|
+
*
|
|
551
|
+
* From Rust, use [`ArcHandle::try_clone`] to make a reference-counted copy.
|
|
552
|
+
* From the C FFI, the handle should probably be renamed to avoid generics
|
|
553
|
+
* bloat garbage, and a *_try_clone API should be provided.
|
|
554
|
+
*
|
|
555
|
+
* Use [`ArcHandle::drop_resource`] to drop the resource and move this handle
|
|
556
|
+
* into the empty handle state, which is the default state.
|
|
557
|
+
*/
|
|
558
|
+
typedef struct ddog_prof_ProfilesDictionary *ddog_prof_ProfilesDictionaryHandle;
|
|
559
|
+
|
|
505
560
|
typedef struct ddog_prof_ManagedStringStorage {
|
|
506
561
|
const void *inner;
|
|
507
562
|
} ddog_prof_ManagedStringStorage;
|
|
@@ -685,6 +740,159 @@ typedef struct ddog_prof_Sample {
|
|
|
685
740
|
struct ddog_prof_Slice_Label labels;
|
|
686
741
|
} ddog_prof_Sample;
|
|
687
742
|
|
|
743
|
+
/**
|
|
744
|
+
* Represents what StringIds point to. Its definition is intentionally
|
|
745
|
+
* obscured; the actual layout is being hidden. This is here so that
|
|
746
|
+
* cbindgen will generate a unique type as opposed to relying on `void *` or
|
|
747
|
+
* similar. We want StringId2, FunctionId2, and MappingId2 to all point to
|
|
748
|
+
* unique so that compilers will distinguish between them and provide some
|
|
749
|
+
* type safety.
|
|
750
|
+
*/
|
|
751
|
+
typedef struct ddog_prof_StringHeader {
|
|
752
|
+
uint8_t _0;
|
|
753
|
+
} ddog_prof_StringHeader;
|
|
754
|
+
|
|
755
|
+
/**
|
|
756
|
+
* An FFI-safe string ID where a null StringId2 maps to `StringRef::EMPTY`.
|
|
757
|
+
* The representation is ensured to be a pointer for ABI stability, but
|
|
758
|
+
* callers should not generally dereference this pointer. When using the id,
|
|
759
|
+
* the caller needs to be sure that the `ProfilesDictionary` or string set it
|
|
760
|
+
* refers to is the same one that the operations are performed on; it is not
|
|
761
|
+
* generally guaranteed that ids from one dictionary/set can be used in
|
|
762
|
+
* another, even if it happens to work by implementation detail. There is an
|
|
763
|
+
* exception is for well-known strings, which are considered present in every
|
|
764
|
+
* string set.
|
|
765
|
+
*/
|
|
766
|
+
typedef struct ddog_prof_StringHeader *ddog_prof_StringId2;
|
|
767
|
+
|
|
768
|
+
/**
|
|
769
|
+
* An FFI-safe version of the Mapping which allows null. Be sure to maintain
|
|
770
|
+
* layout-compatibility with it, except that StringId2 may be null.
|
|
771
|
+
*/
|
|
772
|
+
typedef struct ddog_prof_Mapping2 {
|
|
773
|
+
uint64_t memory_start;
|
|
774
|
+
uint64_t memory_limit;
|
|
775
|
+
uint64_t file_offset;
|
|
776
|
+
ddog_prof_StringId2 filename;
|
|
777
|
+
ddog_prof_StringId2 build_id;
|
|
778
|
+
} ddog_prof_Mapping2;
|
|
779
|
+
|
|
780
|
+
/**
|
|
781
|
+
* An FFI-safe representation of a "handle" to a mapping which has been
|
|
782
|
+
* stored in the `ProfilesDictionary`. The representation is ensured to be a
|
|
783
|
+
* pointer for ABI stability, but callers should not generally dereference
|
|
784
|
+
* this pointer. When using the id, the caller needs to be sure that the
|
|
785
|
+
* `ProfilesDictionary` it refers to is the same one that the operations are
|
|
786
|
+
* performed on; it is not generally guaranteed that ids from one dictionary
|
|
787
|
+
* can be used in another dictionary, even if it happens to work by
|
|
788
|
+
* implementation detail.
|
|
789
|
+
*/
|
|
790
|
+
typedef struct ddog_prof_Mapping2 *ddog_prof_MappingId2;
|
|
791
|
+
|
|
792
|
+
/**
|
|
793
|
+
* An FFI-safe version of the Function which allows null. Be sure to maintain
|
|
794
|
+
* layout-compatibility with it, except that StringId2 may be null.
|
|
795
|
+
*/
|
|
796
|
+
typedef struct ddog_prof_Function2 {
|
|
797
|
+
ddog_prof_StringId2 name;
|
|
798
|
+
ddog_prof_StringId2 system_name;
|
|
799
|
+
ddog_prof_StringId2 file_name;
|
|
800
|
+
} ddog_prof_Function2;
|
|
801
|
+
|
|
802
|
+
/**
|
|
803
|
+
* An FFI-safe representation of a "handle" to a function which has been
|
|
804
|
+
* stored in the `ProfilesDictionary`. The representation is ensured to be a
|
|
805
|
+
* pointer for ABI stability, but callers should not generally dereference
|
|
806
|
+
* this pointer. When using the id, the caller needs to be sure that the
|
|
807
|
+
* `ProfilesDictionary` it refers to is the same one that the operations are
|
|
808
|
+
* performed on; it is not generally guaranteed that ids from one dictionary
|
|
809
|
+
* can be used in another dictionary, even if it happens to work by
|
|
810
|
+
* implementation detail.
|
|
811
|
+
*/
|
|
812
|
+
typedef struct ddog_prof_Function2 *ddog_prof_FunctionId2;
|
|
813
|
+
|
|
814
|
+
typedef struct ddog_prof_Location2 {
|
|
815
|
+
ddog_prof_MappingId2 mapping;
|
|
816
|
+
ddog_prof_FunctionId2 function;
|
|
817
|
+
/**
|
|
818
|
+
* The instruction address for this location, if available. It
|
|
819
|
+
* should be within [Mapping.memory_start...Mapping.memory_limit]
|
|
820
|
+
* for the corresponding mapping. A non-leaf address may be in the
|
|
821
|
+
* middle of a call instruction. It is up to display tools to find
|
|
822
|
+
* the beginning of the instruction if necessary.
|
|
823
|
+
*/
|
|
824
|
+
uint64_t address;
|
|
825
|
+
int64_t line;
|
|
826
|
+
} ddog_prof_Location2;
|
|
827
|
+
|
|
828
|
+
typedef struct ddog_prof_Slice_Location2 {
|
|
829
|
+
/**
|
|
830
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
|
831
|
+
* allowed but not recommended for the pointer to be null when the len is
|
|
832
|
+
* zero.
|
|
833
|
+
*/
|
|
834
|
+
const struct ddog_prof_Location2 *ptr;
|
|
835
|
+
/**
|
|
836
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
837
|
+
* than or equal to [isize::MAX].
|
|
838
|
+
*/
|
|
839
|
+
uintptr_t len;
|
|
840
|
+
} ddog_prof_Slice_Location2;
|
|
841
|
+
|
|
842
|
+
typedef struct ddog_prof_Label2 {
|
|
843
|
+
ddog_prof_StringId2 key;
|
|
844
|
+
/**
|
|
845
|
+
* At most one of `.str` and `.num` should not be empty.
|
|
846
|
+
*/
|
|
847
|
+
ddog_CharSlice str;
|
|
848
|
+
int64_t num;
|
|
849
|
+
/**
|
|
850
|
+
* Should only be present when num is present.
|
|
851
|
+
* Specifies the units of num.
|
|
852
|
+
* Use arbitrary string (for example, "requests") as a custom count unit.
|
|
853
|
+
* If no unit is specified, consumer may apply heuristic to deduce the unit.
|
|
854
|
+
* Consumers may also interpret units like "bytes" and "kilobytes" as memory
|
|
855
|
+
* units and units like "seconds" and "nanoseconds" as time units,
|
|
856
|
+
* and apply appropriate unit conversions to these.
|
|
857
|
+
*/
|
|
858
|
+
ddog_CharSlice num_unit;
|
|
859
|
+
} ddog_prof_Label2;
|
|
860
|
+
|
|
861
|
+
typedef struct ddog_prof_Slice_Label2 {
|
|
862
|
+
/**
|
|
863
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
|
864
|
+
* allowed but not recommended for the pointer to be null when the len is
|
|
865
|
+
* zero.
|
|
866
|
+
*/
|
|
867
|
+
const struct ddog_prof_Label2 *ptr;
|
|
868
|
+
/**
|
|
869
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
870
|
+
* than or equal to [isize::MAX].
|
|
871
|
+
*/
|
|
872
|
+
uintptr_t len;
|
|
873
|
+
} ddog_prof_Slice_Label2;
|
|
874
|
+
|
|
875
|
+
typedef struct ddog_prof_Sample2 {
|
|
876
|
+
/**
|
|
877
|
+
* The leaf is at locations[0].
|
|
878
|
+
*/
|
|
879
|
+
struct ddog_prof_Slice_Location2 locations;
|
|
880
|
+
/**
|
|
881
|
+
* The type and unit of each value is defined by the corresponding
|
|
882
|
+
* entry in Profile.sample_type. All samples must have the same
|
|
883
|
+
* number of values, the same as the length of Profile.sample_type.
|
|
884
|
+
* When aggregating multiple samples into a single sample, the
|
|
885
|
+
* result has a list of values that is the element-wise sum of the
|
|
886
|
+
* lists of the originals.
|
|
887
|
+
*/
|
|
888
|
+
struct ddog_Slice_I64 values;
|
|
889
|
+
/**
|
|
890
|
+
* label includes additional context for this sample. It can include
|
|
891
|
+
* things like a thread id, allocation size, etc
|
|
892
|
+
*/
|
|
893
|
+
struct ddog_prof_Slice_Label2 labels;
|
|
894
|
+
} ddog_prof_Sample2;
|
|
895
|
+
|
|
688
896
|
typedef struct ddog_prof_Slice_Usize {
|
|
689
897
|
/**
|
|
690
898
|
* Should be non-null and suitably aligned for the underlying type. It is
|
|
@@ -937,6 +1145,24 @@ typedef struct ddog_prof_StringId_Result {
|
|
|
937
1145
|
};
|
|
938
1146
|
} ddog_prof_StringId_Result;
|
|
939
1147
|
|
|
1148
|
+
/**
|
|
1149
|
+
* A generic result type for when an operation may fail,
|
|
1150
|
+
* but there's nothing to return in the case of success.
|
|
1151
|
+
*/
|
|
1152
|
+
typedef enum ddog_VoidResult_Tag {
|
|
1153
|
+
DDOG_VOID_RESULT_OK,
|
|
1154
|
+
DDOG_VOID_RESULT_ERR,
|
|
1155
|
+
} ddog_VoidResult_Tag;
|
|
1156
|
+
|
|
1157
|
+
typedef struct ddog_VoidResult {
|
|
1158
|
+
ddog_VoidResult_Tag tag;
|
|
1159
|
+
union {
|
|
1160
|
+
struct {
|
|
1161
|
+
struct ddog_Error err;
|
|
1162
|
+
};
|
|
1163
|
+
};
|
|
1164
|
+
} ddog_VoidResult;
|
|
1165
|
+
|
|
940
1166
|
typedef struct ddog_prof_Slice_ManagedStringId {
|
|
941
1167
|
/**
|
|
942
1168
|
* Should be non-null and suitably aligned for the underlying type. It is
|
|
@@ -1142,6 +1368,7 @@ typedef enum ddog_ConfigurationOrigin {
|
|
|
1142
1368
|
DDOG_CONFIGURATION_ORIGIN_DEFAULT,
|
|
1143
1369
|
DDOG_CONFIGURATION_ORIGIN_LOCAL_STABLE_CONFIG,
|
|
1144
1370
|
DDOG_CONFIGURATION_ORIGIN_FLEET_STABLE_CONFIG,
|
|
1371
|
+
DDOG_CONFIGURATION_ORIGIN_CALCULATED,
|
|
1145
1372
|
} ddog_ConfigurationOrigin;
|
|
1146
1373
|
|
|
1147
1374
|
typedef enum ddog_LogLevel {
|
|
@@ -1205,6 +1432,20 @@ typedef struct ddog_TelemetryWorkerBuilder ddog_TelemetryWorkerBuilder;
|
|
|
1205
1432
|
*/
|
|
1206
1433
|
typedef struct ddog_TelemetryWorkerHandle ddog_TelemetryWorkerHandle;
|
|
1207
1434
|
|
|
1435
|
+
typedef enum ddog_Option_U64_Tag {
|
|
1436
|
+
DDOG_OPTION_U64_SOME_U64,
|
|
1437
|
+
DDOG_OPTION_U64_NONE_U64,
|
|
1438
|
+
} ddog_Option_U64_Tag;
|
|
1439
|
+
|
|
1440
|
+
typedef struct ddog_Option_U64 {
|
|
1441
|
+
ddog_Option_U64_Tag tag;
|
|
1442
|
+
union {
|
|
1443
|
+
struct {
|
|
1444
|
+
uint64_t some;
|
|
1445
|
+
};
|
|
1446
|
+
};
|
|
1447
|
+
} ddog_Option_U64;
|
|
1448
|
+
|
|
1208
1449
|
typedef enum ddog_Option_Bool_Tag {
|
|
1209
1450
|
DDOG_OPTION_BOOL_SOME_BOOL,
|
|
1210
1451
|
DDOG_OPTION_BOOL_NONE_BOOL,
|
|
@@ -2096,13 +2337,17 @@ typedef struct ddog_crasht_CrashInfoBuilder_NewResult {
|
|
|
2096
2337
|
};
|
|
2097
2338
|
} ddog_crasht_CrashInfoBuilder_NewResult;
|
|
2098
2339
|
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2340
|
+
/**
|
|
2341
|
+
* A generic result type for when an operation may fail,
|
|
2342
|
+
* or may return <T> in case of success.
|
|
2343
|
+
*/
|
|
2344
|
+
typedef enum ddog_crasht_Result_HandleCrashInfo_Tag {
|
|
2345
|
+
DDOG_CRASHT_RESULT_HANDLE_CRASH_INFO_OK_HANDLE_CRASH_INFO,
|
|
2346
|
+
DDOG_CRASHT_RESULT_HANDLE_CRASH_INFO_ERR_HANDLE_CRASH_INFO,
|
|
2347
|
+
} ddog_crasht_Result_HandleCrashInfo_Tag;
|
|
2103
2348
|
|
|
2104
|
-
typedef struct
|
|
2105
|
-
|
|
2349
|
+
typedef struct ddog_crasht_Result_HandleCrashInfo {
|
|
2350
|
+
ddog_crasht_Result_HandleCrashInfo_Tag tag;
|
|
2106
2351
|
union {
|
|
2107
2352
|
struct {
|
|
2108
2353
|
struct ddog_crasht_Handle_CrashInfo ok;
|
|
@@ -2111,7 +2356,9 @@ typedef struct ddog_crasht_CrashInfo_NewResult {
|
|
|
2111
2356
|
struct ddog_Error err;
|
|
2112
2357
|
};
|
|
2113
2358
|
};
|
|
2114
|
-
}
|
|
2359
|
+
} ddog_crasht_Result_HandleCrashInfo;
|
|
2360
|
+
|
|
2361
|
+
typedef struct ddog_crasht_Result_HandleCrashInfo ddog_crasht_CrashInfo_NewResult;
|
|
2115
2362
|
|
|
2116
2363
|
typedef struct ddog_crasht_OsInfo {
|
|
2117
2364
|
ddog_CharSlice architecture;
|
|
@@ -451,7 +451,7 @@ void ddog_crasht_CrashInfoBuilder_drop(struct ddog_crasht_Handle_CrashInfoBuilde
|
|
|
451
451
|
* which has not previously been dropped.
|
|
452
452
|
*/
|
|
453
453
|
DDOG_CHECK_RETURN
|
|
454
|
-
|
|
454
|
+
ddog_crasht_CrashInfo_NewResult ddog_crasht_CrashInfoBuilder_build(struct ddog_crasht_Handle_CrashInfoBuilder *builder);
|
|
455
455
|
|
|
456
456
|
/**
|
|
457
457
|
* # Safety
|