libdatadog 37.0.0.1.0 → 39.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/vendor/{libdatadog-37.0.0/aarch64-linux-musl → libdatadog-39.0.0/aarch64-linux}/LICENSE-3rdparty.csv +3 -1
- data/vendor/libdatadog-39.0.0/aarch64-linux/NOTICE +12 -0
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/{libdatadog-37.0.0/x86_64-linux-musl → libdatadog-39.0.0/aarch64-linux}/include/datadog/common.h +167 -72
- data/vendor/{libdatadog-37.0.0/arm64-darwin → libdatadog-39.0.0/aarch64-linux}/include/datadog/data-pipeline.h +171 -30
- data/vendor/{libdatadog-37.0.0/aarch64-linux-musl → libdatadog-39.0.0/aarch64-linux}/include/datadog/profiling.h +19 -0
- data/vendor/{libdatadog-37.0.0/x86_64-linux-musl → libdatadog-39.0.0/aarch64-linux}/include/datadog/telemetry.h +37 -19
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/{libdatadog-37.0.0/aarch64-linux → libdatadog-39.0.0/aarch64-linux-musl}/LICENSE-3rdparty.csv +3 -1
- data/vendor/libdatadog-39.0.0/aarch64-linux-musl/NOTICE +12 -0
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/{libdatadog-37.0.0/arm64-darwin → libdatadog-39.0.0/aarch64-linux-musl}/include/datadog/common.h +167 -72
- data/vendor/{libdatadog-37.0.0/aarch64-linux → libdatadog-39.0.0/aarch64-linux-musl}/include/datadog/data-pipeline.h +171 -30
- data/vendor/{libdatadog-37.0.0/arm64-darwin → libdatadog-39.0.0/aarch64-linux-musl}/include/datadog/profiling.h +19 -0
- data/vendor/{libdatadog-37.0.0/arm64-darwin → libdatadog-39.0.0/aarch64-linux-musl}/include/datadog/telemetry.h +37 -19
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux-musl/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/arm64-darwin/LICENSE-3rdparty.csv +3 -1
- data/vendor/libdatadog-39.0.0/arm64-darwin/NOTICE +12 -0
- data/vendor/{libdatadog-37.0.0/aarch64-linux-musl → libdatadog-39.0.0/arm64-darwin}/include/datadog/common.h +167 -72
- data/vendor/{libdatadog-37.0.0/aarch64-linux-musl → libdatadog-39.0.0/arm64-darwin}/include/datadog/data-pipeline.h +171 -30
- data/vendor/{libdatadog-37.0.0/aarch64-linux → libdatadog-39.0.0/arm64-darwin}/include/datadog/profiling.h +19 -0
- data/vendor/{libdatadog-37.0.0/aarch64-linux-musl → libdatadog-39.0.0/arm64-darwin}/include/datadog/telemetry.h +37 -19
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/arm64-darwin/lib/libdatadog_profiling.dylib +0 -0
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/arm64-darwin/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/libdatadog-39.0.0/x86_64-linux/LICENSE-3rdparty.csv +554 -0
- data/vendor/libdatadog-39.0.0/x86_64-linux/NOTICE +12 -0
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/libdatadog-39.0.0/x86_64-linux/include/datadog/common.h +3035 -0
- data/vendor/libdatadog-39.0.0/x86_64-linux/include/datadog/data-pipeline.h +566 -0
- data/vendor/libdatadog-39.0.0/x86_64-linux/include/datadog/profiling.h +1167 -0
- data/vendor/libdatadog-39.0.0/x86_64-linux/include/datadog/telemetry.h +325 -0
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux/lib/libdatadog_profiling.so +0 -0
- data/vendor/libdatadog-39.0.0/x86_64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +15 -0
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux-musl/LICENSE-3rdparty.csv +3 -1
- data/vendor/libdatadog-39.0.0/x86_64-linux-musl/NOTICE +12 -0
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/{libdatadog-37.0.0/aarch64-linux → libdatadog-39.0.0/x86_64-linux-musl}/include/datadog/common.h +167 -72
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux-musl/include/datadog/data-pipeline.h +171 -30
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux-musl/include/datadog/profiling.h +19 -0
- data/vendor/{libdatadog-37.0.0/aarch64-linux → libdatadog-39.0.0/x86_64-linux-musl}/include/datadog/telemetry.h +37 -19
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux-musl/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- metadata +86 -86
- data/vendor/libdatadog-37.0.0/aarch64-linux/NOTICE +0 -4
- data/vendor/libdatadog-37.0.0/aarch64-linux-musl/NOTICE +0 -4
- data/vendor/libdatadog-37.0.0/arm64-darwin/NOTICE +0 -4
- data/vendor/libdatadog-37.0.0/x86_64-linux/LICENSE-3rdparty.csv +0 -552
- data/vendor/libdatadog-37.0.0/x86_64-linux/NOTICE +0 -4
- data/vendor/libdatadog-37.0.0/x86_64-linux/include/datadog/common.h +0 -2940
- data/vendor/libdatadog-37.0.0/x86_64-linux/include/datadog/data-pipeline.h +0 -425
- data/vendor/libdatadog-37.0.0/x86_64-linux/include/datadog/profiling.h +0 -1148
- data/vendor/libdatadog-37.0.0/x86_64-linux/include/datadog/telemetry.h +0 -307
- data/vendor/libdatadog-37.0.0/x86_64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -15
- data/vendor/libdatadog-37.0.0/x86_64-linux-musl/NOTICE +0 -4
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux/LICENSE +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux/include/datadog/crashtracker.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux/include/datadog/shared-runtime.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux-musl/LICENSE +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux-musl/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux-musl/include/datadog/crashtracker.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux-musl/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux-musl/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux-musl/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux-musl/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/aarch64-linux-musl/include/datadog/shared-runtime.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/arm64-darwin/LICENSE +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/arm64-darwin/bin/libdatadog-crashtracking-receiver +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/arm64-darwin/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/arm64-darwin/include/datadog/crashtracker.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/arm64-darwin/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/arm64-darwin/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/arm64-darwin/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/arm64-darwin/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/arm64-darwin/include/datadog/shared-runtime.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux/LICENSE +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux/include/datadog/crashtracker.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux/include/datadog/shared-runtime.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux-musl/LICENSE +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux-musl/include/datadog/blazesym.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux-musl/include/datadog/crashtracker.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux-musl/include/datadog/ddsketch.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux-musl/include/datadog/ffe.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux-musl/include/datadog/library-config.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux-musl/include/datadog/log.h +0 -0
- /data/vendor/{libdatadog-37.0.0 → libdatadog-39.0.0}/x86_64-linux-musl/include/datadog/shared-runtime.h +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 114157501f296f5eb2152369ebe115b1a012dc530da5317b026ea859d3c649bc
|
|
4
|
+
data.tar.gz: f0faabc0acd20de92b2e86c95eaab93765ec9af0d56fb30a7ebfa513aa70a56e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1a71140391443f4325242a4198b4e2b14037f919709ded517642c22b39d6126d3e5da3bed9ab63d3299b1a715418a60e575a9cdb860521fbe7b970cabbe1fc61
|
|
7
|
+
data.tar.gz: bf748dd1cae615c0d284cf465cb9529c857add3c2ed8aa61d5ce9bca6d6995efe48b95280c23517684a9839a03d86f0c05c34bc77967d051f243e588bc4bfc77
|
data/lib/libdatadog/version.rb
CHANGED
|
@@ -220,7 +220,7 @@ js-sys,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/js-sys,MIT OR
|
|
|
220
220
|
kernel32-sys,https://github.com/retep998/winapi-rs,MIT,Peter Atashian <retep998@gmail.com>
|
|
221
221
|
kv-log-macro,https://github.com/yoshuawuyts/kv-log-macro,MIT OR Apache-2.0,Yoshua Wuyts <yoshuawuyts@gmail.com>
|
|
222
222
|
lazy_static,https://github.com/rust-lang-nursery/lazy-static.rs,MIT OR Apache-2.0,Marvin Löbel <loebel.marvin@gmail.com>
|
|
223
|
-
libc,https://github.com/rust-lang/libc,MIT OR Apache-2.0,The
|
|
223
|
+
libc,https://github.com/rust-lang/libc,MIT OR Apache-2.0,The libc Authors
|
|
224
224
|
libdd-libunwind-sys,https://github.com/DataDog/libdatadog/tree/main/libdd-libunwind-sys,Apache-2.0,The libdd-libunwind-sys Authors
|
|
225
225
|
libloading,https://github.com/nagisa/rust_libloading,ISC,Simonas Kazlauskas <libloading@kazlauskas.me>
|
|
226
226
|
libredox,https://gitlab.redox-os.org/redox-os/libredox,MIT,4lDO2 <4lDO2@protonmail.com>
|
|
@@ -375,6 +375,7 @@ semver,https://github.com/dtolnay/semver,MIT OR Apache-2.0,David Tolnay <dtolnay
|
|
|
375
375
|
sendfd,https://github.com/standard-ai/sendfd,Apache-2.0 OR BSD-3-Clause,"Simonas Kazlauskas <simonas@standard.ai>, Bernardo Meurer <bernardo@standard.ai>, Léo Gaspard <leo@standard.ai>"
|
|
376
376
|
serde,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>"
|
|
377
377
|
serde-bool,https://github.com/x52dev/serde-utils,MIT OR Apache-2.0,Rob Ede <robjtede@icloud.com>
|
|
378
|
+
serde-transcode,https://github.com/sfackler/serde-transcode,MIT OR Apache-2.0,Steven Fackler <sfackler@palantir.com>
|
|
378
379
|
serde_bytes,https://github.com/serde-rs/bytes,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
|
|
379
380
|
serde_core,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>"
|
|
380
381
|
serde_derive,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>"
|
|
@@ -497,6 +498,7 @@ wasm-bindgen-macro,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/m
|
|
|
497
498
|
wasm-bindgen-macro-support,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro-support,MIT OR Apache-2.0,The wasm-bindgen Developers
|
|
498
499
|
wasm-bindgen-shared,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/shared,MIT OR Apache-2.0,The wasm-bindgen Developers
|
|
499
500
|
web-sys,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/web-sys,MIT OR Apache-2.0,The wasm-bindgen Developers
|
|
501
|
+
web-time,https://github.com/daxpedda/web-time,MIT OR Apache-2.0,The web-time Authors
|
|
500
502
|
webpki-root-certs,https://github.com/rustls/webpki-roots,CDLA-Permissive-2.0,The webpki-root-certs Authors
|
|
501
503
|
webpki-roots,https://github.com/rustls/webpki-roots,CDLA-Permissive-2.0,The webpki-roots Authors
|
|
502
504
|
widestring,https://github.com/VoidStarKat/widestring-rs,MIT OR Apache-2.0,The widestring Authors
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Datadog libdatadog
|
|
2
|
+
Copyright 2021-2022 Datadog, Inc.
|
|
3
|
+
|
|
4
|
+
This product includes software developed at Datadog (<https://www.datadoghq.com/>).
|
|
5
|
+
|
|
6
|
+
--
|
|
7
|
+
|
|
8
|
+
This product bundles a copy of the libbpf/usdt single-header USDT
|
|
9
|
+
library in `libdd-profiling-heap-sampler/vendor/usdt.h`. That file is licensed
|
|
10
|
+
under the BSD 2-Clause License, Copyright (c) 2024 Meta Platforms, Inc.
|
|
11
|
+
and affiliates. The SPDX identifier and copyright notice are retained
|
|
12
|
+
verbatim in the file header. Upstream: <https://github.com/libbpf/usdt>.
|
|
Binary file
|
|
@@ -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,
|
|
@@ -1586,9 +1563,10 @@ typedef struct ddog_TelemetryWorkerBuilder ddog_TelemetryWorkerBuilder;
|
|
|
1586
1563
|
* The worker won't send data to the agent until you call `TelemetryWorkerHandle::send_start`
|
|
1587
1564
|
*
|
|
1588
1565
|
* To stop the worker, call `TelemetryWorkerHandle::send_stop` which trigger flush asynchronously
|
|
1589
|
-
* then `TelemetryWorkerHandle::wait_for_shutdown`
|
|
1566
|
+
* then `TelemetryWorkerHandle::wait_for_shutdown` (native only — wasm callers rely on the
|
|
1567
|
+
* SharedRuntime worker JoinHandle instead).
|
|
1590
1568
|
*/
|
|
1591
|
-
typedef struct
|
|
1569
|
+
typedef struct ddog_TelemetryWorkerHandle_NativeCapabilities ddog_TelemetryWorkerHandle_NativeCapabilities;
|
|
1592
1570
|
|
|
1593
1571
|
typedef enum ddog_Option_U64_Tag {
|
|
1594
1572
|
DDOG_OPTION_U64_SOME_U64,
|
|
@@ -1604,6 +1582,12 @@ typedef struct ddog_Option_U64 {
|
|
|
1604
1582
|
};
|
|
1605
1583
|
} ddog_Option_U64;
|
|
1606
1584
|
|
|
1585
|
+
/**
|
|
1586
|
+
* FFI-facing alias: the C ABI surface is native-only, so the worker handle is
|
|
1587
|
+
* always pinned to [`NativeCapabilities`].
|
|
1588
|
+
*/
|
|
1589
|
+
typedef struct ddog_TelemetryWorkerHandle_NativeCapabilities ddog_TelemetryWorkerHandle;
|
|
1590
|
+
|
|
1607
1591
|
typedef enum ddog_Option_Bool_Tag {
|
|
1608
1592
|
DDOG_OPTION_BOOL_SOME_BOOL,
|
|
1609
1593
|
DDOG_OPTION_BOOL_NONE_BOOL,
|
|
@@ -1625,10 +1609,19 @@ typedef struct ddog_ContextKey {
|
|
|
1625
1609
|
|
|
1626
1610
|
typedef struct ddog_TraceExporter ddog_TraceExporter;
|
|
1627
1611
|
typedef struct ddog_TracerSpan ddog_TracerSpan;
|
|
1612
|
+
typedef struct ddog_TracerSpanEvent ddog_TracerSpanEvent;
|
|
1628
1613
|
typedef struct ddog_TracerTraceChunks ddog_TracerTraceChunks;
|
|
1629
1614
|
typedef struct ddog_TraceExporterCancelToken ddog_TraceExporterCancelToken;
|
|
1630
1615
|
|
|
1631
1616
|
|
|
1617
|
+
#define ddog_CollapsedFieldSet_RESOURCE_NAME (1 << 0)
|
|
1618
|
+
|
|
1619
|
+
#define ddog_CollapsedFieldSet_HTTP_ENDPOINT (1 << 1)
|
|
1620
|
+
|
|
1621
|
+
#define ddog_CollapsedFieldSet_PEER_TAGS (1 << 2)
|
|
1622
|
+
|
|
1623
|
+
#define ddog_CollapsedFieldSet_ADDITIONAL_TAGS (1 << 3)
|
|
1624
|
+
|
|
1632
1625
|
/**
|
|
1633
1626
|
* Represent error codes that `Error` struct can hold
|
|
1634
1627
|
*/
|
|
@@ -1729,6 +1722,32 @@ typedef struct ddog_TelemetryClientConfig {
|
|
|
1729
1722
|
ddog_CharSlice parent_session_id;
|
|
1730
1723
|
} ddog_TelemetryClientConfig;
|
|
1731
1724
|
|
|
1725
|
+
/**
|
|
1726
|
+
* Config to override the default stats cardinality limit values
|
|
1727
|
+
*/
|
|
1728
|
+
typedef struct ddog_CardinalityLimitConfig {
|
|
1729
|
+
/**
|
|
1730
|
+
* The whole-key cardinality limit (defaults to 7000)
|
|
1731
|
+
*/
|
|
1732
|
+
uintptr_t whole_key_limit;
|
|
1733
|
+
/**
|
|
1734
|
+
* The per-field cardinality limit for the Resource field (defaults to 1024)
|
|
1735
|
+
*/
|
|
1736
|
+
uintptr_t resource_limit;
|
|
1737
|
+
/**
|
|
1738
|
+
* The per-field cardinality limit for the HttpEndpoint field (defaults to 512)
|
|
1739
|
+
*/
|
|
1740
|
+
uintptr_t http_endpoint_limit;
|
|
1741
|
+
/**
|
|
1742
|
+
* The per-field cardinality limit for the PeerTags field (defaults to 512)
|
|
1743
|
+
*/
|
|
1744
|
+
uintptr_t peer_tags_limit;
|
|
1745
|
+
/**
|
|
1746
|
+
* The per-field cardinality limit for the AdditionalTags field (defaults to 100)
|
|
1747
|
+
*/
|
|
1748
|
+
uintptr_t additional_tags_limit;
|
|
1749
|
+
} ddog_CardinalityLimitConfig;
|
|
1750
|
+
|
|
1732
1751
|
/**
|
|
1733
1752
|
* FFI-safe bundle of scalar fields for creating a [`TracerSpan`].
|
|
1734
1753
|
*
|
|
@@ -1749,6 +1768,96 @@ typedef struct ddog_TracerSpanFields {
|
|
|
1749
1768
|
int32_t error;
|
|
1750
1769
|
} ddog_TracerSpanFields;
|
|
1751
1770
|
|
|
1771
|
+
/**
|
|
1772
|
+
* A string attribute belonging to a [`TracerSpanLink`].
|
|
1773
|
+
*/
|
|
1774
|
+
typedef struct ddog_TracerSpanLinkAttribute {
|
|
1775
|
+
ddog_CharSlice key;
|
|
1776
|
+
ddog_CharSlice value;
|
|
1777
|
+
} ddog_TracerSpanLinkAttribute;
|
|
1778
|
+
|
|
1779
|
+
typedef struct ddog_Slice_TracerSpanLinkAttribute {
|
|
1780
|
+
/**
|
|
1781
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
|
1782
|
+
* allowed but not recommended for the pointer to be null when the len is
|
|
1783
|
+
* zero.
|
|
1784
|
+
*/
|
|
1785
|
+
const struct ddog_TracerSpanLinkAttribute *ptr;
|
|
1786
|
+
/**
|
|
1787
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
1788
|
+
* than or equal to [isize::MAX].
|
|
1789
|
+
*/
|
|
1790
|
+
uintptr_t len;
|
|
1791
|
+
} ddog_Slice_TracerSpanLinkAttribute;
|
|
1792
|
+
|
|
1793
|
+
/**
|
|
1794
|
+
* FFI-safe representation of one complete span link.
|
|
1795
|
+
*/
|
|
1796
|
+
typedef struct ddog_TracerSpanLink {
|
|
1797
|
+
uint64_t trace_id_low;
|
|
1798
|
+
uint64_t trace_id_high;
|
|
1799
|
+
uint64_t span_id;
|
|
1800
|
+
struct ddog_Slice_TracerSpanLinkAttribute attributes;
|
|
1801
|
+
ddog_CharSlice tracestate;
|
|
1802
|
+
uint32_t flags;
|
|
1803
|
+
} ddog_TracerSpanLink;
|
|
1804
|
+
|
|
1805
|
+
typedef struct ddog_Slice_TracerSpanLink {
|
|
1806
|
+
/**
|
|
1807
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
|
1808
|
+
* allowed but not recommended for the pointer to be null when the len is
|
|
1809
|
+
* zero.
|
|
1810
|
+
*/
|
|
1811
|
+
const struct ddog_TracerSpanLink *ptr;
|
|
1812
|
+
/**
|
|
1813
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
1814
|
+
* than or equal to [isize::MAX].
|
|
1815
|
+
*/
|
|
1816
|
+
uintptr_t len;
|
|
1817
|
+
} ddog_Slice_TracerSpanLink;
|
|
1818
|
+
|
|
1819
|
+
typedef struct ddog_Slice_CharSlice {
|
|
1820
|
+
/**
|
|
1821
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
|
1822
|
+
* allowed but not recommended for the pointer to be null when the len is
|
|
1823
|
+
* zero.
|
|
1824
|
+
*/
|
|
1825
|
+
const ddog_CharSlice *ptr;
|
|
1826
|
+
/**
|
|
1827
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
1828
|
+
* than or equal to [isize::MAX].
|
|
1829
|
+
*/
|
|
1830
|
+
uintptr_t len;
|
|
1831
|
+
} ddog_Slice_CharSlice;
|
|
1832
|
+
|
|
1833
|
+
typedef struct ddog_Slice_Bool {
|
|
1834
|
+
/**
|
|
1835
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
|
1836
|
+
* allowed but not recommended for the pointer to be null when the len is
|
|
1837
|
+
* zero.
|
|
1838
|
+
*/
|
|
1839
|
+
const bool *ptr;
|
|
1840
|
+
/**
|
|
1841
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
1842
|
+
* than or equal to [isize::MAX].
|
|
1843
|
+
*/
|
|
1844
|
+
uintptr_t len;
|
|
1845
|
+
} ddog_Slice_Bool;
|
|
1846
|
+
|
|
1847
|
+
typedef struct ddog_Slice_F64 {
|
|
1848
|
+
/**
|
|
1849
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
|
1850
|
+
* allowed but not recommended for the pointer to be null when the len is
|
|
1851
|
+
* zero.
|
|
1852
|
+
*/
|
|
1853
|
+
const double *ptr;
|
|
1854
|
+
/**
|
|
1855
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
1856
|
+
* than or equal to [isize::MAX].
|
|
1857
|
+
*/
|
|
1858
|
+
uintptr_t len;
|
|
1859
|
+
} ddog_Slice_F64;
|
|
1860
|
+
|
|
1752
1861
|
typedef enum ddog_LibraryConfigSource {
|
|
1753
1862
|
DDOG_LIBRARY_CONFIG_SOURCE_LOCAL_STABLE_CONFIG = 0,
|
|
1754
1863
|
DDOG_LIBRARY_CONFIG_SOURCE_FLEET_STABLE_CONFIG = 1,
|
|
@@ -1791,20 +1900,6 @@ typedef struct ddog_CStr {
|
|
|
1791
1900
|
uintptr_t length;
|
|
1792
1901
|
} ddog_CStr;
|
|
1793
1902
|
|
|
1794
|
-
typedef struct ddog_Slice_CharSlice {
|
|
1795
|
-
/**
|
|
1796
|
-
* Should be non-null and suitably aligned for the underlying type. It is
|
|
1797
|
-
* allowed but not recommended for the pointer to be null when the len is
|
|
1798
|
-
* zero.
|
|
1799
|
-
*/
|
|
1800
|
-
const ddog_CharSlice *ptr;
|
|
1801
|
-
/**
|
|
1802
|
-
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
|
1803
|
-
* than or equal to [isize::MAX].
|
|
1804
|
-
*/
|
|
1805
|
-
uintptr_t len;
|
|
1806
|
-
} ddog_Slice_CharSlice;
|
|
1807
|
-
|
|
1808
1903
|
typedef struct ddog_ProcessInfo {
|
|
1809
1904
|
struct ddog_Slice_CharSlice args;
|
|
1810
1905
|
struct ddog_Slice_CharSlice envp;
|
|
@@ -183,6 +183,35 @@ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_otlp_endpoint(str
|
|
|
183
183
|
struct ddog_TraceExporterError *ddog_trace_exporter_config_set_otlp_protocol(struct ddog_TraceExporterConfig *config,
|
|
184
184
|
ddog_CharSlice protocol);
|
|
185
185
|
|
|
186
|
+
/**
|
|
187
|
+
* Sets OTLP trace instrumentation scope metadata.
|
|
188
|
+
*
|
|
189
|
+
* Has no effect unless an OTLP endpoint is also configured via
|
|
190
|
+
* `ddog_trace_exporter_config_set_otlp_endpoint`; without one, traces are sent to the
|
|
191
|
+
* Datadog agent and this scope metadata is ignored.
|
|
192
|
+
*/
|
|
193
|
+
struct ddog_TraceExporterError *ddog_trace_exporter_config_set_otlp_instrumentation_scope(struct ddog_TraceExporterConfig *config,
|
|
194
|
+
ddog_CharSlice name,
|
|
195
|
+
ddog_CharSlice version);
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Sets the cardinality limit for client-side stats computation.
|
|
199
|
+
*
|
|
200
|
+
* When the number of distinct stats groups exceeds `limit`, additional groups are
|
|
201
|
+
* aggregated into a sentinel key instead of being tracked individually.
|
|
202
|
+
* This bounds memory usage when the trace population has very high cardinality.
|
|
203
|
+
*
|
|
204
|
+
* Has no effect unless stats computation is enabled via
|
|
205
|
+
* `ddog_trace_exporter_config_set_compute_stats`.
|
|
206
|
+
*/
|
|
207
|
+
struct ddog_TraceExporterError *ddog_trace_exporter_config_set_stats_cardinality_limit(struct ddog_TraceExporterConfig *config,
|
|
208
|
+
struct ddog_CardinalityLimitConfig limits);
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Returns a `CardinalityLimitConfig` with default values
|
|
212
|
+
*/
|
|
213
|
+
struct ddog_CardinalityLimitConfig ddog_trace_exporter_config_default_stats_cardinality_limit(void);
|
|
214
|
+
|
|
186
215
|
/**
|
|
187
216
|
* Configure the exporter to write traces as newline-delimited JSON to stdout (the Datadog
|
|
188
217
|
* Forwarder "log exporter" path) instead of sending them to a Datadog agent. Used in serverless
|
|
@@ -246,9 +275,12 @@ struct ddog_TraceExporterError *ddog_trace_exporter_send(const ddog_TraceExporte
|
|
|
246
275
|
/**
|
|
247
276
|
* Create a new span with all scalar fields set.
|
|
248
277
|
*
|
|
249
|
-
* String fields are copied from the provided slices.
|
|
250
|
-
*
|
|
251
|
-
* [`
|
|
278
|
+
* String fields are copied from the provided slices. The `meta`, `metrics` and `meta_struct`
|
|
279
|
+
* maps start empty; use [`ddog_tracer_span_set_meta`], [`ddog_tracer_span_set_metric`] and
|
|
280
|
+
* [`ddog_tracer_span_set_meta_struct_blob`] to populate them.
|
|
281
|
+
*
|
|
282
|
+
* Returns an error if `fields` is null, if any string field is not valid UTF-8, or if any of
|
|
283
|
+
* its slices is malformed.
|
|
252
284
|
*
|
|
253
285
|
* # Safety
|
|
254
286
|
*
|
|
@@ -276,10 +308,13 @@ void ddog_tracer_span_free(ddog_TracerSpan *handle);
|
|
|
276
308
|
*
|
|
277
309
|
* Both `key` and `value` are copied into the span.
|
|
278
310
|
*
|
|
311
|
+
* Returns an error if `handle` is null, if `key` or `value` is not valid UTF-8, or if either
|
|
312
|
+
* slice is malformed.
|
|
313
|
+
*
|
|
279
314
|
* # Safety
|
|
280
315
|
*
|
|
281
|
-
* `handle` must be a valid pointer to a `TracerSpan`.
|
|
282
|
-
*
|
|
316
|
+
* `handle` must be a valid pointer to a `TracerSpan`. `key` and `value` must point to valid
|
|
317
|
+
* memory for their stated lengths.
|
|
283
318
|
*/
|
|
284
319
|
struct ddog_TraceExporterError *ddog_tracer_span_set_meta(ddog_TracerSpan *handle,
|
|
285
320
|
ddog_CharSlice key,
|
|
@@ -290,15 +325,132 @@ struct ddog_TraceExporterError *ddog_tracer_span_set_meta(ddog_TracerSpan *handl
|
|
|
290
325
|
*
|
|
291
326
|
* The `key` is copied into the span.
|
|
292
327
|
*
|
|
328
|
+
* Returns an error if `handle` is null, if `key` is not valid UTF-8, or if the slice is
|
|
329
|
+
* malformed.
|
|
330
|
+
*
|
|
293
331
|
* # Safety
|
|
294
332
|
*
|
|
295
|
-
* `handle` must be a valid pointer to a `TracerSpan`.
|
|
296
|
-
*
|
|
333
|
+
* `handle` must be a valid pointer to a `TracerSpan`. `key` must point to valid memory for its
|
|
334
|
+
* stated length.
|
|
297
335
|
*/
|
|
298
336
|
struct ddog_TraceExporterError *ddog_tracer_span_set_metric(ddog_TracerSpan *handle,
|
|
299
337
|
ddog_CharSlice key,
|
|
300
338
|
double value);
|
|
301
339
|
|
|
340
|
+
/**
|
|
341
|
+
* Add or overwrite a structured metadata entry (`meta_struct`) on the span.
|
|
342
|
+
*
|
|
343
|
+
* The `key` and opaque binary `value` are copied into the span. The value is
|
|
344
|
+
* not interpreted or validated as MessagePack.
|
|
345
|
+
*
|
|
346
|
+
* Returns an error if `handle` is null, if `key` is not valid UTF-8, or if either slice is
|
|
347
|
+
* malformed.
|
|
348
|
+
*
|
|
349
|
+
* # Safety
|
|
350
|
+
*
|
|
351
|
+
* `handle` must be a valid pointer to a `TracerSpan`. `key` and `value` must point to valid
|
|
352
|
+
* memory for their stated lengths.
|
|
353
|
+
*/
|
|
354
|
+
struct ddog_TraceExporterError *ddog_tracer_span_set_meta_struct_blob(ddog_TracerSpan *handle,
|
|
355
|
+
ddog_CharSlice key,
|
|
356
|
+
ddog_ByteSlice value);
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* Replace all span links in one atomic operation.
|
|
360
|
+
*
|
|
361
|
+
* The links, attributes, and strings are copied before this function returns.
|
|
362
|
+
* If any slice or string is invalid, the span's existing links are unchanged.
|
|
363
|
+
* Link order is preserved.
|
|
364
|
+
*
|
|
365
|
+
* # Safety
|
|
366
|
+
*
|
|
367
|
+
* `handle` must be a valid pointer to a `TracerSpan`. All slices must point to
|
|
368
|
+
* valid memory for their stated lengths.
|
|
369
|
+
*/
|
|
370
|
+
struct ddog_TraceExporterError *ddog_tracer_span_set_links(ddog_TracerSpan *handle,
|
|
371
|
+
struct ddog_Slice_TracerSpanLink links);
|
|
372
|
+
|
|
373
|
+
/**
|
|
374
|
+
* Create an owned span event.
|
|
375
|
+
*
|
|
376
|
+
* The name is copied before this function returns. The event remains detached
|
|
377
|
+
* until consumed by [`ddog_tracer_span_add_event`].
|
|
378
|
+
*/
|
|
379
|
+
struct ddog_TraceExporterError *ddog_tracer_span_event_new(ddog_TracerSpanEvent **out_handle,
|
|
380
|
+
ddog_CharSlice name,
|
|
381
|
+
uint64_t time_unix_nano);
|
|
382
|
+
|
|
383
|
+
/**
|
|
384
|
+
* Free a detached span event.
|
|
385
|
+
*/
|
|
386
|
+
void ddog_tracer_span_event_free(ddog_TracerSpanEvent *handle);
|
|
387
|
+
|
|
388
|
+
/**
|
|
389
|
+
* Add or overwrite a string event attribute. The key and value are copied.
|
|
390
|
+
*/
|
|
391
|
+
struct ddog_TraceExporterError *ddog_tracer_span_event_set_string(ddog_TracerSpanEvent *event,
|
|
392
|
+
ddog_CharSlice key,
|
|
393
|
+
ddog_CharSlice value);
|
|
394
|
+
|
|
395
|
+
/**
|
|
396
|
+
* Add or overwrite a boolean event attribute.
|
|
397
|
+
*/
|
|
398
|
+
struct ddog_TraceExporterError *ddog_tracer_span_event_set_bool(ddog_TracerSpanEvent *event,
|
|
399
|
+
ddog_CharSlice key,
|
|
400
|
+
bool value);
|
|
401
|
+
|
|
402
|
+
/**
|
|
403
|
+
* Add or overwrite a signed integer event attribute.
|
|
404
|
+
*/
|
|
405
|
+
struct ddog_TraceExporterError *ddog_tracer_span_event_set_int(ddog_TracerSpanEvent *event,
|
|
406
|
+
ddog_CharSlice key,
|
|
407
|
+
int64_t value);
|
|
408
|
+
|
|
409
|
+
/**
|
|
410
|
+
* Add or overwrite a double event attribute.
|
|
411
|
+
*/
|
|
412
|
+
struct ddog_TraceExporterError *ddog_tracer_span_event_set_double(ddog_TracerSpanEvent *event,
|
|
413
|
+
ddog_CharSlice key,
|
|
414
|
+
double value);
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
* Add or overwrite a homogeneous string array event attribute.
|
|
418
|
+
*/
|
|
419
|
+
struct ddog_TraceExporterError *ddog_tracer_span_event_set_string_array(ddog_TracerSpanEvent *event,
|
|
420
|
+
ddog_CharSlice key,
|
|
421
|
+
struct ddog_Slice_CharSlice values);
|
|
422
|
+
|
|
423
|
+
/**
|
|
424
|
+
* Add or overwrite a homogeneous boolean array event attribute.
|
|
425
|
+
*/
|
|
426
|
+
struct ddog_TraceExporterError *ddog_tracer_span_event_set_bool_array(ddog_TracerSpanEvent *event,
|
|
427
|
+
ddog_CharSlice key,
|
|
428
|
+
struct ddog_Slice_Bool values);
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* Add or overwrite a homogeneous signed integer array event attribute.
|
|
432
|
+
*/
|
|
433
|
+
struct ddog_TraceExporterError *ddog_tracer_span_event_set_int_array(ddog_TracerSpanEvent *event,
|
|
434
|
+
ddog_CharSlice key,
|
|
435
|
+
struct ddog_Slice_I64 values);
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Add or overwrite a homogeneous double array event attribute.
|
|
439
|
+
*/
|
|
440
|
+
struct ddog_TraceExporterError *ddog_tracer_span_event_set_double_array(ddog_TracerSpanEvent *event,
|
|
441
|
+
ddog_CharSlice key,
|
|
442
|
+
struct ddog_Slice_F64 values);
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* Atomically attach a completed event to a span, consuming the event.
|
|
446
|
+
*
|
|
447
|
+
* A non-null `event` is always consumed — moved into the span on success, or
|
|
448
|
+
* dropped on any error (a null `span`, or an internal panic). Callers must not
|
|
449
|
+
* use or free the event after this call. On error the span is unchanged.
|
|
450
|
+
*/
|
|
451
|
+
struct ddog_TraceExporterError *ddog_tracer_span_add_event(ddog_TracerSpan *span,
|
|
452
|
+
ddog_TracerSpanEvent *event);
|
|
453
|
+
|
|
302
454
|
/**
|
|
303
455
|
* Create a new empty trace chunks container.
|
|
304
456
|
*
|
|
@@ -365,17 +517,14 @@ ddog_TraceExporterCancelToken *ddog_trace_exporter_cancel_token_new(void);
|
|
|
365
517
|
/**
|
|
366
518
|
* Cancel a cancellation token.
|
|
367
519
|
*
|
|
368
|
-
* All clones of the same token observe the cancellation.
|
|
369
|
-
* [`ddog_trace_exporter_send_trace_chunks`] call is
|
|
370
|
-
*
|
|
371
|
-
*
|
|
372
|
-
* lost.
|
|
520
|
+
* All clones of the same token observe the cancellation. Cancellation is cooperative and only
|
|
521
|
+
* affects a [`ddog_trace_exporter_send_trace_chunks`] call that is in flight: that send stops
|
|
522
|
+
* waiting for the agent at its next await point and fails with
|
|
523
|
+
* [`ExporterErrorCode::IoError`], and the chunks it was sending may be lost.
|
|
373
524
|
*
|
|
374
|
-
*
|
|
375
|
-
*
|
|
376
|
-
*
|
|
377
|
-
* agent, and a token cancelled after its send has already finished does
|
|
378
|
-
* nothing.
|
|
525
|
+
* Cancelling while no send is using the token has no immediate effect. A send started later with
|
|
526
|
+
* an already-cancelled token fails the same way without contacting the agent, and cancelling
|
|
527
|
+
* after a send has finished does nothing.
|
|
379
528
|
*/
|
|
380
529
|
void ddog_trace_exporter_cancel_token_cancel(const ddog_TraceExporterCancelToken *token);
|
|
381
530
|
|
|
@@ -389,19 +538,11 @@ void ddog_trace_exporter_cancel_token_drop(ddog_TraceExporterCancelToken *token)
|
|
|
389
538
|
/**
|
|
390
539
|
* Send trace chunks through a [`TraceExporter`], consuming the chunks.
|
|
391
540
|
*
|
|
392
|
-
*
|
|
393
|
-
*
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
*
|
|
397
|
-
* [`ddog_trace_exporter_cancel_token_cancel`]) while the send is in progress
|
|
398
|
-
* aborts the in-flight request and returns an error with code
|
|
399
|
-
* [`ExporterErrorCode::IoError`]. Cancellation is cooperative: it only takes
|
|
400
|
-
* effect while a request is actually in flight. A token that is already
|
|
401
|
-
* cancelled when the send starts makes this function return that error
|
|
402
|
-
* immediately, and cancelling after the send has finished has no effect.
|
|
403
|
-
* Cancelling an in-flight send may cause the trace chunks being sent to be
|
|
404
|
-
* lost.
|
|
541
|
+
* Computes stats, serializes in the configured output format, and sends to the agent with
|
|
542
|
+
* retries.
|
|
543
|
+
*
|
|
544
|
+
* When `cancel` is non-null, cancelling that token aborts the in-flight request; see
|
|
545
|
+
* [`ddog_trace_exporter_cancel_token_cancel`].
|
|
405
546
|
*
|
|
406
547
|
* On success, if `response_out` is non-null, a heap-allocated
|
|
407
548
|
* [`ExporterResponse`] is written there. The caller owns it and must
|