libdatadog 33.0.0.1.0 → 40.0.0.2.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/libdatadog.gemspec +43 -0
- data/rust-toolchain.toml +6 -0
- data/tasks/build.rake +36 -2
- data/tasks/gem.rake +245 -0
- data/tasks/release.rake +28 -0
- data/tasks/spec.rake +11 -0
- data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux}/LICENSE-3rdparty.csv +7 -1
- data/vendor/libdatadog-40.0.0/aarch64-linux/NOTICE +12 -0
- data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux}/include/datadog/common.h +321 -81
- data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/aarch64-linux}/include/datadog/crashtracker.h +19 -0
- data/vendor/libdatadog-40.0.0/aarch64-linux/include/datadog/data-pipeline.h +612 -0
- data/vendor/libdatadog-40.0.0/aarch64-linux/include/datadog/otel-thread-ctx.h +86 -0
- data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux}/include/datadog/profiling.h +37 -0
- data/vendor/libdatadog-40.0.0/aarch64-linux/include/datadog/shared-runtime.h +91 -0
- data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux}/include/datadog/telemetry.h +37 -19
- data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux-musl}/LICENSE-3rdparty.csv +7 -1
- data/vendor/libdatadog-40.0.0/aarch64-linux-musl/NOTICE +12 -0
- data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/common.h +321 -81
- data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/crashtracker.h +19 -0
- data/vendor/libdatadog-40.0.0/aarch64-linux-musl/include/datadog/data-pipeline.h +612 -0
- data/vendor/libdatadog-40.0.0/aarch64-linux-musl/include/datadog/otel-thread-ctx.h +86 -0
- data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/profiling.h +37 -0
- data/vendor/libdatadog-40.0.0/aarch64-linux-musl/include/datadog/shared-runtime.h +91 -0
- data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/telemetry.h +37 -19
- data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/LICENSE-3rdparty.csv +7 -1
- data/vendor/libdatadog-40.0.0/arm64-darwin/NOTICE +12 -0
- data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/arm64-darwin}/include/datadog/common.h +321 -81
- data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/arm64-darwin}/include/datadog/crashtracker.h +19 -0
- data/vendor/libdatadog-40.0.0/arm64-darwin/include/datadog/data-pipeline.h +612 -0
- data/vendor/libdatadog-40.0.0/arm64-darwin/include/datadog/otel-thread-ctx.h +86 -0
- data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/arm64-darwin}/include/datadog/profiling.h +37 -0
- data/vendor/libdatadog-40.0.0/arm64-darwin/include/datadog/shared-runtime.h +91 -0
- data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/arm64-darwin}/include/datadog/telemetry.h +37 -19
- data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/lib/libdatadog_profiling.dylib +0 -0
- data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/libdatadog-40.0.0/x86_64-linux/LICENSE-3rdparty.csv +554 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux/NOTICE +12 -0
- data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/common.h +3115 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/crashtracker.h +1026 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/data-pipeline.h +612 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/otel-thread-ctx.h +86 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/profiling.h +1167 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/shared-runtime.h +91 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/telemetry.h +325 -0
- data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/lib/libdatadog_profiling.so +0 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +15 -0
- data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/LICENSE-3rdparty.csv +7 -1
- data/vendor/libdatadog-40.0.0/x86_64-linux-musl/NOTICE +12 -0
- data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/common.h +321 -81
- data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/crashtracker.h +19 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/data-pipeline.h +612 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/otel-thread-ctx.h +86 -0
- data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/profiling.h +37 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/shared-runtime.h +91 -0
- data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/telemetry.h +37 -19
- data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- metadata +97 -82
- data/vendor/libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -4
- data/vendor/libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h +0 -216
- data/vendor/libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -4
- data/vendor/libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/data-pipeline.h +0 -216
- data/vendor/libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin/NOTICE +0 -4
- data/vendor/libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/data-pipeline.h +0 -216
- data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.csv +0 -548
- data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -4
- data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h +0 -2875
- data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/crashtracker.h +0 -1007
- data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/data-pipeline.h +0 -216
- data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h +0 -1130
- data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h +0 -307
- data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -15
- data/vendor/libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -4
- data/vendor/libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/data-pipeline.h +0 -216
- /data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/LICENSE +0 -0
- /data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/LICENSE +0 -0
- /data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/LICENSE +0 -0
- /data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/LICENSE +0 -0
- /data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/LICENSE +0 -0
- /data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/log.h +0 -0
|
@@ -279,6 +279,14 @@ typedef struct ddog_prof_Function2 *ddog_prof_FunctionId2;
|
|
|
279
279
|
* - **dd-trace-dotnet**: Sample type definitions for allocations, locks, CPU, walltime,
|
|
280
280
|
* exceptions, live objects, HTTP requests
|
|
281
281
|
* - **pprof-nodejs**: `profile-serializer.ts` (value type functions)
|
|
282
|
+
*
|
|
283
|
+
* # Adding new types
|
|
284
|
+
*
|
|
285
|
+
* To prototype a new profile type without a libdatadog release, use one of
|
|
286
|
+
* the `Custom1` through `Custom5` slots and configure its concrete `(type,
|
|
287
|
+
* unit)` string pair on the profile before serialization. Once the type is
|
|
288
|
+
* stable and agreed upon across profiler teams, add a dedicated variant here
|
|
289
|
+
* so callers can use the type-safe path.
|
|
282
290
|
*/
|
|
283
291
|
typedef enum ddog_prof_SampleType {
|
|
284
292
|
DDOG_PROF_SAMPLE_TYPE_ALLOC_SAMPLES,
|
|
@@ -351,9 +359,31 @@ typedef enum ddog_prof_SampleType {
|
|
|
351
359
|
* Legacy: Use `WallTime` instead for consistency with naming scheme
|
|
352
360
|
*/
|
|
353
361
|
DDOG_PROF_SAMPLE_TYPE_WALL_LEGACY,
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
362
|
+
/**
|
|
363
|
+
* Custom profile type slot. Configure its concrete `(type, unit)` on the profile before
|
|
364
|
+
* serialization.
|
|
365
|
+
*/
|
|
366
|
+
DDOG_PROF_SAMPLE_TYPE_CUSTOM1,
|
|
367
|
+
/**
|
|
368
|
+
* Custom profile type slot. Configure its concrete `(type, unit)` on the profile before
|
|
369
|
+
* serialization.
|
|
370
|
+
*/
|
|
371
|
+
DDOG_PROF_SAMPLE_TYPE_CUSTOM2,
|
|
372
|
+
/**
|
|
373
|
+
* Custom profile type slot. Configure its concrete `(type, unit)` on the profile before
|
|
374
|
+
* serialization.
|
|
375
|
+
*/
|
|
376
|
+
DDOG_PROF_SAMPLE_TYPE_CUSTOM3,
|
|
377
|
+
/**
|
|
378
|
+
* Custom profile type slot. Configure its concrete `(type, unit)` on the profile before
|
|
379
|
+
* serialization.
|
|
380
|
+
*/
|
|
381
|
+
DDOG_PROF_SAMPLE_TYPE_CUSTOM4,
|
|
382
|
+
/**
|
|
383
|
+
* Custom profile type slot. Configure its concrete `(type, unit)` on the profile before
|
|
384
|
+
* serialization.
|
|
385
|
+
*/
|
|
386
|
+
DDOG_PROF_SAMPLE_TYPE_CUSTOM5,
|
|
357
387
|
} ddog_prof_SampleType;
|
|
358
388
|
|
|
359
389
|
typedef enum ddog_prof_Utf8Option {
|
|
@@ -375,8 +405,6 @@ typedef enum ddog_prof_Utf8Option {
|
|
|
375
405
|
|
|
376
406
|
typedef struct ddog_OpaqueCancellationToken ddog_OpaqueCancellationToken;
|
|
377
407
|
|
|
378
|
-
typedef struct ddog_prof_EncodedProfile ddog_prof_EncodedProfile;
|
|
379
|
-
|
|
380
408
|
typedef struct ddog_prof_ExporterManager ddog_prof_ExporterManager;
|
|
381
409
|
|
|
382
410
|
typedef struct ddog_prof_Exporter ddog_prof_Exporter;
|
|
@@ -891,23 +919,6 @@ typedef struct ddog_prof_StringHeader {
|
|
|
891
919
|
uint8_t _0;
|
|
892
920
|
} ddog_prof_StringHeader;
|
|
893
921
|
|
|
894
|
-
/**
|
|
895
|
-
* An FFI-safe string ID where a null StringId2 maps to `StringRef::EMPTY`.
|
|
896
|
-
* The representation is ensured to be a pointer for ABI stability, but
|
|
897
|
-
* callers should not generally dereference this pointer. When using the id,
|
|
898
|
-
* the caller needs to be sure that the `ProfilesDictionary` or string set it
|
|
899
|
-
* refers to is the same one that the operations are performed on; it is not
|
|
900
|
-
* generally guaranteed that ids from one dictionary/set can be used in
|
|
901
|
-
* another, even if it happens to work by implementation detail. There is an
|
|
902
|
-
* exception is for well-known strings, which are considered present in every
|
|
903
|
-
* string set.
|
|
904
|
-
*
|
|
905
|
-
* Equality and hashing are defined by pointer identity, so they are only
|
|
906
|
-
* meaningful when comparing ids that originate from the same
|
|
907
|
-
* `ProfilesDictionary`.
|
|
908
|
-
*/
|
|
909
|
-
typedef struct ddog_prof_StringHeader *ddog_prof_StringId2;
|
|
910
|
-
|
|
911
922
|
/**
|
|
912
923
|
* An FFI-safe version of the Mapping which allows null. Be sure to maintain
|
|
913
924
|
* layout-compatibility with it, except that StringId2 may be null.
|
|
@@ -920,21 +931,6 @@ typedef struct ddog_prof_Mapping2 {
|
|
|
920
931
|
ddog_prof_StringId2 build_id;
|
|
921
932
|
} ddog_prof_Mapping2;
|
|
922
933
|
|
|
923
|
-
/**
|
|
924
|
-
* An FFI-safe representation of a "handle" to a mapping which has been
|
|
925
|
-
* stored in the `ProfilesDictionary`. The representation is ensured to be a
|
|
926
|
-
* pointer for ABI stability, but callers should not generally dereference
|
|
927
|
-
* this pointer. When using the id, the caller needs to be sure that the
|
|
928
|
-
* `ProfilesDictionary` it refers to is the same one that the operations are
|
|
929
|
-
* performed on; it is not generally guaranteed that ids from one dictionary
|
|
930
|
-
* can be used in another dictionary, even if it happens to work by
|
|
931
|
-
* implementation detail.
|
|
932
|
-
*
|
|
933
|
-
* `Eq`/`Hash` and other comparisons are based on this handle value, and are
|
|
934
|
-
* only intended for ids produced by the same `ProfilesDictionary`.
|
|
935
|
-
*/
|
|
936
|
-
typedef struct ddog_prof_Mapping2 *ddog_prof_MappingId2;
|
|
937
|
-
|
|
938
934
|
/**
|
|
939
935
|
* An FFI-safe version of the Function which allows null. Be sure to maintain
|
|
940
936
|
* layout-compatibility with it, except that StringId2 may be null.
|
|
@@ -949,21 +945,6 @@ typedef struct ddog_prof_Function2 {
|
|
|
949
945
|
ddog_prof_StringId2 file_name;
|
|
950
946
|
} ddog_prof_Function2;
|
|
951
947
|
|
|
952
|
-
/**
|
|
953
|
-
* An FFI-safe representation of a "handle" to a function which has been
|
|
954
|
-
* stored in the `ProfilesDictionary`. The representation is ensured to be a
|
|
955
|
-
* pointer for ABI stability, but callers should not generally dereference
|
|
956
|
-
* this pointer. When using the id, the caller needs to be sure that the
|
|
957
|
-
* `ProfilesDictionary` it refers to is the same one that the operations are
|
|
958
|
-
* performed on; it is not generally guaranteed that ids from one dictionary
|
|
959
|
-
* can be used in another dictionary, even if it happens to work by
|
|
960
|
-
* implementation detail.
|
|
961
|
-
*
|
|
962
|
-
* `Eq`/`Hash` and other comparisons are based on this handle value, and are
|
|
963
|
-
* only intended for ids produced by the same `ProfilesDictionary`.
|
|
964
|
-
*/
|
|
965
|
-
typedef struct ddog_prof_Function2 *ddog_prof_FunctionId2;
|
|
966
|
-
|
|
967
948
|
/**
|
|
968
949
|
* A location keyed by `MappingId2`/`FunctionId2` handles.
|
|
969
950
|
*
|
|
@@ -1163,8 +1144,6 @@ typedef struct OpaqueStringId {
|
|
|
1163
1144
|
} OpaqueStringId;
|
|
1164
1145
|
#define OpaqueStringId_ZERO (OpaqueStringId){ }
|
|
1165
1146
|
|
|
1166
|
-
typedef struct OpaqueStringId OpaqueStringId;
|
|
1167
|
-
|
|
1168
1147
|
typedef struct ddog_prof_StringId {
|
|
1169
1148
|
struct ddog_prof_Generation generation;
|
|
1170
1149
|
OpaqueStringId id;
|
|
@@ -1513,8 +1492,6 @@ typedef struct ddog_StringWrapperResult {
|
|
|
1513
1492
|
};
|
|
1514
1493
|
} ddog_StringWrapperResult;
|
|
1515
1494
|
|
|
1516
|
-
typedef struct ddog_prof_StringId ddog_prof_StringId;
|
|
1517
|
-
|
|
1518
1495
|
typedef enum ddog_ConfigurationOrigin {
|
|
1519
1496
|
DDOG_CONFIGURATION_ORIGIN_ENV_VAR,
|
|
1520
1497
|
DDOG_CONFIGURATION_ORIGIN_CODE,
|
|
@@ -1524,6 +1501,9 @@ typedef enum ddog_ConfigurationOrigin {
|
|
|
1524
1501
|
DDOG_CONFIGURATION_ORIGIN_LOCAL_STABLE_CONFIG,
|
|
1525
1502
|
DDOG_CONFIGURATION_ORIGIN_FLEET_STABLE_CONFIG,
|
|
1526
1503
|
DDOG_CONFIGURATION_ORIGIN_CALCULATED,
|
|
1504
|
+
DDOG_CONFIGURATION_ORIGIN_OTEL_ENV_VAR,
|
|
1505
|
+
DDOG_CONFIGURATION_ORIGIN_INI,
|
|
1506
|
+
DDOG_CONFIGURATION_ORIGIN_UNKNOWN,
|
|
1527
1507
|
} ddog_ConfigurationOrigin;
|
|
1528
1508
|
|
|
1529
1509
|
typedef enum ddog_LogLevel {
|
|
@@ -1544,12 +1524,17 @@ typedef enum ddog_MetricNamespace {
|
|
|
1544
1524
|
DDOG_METRIC_NAMESPACE_TELEMETRY,
|
|
1545
1525
|
DDOG_METRIC_NAMESPACE_APM,
|
|
1546
1526
|
DDOG_METRIC_NAMESPACE_SIDECAR,
|
|
1527
|
+
DDOG_METRIC_NAMESPACE_CIVISIBILITY,
|
|
1528
|
+
DDOG_METRIC_NAMESPACE_MLOBS,
|
|
1529
|
+
DDOG_METRIC_NAMESPACE_DDTRACEAPI,
|
|
1530
|
+
DDOG_METRIC_NAMESPACE_AI_GUARD,
|
|
1547
1531
|
} ddog_MetricNamespace;
|
|
1548
1532
|
|
|
1549
1533
|
typedef enum ddog_MetricType {
|
|
1550
1534
|
DDOG_METRIC_TYPE_GAUGE,
|
|
1551
1535
|
DDOG_METRIC_TYPE_COUNT,
|
|
1552
1536
|
DDOG_METRIC_TYPE_DISTRIBUTION,
|
|
1537
|
+
DDOG_METRIC_TYPE_RATE,
|
|
1553
1538
|
} ddog_MetricType;
|
|
1554
1539
|
|
|
1555
1540
|
typedef enum ddog_TelemetryWorkerBuilderBoolProperty {
|
|
@@ -1586,9 +1571,10 @@ typedef struct ddog_TelemetryWorkerBuilder ddog_TelemetryWorkerBuilder;
|
|
|
1586
1571
|
* The worker won't send data to the agent until you call `TelemetryWorkerHandle::send_start`
|
|
1587
1572
|
*
|
|
1588
1573
|
* To stop the worker, call `TelemetryWorkerHandle::send_stop` which trigger flush asynchronously
|
|
1589
|
-
* then `TelemetryWorkerHandle::wait_for_shutdown`
|
|
1574
|
+
* then `TelemetryWorkerHandle::wait_for_shutdown` (native only — wasm callers rely on the
|
|
1575
|
+
* SharedRuntime worker JoinHandle instead).
|
|
1590
1576
|
*/
|
|
1591
|
-
typedef struct
|
|
1577
|
+
typedef struct ddog_TelemetryWorkerHandle_NativeCapabilities ddog_TelemetryWorkerHandle_NativeCapabilities;
|
|
1592
1578
|
|
|
1593
1579
|
typedef enum ddog_Option_U64_Tag {
|
|
1594
1580
|
DDOG_OPTION_U64_SOME_U64,
|
|
@@ -1604,6 +1590,12 @@ typedef struct ddog_Option_U64 {
|
|
|
1604
1590
|
};
|
|
1605
1591
|
} ddog_Option_U64;
|
|
1606
1592
|
|
|
1593
|
+
/**
|
|
1594
|
+
* FFI-facing alias: the C ABI surface is native-only, so the worker handle is
|
|
1595
|
+
* always pinned to [`NativeCapabilities`].
|
|
1596
|
+
*/
|
|
1597
|
+
typedef struct ddog_TelemetryWorkerHandle_NativeCapabilities ddog_TelemetryWorkerHandle;
|
|
1598
|
+
|
|
1607
1599
|
typedef enum ddog_Option_Bool_Tag {
|
|
1608
1600
|
DDOG_OPTION_BOOL_SOME_BOOL,
|
|
1609
1601
|
DDOG_OPTION_BOOL_NONE_BOOL,
|
|
@@ -1624,7 +1616,38 @@ typedef struct ddog_ContextKey {
|
|
|
1624
1616
|
} ddog_ContextKey;
|
|
1625
1617
|
|
|
1626
1618
|
typedef struct ddog_TraceExporter ddog_TraceExporter;
|
|
1619
|
+
typedef struct ddog_TracerSpan ddog_TracerSpan;
|
|
1620
|
+
typedef struct ddog_TracerSpanEvent ddog_TracerSpanEvent;
|
|
1621
|
+
typedef struct ddog_TracerTraceChunks ddog_TracerTraceChunks;
|
|
1622
|
+
typedef struct ddog_TraceExporterCancelToken ddog_TraceExporterCancelToken;
|
|
1623
|
+
typedef uint8_t ddog_TracerValueKind;
|
|
1624
|
+
|
|
1625
|
+
|
|
1626
|
+
#define DDOG_TRACER_VALUE_NIL 0
|
|
1627
|
+
|
|
1628
|
+
#define DDOG_TRACER_VALUE_BOOL 1
|
|
1629
|
+
|
|
1630
|
+
#define DDOG_TRACER_VALUE_I64 2
|
|
1631
|
+
|
|
1632
|
+
#define DDOG_TRACER_VALUE_U64 3
|
|
1633
|
+
|
|
1634
|
+
#define DDOG_TRACER_VALUE_F64 4
|
|
1635
|
+
|
|
1636
|
+
#define DDOG_TRACER_VALUE_STRING 5
|
|
1637
|
+
|
|
1638
|
+
#define DDOG_TRACER_VALUE_BINARY 6
|
|
1639
|
+
|
|
1640
|
+
#define DDOG_TRACER_VALUE_ARRAY 7
|
|
1641
|
+
|
|
1642
|
+
#define DDOG_TRACER_VALUE_MAP 8
|
|
1643
|
+
|
|
1644
|
+
#define ddog_CollapsedFieldSet_RESOURCE_NAME (1 << 0)
|
|
1645
|
+
|
|
1646
|
+
#define ddog_CollapsedFieldSet_HTTP_ENDPOINT (1 << 1)
|
|
1647
|
+
|
|
1648
|
+
#define ddog_CollapsedFieldSet_PEER_TAGS (1 << 2)
|
|
1627
1649
|
|
|
1650
|
+
#define ddog_CollapsedFieldSet_ADDITIONAL_TAGS (1 << 3)
|
|
1628
1651
|
|
|
1629
1652
|
/**
|
|
1630
1653
|
* Represent error codes that `Error` struct can hold
|
|
@@ -1667,17 +1690,13 @@ typedef enum ddog_TraceExporterErrorCode {
|
|
|
1667
1690
|
typedef struct ddog_TraceExporterResponse ddog_TraceExporterResponse;
|
|
1668
1691
|
|
|
1669
1692
|
/**
|
|
1670
|
-
*
|
|
1693
|
+
* Owns a tokio runtime and manages [`PausableWorker`]s on it.
|
|
1671
1694
|
*
|
|
1672
|
-
*
|
|
1673
|
-
*
|
|
1674
|
-
*
|
|
1675
|
-
*
|
|
1676
|
-
* # Mutex lock order
|
|
1677
|
-
* When locking both [Self::runtime] and [Self::workers], the mutex must be locked in the order of
|
|
1678
|
-
* the fields in the struct. When possible avoid holding both locks simultaneously.
|
|
1695
|
+
* Supports the full fork protocol ([`before_fork`](Self::before_fork) /
|
|
1696
|
+
* [`after_fork_parent`](Self::after_fork_parent) /
|
|
1697
|
+
* [`after_fork_child`](Self::after_fork_child)) and synchronous [`shutdown`](Self::shutdown).
|
|
1679
1698
|
*/
|
|
1680
|
-
typedef struct
|
|
1699
|
+
typedef struct ddog_ForkSafeRuntime ddog_ForkSafeRuntime;
|
|
1681
1700
|
|
|
1682
1701
|
/**
|
|
1683
1702
|
* The TraceExporterConfig object will hold the configuration properties for the TraceExporter.
|
|
@@ -1686,6 +1705,11 @@ typedef struct ddog_SharedRuntime ddog_SharedRuntime;
|
|
|
1686
1705
|
*/
|
|
1687
1706
|
typedef struct ddog_TraceExporterConfig ddog_TraceExporterConfig;
|
|
1688
1707
|
|
|
1708
|
+
/**
|
|
1709
|
+
* Opaque owned MessagePack blob produced from structured-value tokens.
|
|
1710
|
+
*/
|
|
1711
|
+
typedef struct ddog_TracerEncodedValue ddog_TracerEncodedValue;
|
|
1712
|
+
|
|
1689
1713
|
/**
|
|
1690
1714
|
* Structure that contains error information that `TraceExporter` API can return.
|
|
1691
1715
|
*/
|
|
@@ -1694,6 +1718,39 @@ typedef struct ddog_TraceExporterError {
|
|
|
1694
1718
|
char *msg;
|
|
1695
1719
|
} ddog_TraceExporterError;
|
|
1696
1720
|
|
|
1721
|
+
/**
|
|
1722
|
+
* One value in a flat preorder representation of a structured value.
|
|
1723
|
+
*
|
|
1724
|
+
* Scalar tokens use the corresponding scalar field. String and binary tokens
|
|
1725
|
+
* use `bytes`. Array and map tokens use `child_count`; a map is followed by
|
|
1726
|
+
* two values per entry (key, then value). All other fields must be ignored.
|
|
1727
|
+
* `kind` remains a raw integer so malformed C input can be rejected without
|
|
1728
|
+
* constructing an invalid Rust enum discriminant.
|
|
1729
|
+
*/
|
|
1730
|
+
typedef struct ddog_TracerValueToken {
|
|
1731
|
+
uint8_t kind;
|
|
1732
|
+
uint8_t bool_value;
|
|
1733
|
+
uint32_t child_count;
|
|
1734
|
+
int64_t i64_value;
|
|
1735
|
+
uint64_t u64_value;
|
|
1736
|
+
double f64_value;
|
|
1737
|
+
ddog_ByteSlice bytes;
|
|
1738
|
+
} ddog_TracerValueToken;
|
|
1739
|
+
|
|
1740
|
+
typedef struct ddog_Slice_TracerValueToken {
|
|
1741
|
+
/**
|
|
1742
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
|
1743
|
+
* allowed but not recommended for the pointer to be null when the len is
|
|
1744
|
+
* zero.
|
|
1745
|
+
*/
|
|
1746
|
+
const struct ddog_TracerValueToken *ptr;
|
|
1747
|
+
/**
|
|
1748
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
1749
|
+
* than or equal to [isize::MAX].
|
|
1750
|
+
*/
|
|
1751
|
+
uintptr_t len;
|
|
1752
|
+
} ddog_Slice_TracerValueToken;
|
|
1753
|
+
|
|
1697
1754
|
/**
|
|
1698
1755
|
* FFI compatible configuration for the TelemetryClient.
|
|
1699
1756
|
*/
|
|
@@ -1730,6 +1787,142 @@ typedef struct ddog_TelemetryClientConfig {
|
|
|
1730
1787
|
ddog_CharSlice parent_session_id;
|
|
1731
1788
|
} ddog_TelemetryClientConfig;
|
|
1732
1789
|
|
|
1790
|
+
/**
|
|
1791
|
+
* Config to override the default stats cardinality limit values
|
|
1792
|
+
*/
|
|
1793
|
+
typedef struct ddog_CardinalityLimitConfig {
|
|
1794
|
+
/**
|
|
1795
|
+
* The whole-key cardinality limit (defaults to 7000)
|
|
1796
|
+
*/
|
|
1797
|
+
uintptr_t whole_key_limit;
|
|
1798
|
+
/**
|
|
1799
|
+
* The per-field cardinality limit for the Resource field (defaults to 1024)
|
|
1800
|
+
*/
|
|
1801
|
+
uintptr_t resource_limit;
|
|
1802
|
+
/**
|
|
1803
|
+
* The per-field cardinality limit for the HttpEndpoint field (defaults to 512)
|
|
1804
|
+
*/
|
|
1805
|
+
uintptr_t http_endpoint_limit;
|
|
1806
|
+
/**
|
|
1807
|
+
* The per-field cardinality limit for the PeerTags field (defaults to 512)
|
|
1808
|
+
*/
|
|
1809
|
+
uintptr_t peer_tags_limit;
|
|
1810
|
+
/**
|
|
1811
|
+
* The per-field cardinality limit for the AdditionalTags field (defaults to 100)
|
|
1812
|
+
*/
|
|
1813
|
+
uintptr_t additional_tags_limit;
|
|
1814
|
+
} ddog_CardinalityLimitConfig;
|
|
1815
|
+
|
|
1816
|
+
/**
|
|
1817
|
+
* FFI-safe bundle of scalar fields for creating a [`TracerSpan`].
|
|
1818
|
+
*
|
|
1819
|
+
* Passed by reference to [`ddog_tracer_span_new`] so that adding or
|
|
1820
|
+
* changing fields does not break the function signature.
|
|
1821
|
+
*/
|
|
1822
|
+
typedef struct ddog_TracerSpanFields {
|
|
1823
|
+
ddog_CharSlice service;
|
|
1824
|
+
ddog_CharSlice name;
|
|
1825
|
+
ddog_CharSlice resource;
|
|
1826
|
+
ddog_CharSlice span_type;
|
|
1827
|
+
uint64_t trace_id_low;
|
|
1828
|
+
uint64_t trace_id_high;
|
|
1829
|
+
uint64_t span_id;
|
|
1830
|
+
uint64_t parent_id;
|
|
1831
|
+
int64_t start;
|
|
1832
|
+
int64_t duration;
|
|
1833
|
+
int32_t error;
|
|
1834
|
+
} ddog_TracerSpanFields;
|
|
1835
|
+
|
|
1836
|
+
/**
|
|
1837
|
+
* A string attribute belonging to a [`TracerSpanLink`].
|
|
1838
|
+
*/
|
|
1839
|
+
typedef struct ddog_TracerSpanLinkAttribute {
|
|
1840
|
+
ddog_CharSlice key;
|
|
1841
|
+
ddog_CharSlice value;
|
|
1842
|
+
} ddog_TracerSpanLinkAttribute;
|
|
1843
|
+
|
|
1844
|
+
typedef struct ddog_Slice_TracerSpanLinkAttribute {
|
|
1845
|
+
/**
|
|
1846
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
|
1847
|
+
* allowed but not recommended for the pointer to be null when the len is
|
|
1848
|
+
* zero.
|
|
1849
|
+
*/
|
|
1850
|
+
const struct ddog_TracerSpanLinkAttribute *ptr;
|
|
1851
|
+
/**
|
|
1852
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
1853
|
+
* than or equal to [isize::MAX].
|
|
1854
|
+
*/
|
|
1855
|
+
uintptr_t len;
|
|
1856
|
+
} ddog_Slice_TracerSpanLinkAttribute;
|
|
1857
|
+
|
|
1858
|
+
/**
|
|
1859
|
+
* FFI-safe representation of one complete span link.
|
|
1860
|
+
*/
|
|
1861
|
+
typedef struct ddog_TracerSpanLink {
|
|
1862
|
+
uint64_t trace_id_low;
|
|
1863
|
+
uint64_t trace_id_high;
|
|
1864
|
+
uint64_t span_id;
|
|
1865
|
+
struct ddog_Slice_TracerSpanLinkAttribute attributes;
|
|
1866
|
+
ddog_CharSlice tracestate;
|
|
1867
|
+
uint32_t flags;
|
|
1868
|
+
} ddog_TracerSpanLink;
|
|
1869
|
+
|
|
1870
|
+
typedef struct ddog_Slice_TracerSpanLink {
|
|
1871
|
+
/**
|
|
1872
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
|
1873
|
+
* allowed but not recommended for the pointer to be null when the len is
|
|
1874
|
+
* zero.
|
|
1875
|
+
*/
|
|
1876
|
+
const struct ddog_TracerSpanLink *ptr;
|
|
1877
|
+
/**
|
|
1878
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
1879
|
+
* than or equal to [isize::MAX].
|
|
1880
|
+
*/
|
|
1881
|
+
uintptr_t len;
|
|
1882
|
+
} ddog_Slice_TracerSpanLink;
|
|
1883
|
+
|
|
1884
|
+
typedef struct ddog_Slice_CharSlice {
|
|
1885
|
+
/**
|
|
1886
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
|
1887
|
+
* allowed but not recommended for the pointer to be null when the len is
|
|
1888
|
+
* zero.
|
|
1889
|
+
*/
|
|
1890
|
+
const ddog_CharSlice *ptr;
|
|
1891
|
+
/**
|
|
1892
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
1893
|
+
* than or equal to [isize::MAX].
|
|
1894
|
+
*/
|
|
1895
|
+
uintptr_t len;
|
|
1896
|
+
} ddog_Slice_CharSlice;
|
|
1897
|
+
|
|
1898
|
+
typedef struct ddog_Slice_Bool {
|
|
1899
|
+
/**
|
|
1900
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
|
1901
|
+
* allowed but not recommended for the pointer to be null when the len is
|
|
1902
|
+
* zero.
|
|
1903
|
+
*/
|
|
1904
|
+
const bool *ptr;
|
|
1905
|
+
/**
|
|
1906
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
1907
|
+
* than or equal to [isize::MAX].
|
|
1908
|
+
*/
|
|
1909
|
+
uintptr_t len;
|
|
1910
|
+
} ddog_Slice_Bool;
|
|
1911
|
+
|
|
1912
|
+
typedef struct ddog_Slice_F64 {
|
|
1913
|
+
/**
|
|
1914
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
|
1915
|
+
* allowed but not recommended for the pointer to be null when the len is
|
|
1916
|
+
* zero.
|
|
1917
|
+
*/
|
|
1918
|
+
const double *ptr;
|
|
1919
|
+
/**
|
|
1920
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
1921
|
+
* than or equal to [isize::MAX].
|
|
1922
|
+
*/
|
|
1923
|
+
uintptr_t len;
|
|
1924
|
+
} ddog_Slice_F64;
|
|
1925
|
+
|
|
1733
1926
|
typedef enum ddog_LibraryConfigSource {
|
|
1734
1927
|
DDOG_LIBRARY_CONFIG_SOURCE_LOCAL_STABLE_CONFIG = 0,
|
|
1735
1928
|
DDOG_LIBRARY_CONFIG_SOURCE_FLEET_STABLE_CONFIG = 1,
|
|
@@ -1772,20 +1965,6 @@ typedef struct ddog_CStr {
|
|
|
1772
1965
|
uintptr_t length;
|
|
1773
1966
|
} ddog_CStr;
|
|
1774
1967
|
|
|
1775
|
-
typedef struct ddog_Slice_CharSlice {
|
|
1776
|
-
/**
|
|
1777
|
-
* Should be non-null and suitably aligned for the underlying type. It is
|
|
1778
|
-
* allowed but not recommended for the pointer to be null when the len is
|
|
1779
|
-
* zero.
|
|
1780
|
-
*/
|
|
1781
|
-
const ddog_CharSlice *ptr;
|
|
1782
|
-
/**
|
|
1783
|
-
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
1784
|
-
* than or equal to [isize::MAX].
|
|
1785
|
-
*/
|
|
1786
|
-
uintptr_t len;
|
|
1787
|
-
} ddog_Slice_CharSlice;
|
|
1788
|
-
|
|
1789
1968
|
typedef struct ddog_ProcessInfo {
|
|
1790
1969
|
struct ddog_Slice_CharSlice args;
|
|
1791
1970
|
struct ddog_Slice_CharSlice envp;
|
|
@@ -2207,6 +2386,67 @@ typedef struct ddog_ffe_AttributePair {
|
|
|
2207
2386
|
struct ddog_ffe_AttributeValue value;
|
|
2208
2387
|
} ddog_ffe_AttributePair;
|
|
2209
2388
|
|
|
2389
|
+
/**
|
|
2390
|
+
* Error codes for ForkSafeRuntime FFI operations.
|
|
2391
|
+
*/
|
|
2392
|
+
typedef enum ddog_SharedRuntimeErrorCode {
|
|
2393
|
+
/**
|
|
2394
|
+
* Invalid argument provided (e.g. null handle).
|
|
2395
|
+
*/
|
|
2396
|
+
DDOG_SHARED_RUNTIME_ERROR_CODE_INVALID_ARGUMENT,
|
|
2397
|
+
/**
|
|
2398
|
+
* The runtime is not available or in an invalid state.
|
|
2399
|
+
*/
|
|
2400
|
+
DDOG_SHARED_RUNTIME_ERROR_CODE_RUNTIME_UNAVAILABLE,
|
|
2401
|
+
/**
|
|
2402
|
+
* Failed to acquire a lock on internal state.
|
|
2403
|
+
*/
|
|
2404
|
+
DDOG_SHARED_RUNTIME_ERROR_CODE_LOCK_FAILED,
|
|
2405
|
+
/**
|
|
2406
|
+
* A worker operation failed.
|
|
2407
|
+
*/
|
|
2408
|
+
DDOG_SHARED_RUNTIME_ERROR_CODE_WORKER_ERROR,
|
|
2409
|
+
/**
|
|
2410
|
+
* Failed to create the tokio runtime.
|
|
2411
|
+
*/
|
|
2412
|
+
DDOG_SHARED_RUNTIME_ERROR_CODE_RUNTIME_CREATION,
|
|
2413
|
+
/**
|
|
2414
|
+
* Shutdown timed out.
|
|
2415
|
+
*/
|
|
2416
|
+
DDOG_SHARED_RUNTIME_ERROR_CODE_SHUTDOWN_TIMED_OUT,
|
|
2417
|
+
/**
|
|
2418
|
+
* An unexpected panic occurred inside the FFI call.
|
|
2419
|
+
*/
|
|
2420
|
+
DDOG_SHARED_RUNTIME_ERROR_CODE_PANIC,
|
|
2421
|
+
} ddog_SharedRuntimeErrorCode;
|
|
2422
|
+
|
|
2423
|
+
/**
|
|
2424
|
+
* Error returned by ForkSafeRuntime FFI functions.
|
|
2425
|
+
*/
|
|
2426
|
+
typedef struct ddog_SharedRuntimeFFIError {
|
|
2427
|
+
enum ddog_SharedRuntimeErrorCode code;
|
|
2428
|
+
/**
|
|
2429
|
+
* The error message is always defined when the error is returned by a ddog_shared_runtime
|
|
2430
|
+
* ffi.
|
|
2431
|
+
*/
|
|
2432
|
+
char *msg;
|
|
2433
|
+
} ddog_SharedRuntimeFFIError;
|
|
2434
|
+
|
|
2435
|
+
/**
|
|
2436
|
+
* Maximum size in bytes of the `attrs_data` field of a thread context record.
|
|
2437
|
+
*/
|
|
2438
|
+
#define ddog_MAX_ATTRS_DATA_SIZE 612
|
|
2439
|
+
|
|
2440
|
+
/**
|
|
2441
|
+
* Opaque handle to a thread context record. Used to allow the FFI to convert [ThreadContext]
|
|
2442
|
+
* to and from raw pointers without exposing [ThreadContextRecord], as the latter needs extra
|
|
2443
|
+
* care to be manipulated (async-signal-safety, seq-lock-like modification protocol through
|
|
2444
|
+
* [ThreadContextRecord::valid], etc.)
|
|
2445
|
+
*/
|
|
2446
|
+
typedef struct ddog_ThreadContextHandle {
|
|
2447
|
+
|
|
2448
|
+
} ddog_ThreadContextHandle;
|
|
2449
|
+
|
|
2210
2450
|
typedef enum ddog_crasht_BuildIdType {
|
|
2211
2451
|
DDOG_CRASHT_BUILD_ID_TYPE_GNU,
|
|
2212
2452
|
DDOG_CRASHT_BUILD_ID_TYPE_GO,
|
|
@@ -170,6 +170,25 @@ struct ddog_VoidResult ddog_crasht_report_unhandled_exception(ddog_CharSlice err
|
|
|
170
170
|
ddog_CharSlice error_message,
|
|
171
171
|
struct ddog_crasht_Handle_StackTrace *runtime_stack);
|
|
172
172
|
|
|
173
|
+
/**
|
|
174
|
+
* Register the expected PID of the socket-based crash receiver
|
|
175
|
+
*
|
|
176
|
+
* When `collect_all_threads` is enabled and the receiver is reached via a Unix
|
|
177
|
+
* socket, the crash handler will only grant ptrace permission if the socket
|
|
178
|
+
* peer's PID matches this registered value.
|
|
179
|
+
*
|
|
180
|
+
* Call this after establishing a trusted connection to the sidecar
|
|
181
|
+
*
|
|
182
|
+
* # Safety
|
|
183
|
+
* This function is safe to call from any thread at any time.
|
|
184
|
+
*/
|
|
185
|
+
void ddog_crasht_set_expected_receiver_pid(int32_t pid);
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Returns the currently registered expected receiver PID, or 0 if unset.
|
|
189
|
+
*/
|
|
190
|
+
int32_t ddog_crasht_get_expected_receiver_pid(void);
|
|
191
|
+
|
|
173
192
|
/**
|
|
174
193
|
* Removes all existing additional tags
|
|
175
194
|
* Expected to be used after a fork, to reset the additional tags on the child
|