libdatadog 40.0.0.1.0-x86_64-linux → 40.0.0.2.0-x86_64-linux
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/tasks/build.rake +7 -1
- data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/common.h +15 -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/lib/libdatadog_profiling.so +0 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/common.h +15 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/otel-thread-ctx.h +86 -0
- data/vendor/libdatadog-40.0.0/x86_64-linux-musl/lib/libdatadog_profiling.so +0 -0
- metadata +3 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8cd870d618fb9115d6f18212093f1f216c8bc6be47c92b827e269d1302570c51
|
|
4
|
+
data.tar.gz: 3b3a35358884684f3d63469f0ad9c0a7145b0e0d07c9b3eff0958aa54a6b8b52
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a2fc5c486f27b85e11a75e235dbc8d976b4319f84238385f3fe992ad34d4dd6a39429d7b8c4ba2616f08b8f3475f21b546888e6d1d5f8534d7a8430d3dee6f8e
|
|
7
|
+
data.tar.gz: da1db2ea64a773e8ba3de6b0b60c04229acc100ba93baf4c49abed20fae97e7077225ce906665a74d0328ac1b60c9dff8526b71fa476b9a76ffbda20b1dc0f4d
|
data/lib/libdatadog/version.rb
CHANGED
|
@@ -4,7 +4,7 @@ module Libdatadog
|
|
|
4
4
|
# Current libdatadog version
|
|
5
5
|
LIB_VERSION = "40.0.0"
|
|
6
6
|
|
|
7
|
-
GEM_MAJOR_VERSION = "
|
|
7
|
+
GEM_MAJOR_VERSION = "2"
|
|
8
8
|
GEM_MINOR_VERSION = "0"
|
|
9
9
|
GEM_PRERELEASE_VERSION = "" # remember to include dot prefix, if needed!
|
|
10
10
|
private_constant :GEM_MAJOR_VERSION, :GEM_MINOR_VERSION, :GEM_PRERELEASE_VERSION
|
data/tasks/build.rake
CHANGED
|
@@ -107,6 +107,8 @@ module BuildFromSource
|
|
|
107
107
|
end
|
|
108
108
|
|
|
109
109
|
module Builder
|
|
110
|
+
REQUIRED_EXTRA_FEATURES = %w[otel-thread-ctx].freeze
|
|
111
|
+
|
|
110
112
|
class << self
|
|
111
113
|
# Build the cargo install command for the builder crate's `release` binary.
|
|
112
114
|
#
|
|
@@ -125,7 +127,11 @@ module BuildFromSource
|
|
|
125
127
|
]
|
|
126
128
|
end
|
|
127
129
|
|
|
128
|
-
cmd +=
|
|
130
|
+
cmd += if features
|
|
131
|
+
["--no-default-features", "--features", features]
|
|
132
|
+
else
|
|
133
|
+
["--features", REQUIRED_EXTRA_FEATURES.join(",")]
|
|
134
|
+
end
|
|
129
135
|
|
|
130
136
|
cmd
|
|
131
137
|
end
|
|
@@ -2432,6 +2432,21 @@ typedef struct ddog_SharedRuntimeFFIError {
|
|
|
2432
2432
|
char *msg;
|
|
2433
2433
|
} ddog_SharedRuntimeFFIError;
|
|
2434
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
|
+
|
|
2435
2450
|
typedef enum ddog_crasht_BuildIdType {
|
|
2436
2451
|
DDOG_CRASHT_BUILD_ID_TYPE_GNU,
|
|
2437
2452
|
DDOG_CRASHT_BUILD_ID_TYPE_GO,
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// Copyright 2026-Present Datadog, Inc. https://www.datadoghq.com/
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
#ifndef DDOG_OTEL_THREAD_CTX_H
|
|
6
|
+
#define DDOG_OTEL_THREAD_CTX_H
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <stdbool.h>
|
|
11
|
+
#include <stddef.h>
|
|
12
|
+
#include <stdint.h>
|
|
13
|
+
|
|
14
|
+
#ifdef __cplusplus
|
|
15
|
+
extern "C" {
|
|
16
|
+
#endif // __cplusplus
|
|
17
|
+
|
|
18
|
+
#if defined(DDOG_OTEL_THREAD_CTX_SANITY_CHECK)
|
|
19
|
+
/**
|
|
20
|
+
* Verify that this binary was linked with the correct options such that the thread contexts are
|
|
21
|
+
* visible to an external reader (typically the eBPF profiler).
|
|
22
|
+
*
|
|
23
|
+
* Returns `VoidResult::Ok` if all checks pass, or a `VoidResult::Err` with a
|
|
24
|
+
* diagnostic message on failure.
|
|
25
|
+
*/
|
|
26
|
+
struct ddog_VoidResult ddog_otel_thread_ctx_sanity_check(void);
|
|
27
|
+
#endif
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Allocate and initialise a new thread context, including its W3C trace-flags byte.
|
|
31
|
+
*
|
|
32
|
+
* Returns a non-null owned handle that must eventually be released with
|
|
33
|
+
* `ddog_otel_thread_ctx_free`.
|
|
34
|
+
*/
|
|
35
|
+
struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_new(const uint8_t (*trace_id)[16],
|
|
36
|
+
const uint8_t (*span_id)[8],
|
|
37
|
+
uint8_t trace_flags,
|
|
38
|
+
const uint8_t (*local_root_span_id)[8]);
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Free an owned thread context.
|
|
42
|
+
*
|
|
43
|
+
* # Safety
|
|
44
|
+
*
|
|
45
|
+
* `ctx` must be a valid non-null pointer obtained from `ddog_otel_thread_ctx_new` or
|
|
46
|
+
* `ddog_otel_thread_ctx_detach`, and must not be used after this call. In particular, `ctx`
|
|
47
|
+
* must not be currently attached to a thread.
|
|
48
|
+
*/
|
|
49
|
+
void ddog_otel_thread_ctx_free(struct ddog_ThreadContextHandle *ctx);
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Attach `ctx` to the current thread. Returns the previously attached context if any, or null
|
|
53
|
+
* otherwise.
|
|
54
|
+
*
|
|
55
|
+
* # Safety
|
|
56
|
+
*
|
|
57
|
+
* `ctx` must be a valid non-null pointer obtained from this API. Ownership of `ctx` is
|
|
58
|
+
* transferred to the TLS slot: the caller must not drop `ctx` while it is still actively
|
|
59
|
+
* attached.
|
|
60
|
+
*/
|
|
61
|
+
struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_attach(struct ddog_ThreadContextHandle *ctx);
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Remove the currently attached context from the TLS slot.
|
|
65
|
+
*
|
|
66
|
+
* Returns the detached context (caller now owns it and must release it with
|
|
67
|
+
* `ddog_otel_thread_ctx_free`), or null if the slot was empty.
|
|
68
|
+
*/
|
|
69
|
+
struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_detach(void);
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Update the currently attached context in-place, including its W3C trace-flags byte.
|
|
73
|
+
*
|
|
74
|
+
* If no context is currently attached, one is created and attached, equivalent to calling
|
|
75
|
+
* `ddog_otel_thread_ctx_new` followed by `ddog_otel_thread_ctx_attach`.
|
|
76
|
+
*/
|
|
77
|
+
void ddog_otel_thread_ctx_update(const uint8_t (*trace_id)[16],
|
|
78
|
+
const uint8_t (*span_id)[8],
|
|
79
|
+
uint8_t trace_flags,
|
|
80
|
+
const uint8_t (*local_root_span_id)[8]);
|
|
81
|
+
|
|
82
|
+
#ifdef __cplusplus
|
|
83
|
+
} // extern "C"
|
|
84
|
+
#endif // __cplusplus
|
|
85
|
+
|
|
86
|
+
#endif /* DDOG_OTEL_THREAD_CTX_H */
|
|
Binary file
|
|
Binary file
|
|
@@ -2432,6 +2432,21 @@ typedef struct ddog_SharedRuntimeFFIError {
|
|
|
2432
2432
|
char *msg;
|
|
2433
2433
|
} ddog_SharedRuntimeFFIError;
|
|
2434
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
|
+
|
|
2435
2450
|
typedef enum ddog_crasht_BuildIdType {
|
|
2436
2451
|
DDOG_CRASHT_BUILD_ID_TYPE_GNU,
|
|
2437
2452
|
DDOG_CRASHT_BUILD_ID_TYPE_GO,
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// Copyright 2026-Present Datadog, Inc. https://www.datadoghq.com/
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
#ifndef DDOG_OTEL_THREAD_CTX_H
|
|
6
|
+
#define DDOG_OTEL_THREAD_CTX_H
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#include <stdbool.h>
|
|
11
|
+
#include <stddef.h>
|
|
12
|
+
#include <stdint.h>
|
|
13
|
+
|
|
14
|
+
#ifdef __cplusplus
|
|
15
|
+
extern "C" {
|
|
16
|
+
#endif // __cplusplus
|
|
17
|
+
|
|
18
|
+
#if defined(DDOG_OTEL_THREAD_CTX_SANITY_CHECK)
|
|
19
|
+
/**
|
|
20
|
+
* Verify that this binary was linked with the correct options such that the thread contexts are
|
|
21
|
+
* visible to an external reader (typically the eBPF profiler).
|
|
22
|
+
*
|
|
23
|
+
* Returns `VoidResult::Ok` if all checks pass, or a `VoidResult::Err` with a
|
|
24
|
+
* diagnostic message on failure.
|
|
25
|
+
*/
|
|
26
|
+
struct ddog_VoidResult ddog_otel_thread_ctx_sanity_check(void);
|
|
27
|
+
#endif
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Allocate and initialise a new thread context, including its W3C trace-flags byte.
|
|
31
|
+
*
|
|
32
|
+
* Returns a non-null owned handle that must eventually be released with
|
|
33
|
+
* `ddog_otel_thread_ctx_free`.
|
|
34
|
+
*/
|
|
35
|
+
struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_new(const uint8_t (*trace_id)[16],
|
|
36
|
+
const uint8_t (*span_id)[8],
|
|
37
|
+
uint8_t trace_flags,
|
|
38
|
+
const uint8_t (*local_root_span_id)[8]);
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Free an owned thread context.
|
|
42
|
+
*
|
|
43
|
+
* # Safety
|
|
44
|
+
*
|
|
45
|
+
* `ctx` must be a valid non-null pointer obtained from `ddog_otel_thread_ctx_new` or
|
|
46
|
+
* `ddog_otel_thread_ctx_detach`, and must not be used after this call. In particular, `ctx`
|
|
47
|
+
* must not be currently attached to a thread.
|
|
48
|
+
*/
|
|
49
|
+
void ddog_otel_thread_ctx_free(struct ddog_ThreadContextHandle *ctx);
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Attach `ctx` to the current thread. Returns the previously attached context if any, or null
|
|
53
|
+
* otherwise.
|
|
54
|
+
*
|
|
55
|
+
* # Safety
|
|
56
|
+
*
|
|
57
|
+
* `ctx` must be a valid non-null pointer obtained from this API. Ownership of `ctx` is
|
|
58
|
+
* transferred to the TLS slot: the caller must not drop `ctx` while it is still actively
|
|
59
|
+
* attached.
|
|
60
|
+
*/
|
|
61
|
+
struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_attach(struct ddog_ThreadContextHandle *ctx);
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Remove the currently attached context from the TLS slot.
|
|
65
|
+
*
|
|
66
|
+
* Returns the detached context (caller now owns it and must release it with
|
|
67
|
+
* `ddog_otel_thread_ctx_free`), or null if the slot was empty.
|
|
68
|
+
*/
|
|
69
|
+
struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_detach(void);
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Update the currently attached context in-place, including its W3C trace-flags byte.
|
|
73
|
+
*
|
|
74
|
+
* If no context is currently attached, one is created and attached, equivalent to calling
|
|
75
|
+
* `ddog_otel_thread_ctx_new` followed by `ddog_otel_thread_ctx_attach`.
|
|
76
|
+
*/
|
|
77
|
+
void ddog_otel_thread_ctx_update(const uint8_t (*trace_id)[16],
|
|
78
|
+
const uint8_t (*span_id)[8],
|
|
79
|
+
uint8_t trace_flags,
|
|
80
|
+
const uint8_t (*local_root_span_id)[8]);
|
|
81
|
+
|
|
82
|
+
#ifdef __cplusplus
|
|
83
|
+
} // extern "C"
|
|
84
|
+
#endif // __cplusplus
|
|
85
|
+
|
|
86
|
+
#endif /* DDOG_OTEL_THREAD_CTX_H */
|
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: libdatadog
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 40.0.0.
|
|
4
|
+
version: 40.0.0.2.0
|
|
5
5
|
platform: x86_64-linux
|
|
6
6
|
authors:
|
|
7
7
|
- Datadog, Inc.
|
|
@@ -40,6 +40,7 @@ files:
|
|
|
40
40
|
- vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/ffe.h
|
|
41
41
|
- vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/library-config.h
|
|
42
42
|
- vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/log.h
|
|
43
|
+
- vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/otel-thread-ctx.h
|
|
43
44
|
- vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/profiling.h
|
|
44
45
|
- vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/shared-runtime.h
|
|
45
46
|
- vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/telemetry.h
|
|
@@ -57,6 +58,7 @@ files:
|
|
|
57
58
|
- vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/ffe.h
|
|
58
59
|
- vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/library-config.h
|
|
59
60
|
- vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/log.h
|
|
61
|
+
- vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/otel-thread-ctx.h
|
|
60
62
|
- vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/profiling.h
|
|
61
63
|
- vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/shared-runtime.h
|
|
62
64
|
- vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/telemetry.h
|