libdatadog 1.0.1.1.0-aarch64-linux → 2.0.0.1.0-aarch64-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/vendor/{libdatadog-1.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-2.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/LICENSE-3rdparty.yml +190 -136
- data/vendor/{libdatadog-1.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-2.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/common.h +97 -52
- data/vendor/{libdatadog-1.0.1 → libdatadog-2.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/profiling.h +74 -35
- data/vendor/libdatadog-2.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-1.0.1 → libdatadog-2.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- data/vendor/{libdatadog-1.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-2.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/LICENSE-3rdparty.yml +190 -136
- data/vendor/{libdatadog-1.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-2.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/common.h +97 -52
- data/vendor/{libdatadog-1.0.1 → libdatadog-2.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/profiling.h +74 -35
- data/vendor/libdatadog-2.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-1.0.1 → libdatadog-2.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
- metadata +16 -16
- data/vendor/libdatadog-1.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- data/vendor/libdatadog-1.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- /data/vendor/{libdatadog-1.0.1 → libdatadog-2.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
- /data/vendor/{libdatadog-1.0.1 → libdatadog-2.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
- /data/vendor/{libdatadog-1.0.1 → libdatadog-2.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
- /data/vendor/{libdatadog-1.0.1 → libdatadog-2.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
@@ -46,21 +46,45 @@ typedef struct ddog_Tag ddog_Tag;
|
|
46
46
|
* Holds the raw parts of a Rust Vec; it should only be created from Rust,
|
47
47
|
* never from C.
|
48
48
|
*/
|
49
|
-
typedef struct
|
50
|
-
const
|
49
|
+
typedef struct ddog_Vec_U8 {
|
50
|
+
const uint8_t *ptr;
|
51
51
|
uintptr_t len;
|
52
52
|
uintptr_t capacity;
|
53
|
-
}
|
53
|
+
} ddog_Vec_U8;
|
54
|
+
|
55
|
+
/**
|
56
|
+
* Please treat this as opaque; do not reach into it, and especially don't
|
57
|
+
* write into it! The most relevant APIs are:
|
58
|
+
* * `ddog_Error_message`, to get the message as a slice.
|
59
|
+
* * `ddog_Error_drop`.
|
60
|
+
*/
|
61
|
+
typedef struct ddog_Error {
|
62
|
+
/**
|
63
|
+
* This is a String stuffed into the vec.
|
64
|
+
*/
|
65
|
+
struct ddog_Vec_U8 message;
|
66
|
+
} ddog_Error;
|
67
|
+
|
68
|
+
/**
|
69
|
+
* Remember, the data inside of each member is potentially coming from FFI,
|
70
|
+
* so every operation on it is unsafe!
|
71
|
+
*/
|
72
|
+
typedef struct ddog_Slice_CChar {
|
73
|
+
const char *ptr;
|
74
|
+
uintptr_t len;
|
75
|
+
} ddog_Slice_CChar;
|
76
|
+
|
77
|
+
typedef struct ddog_Slice_CChar ddog_CharSlice;
|
54
78
|
|
55
79
|
/**
|
56
80
|
* Holds the raw parts of a Rust Vec; it should only be created from Rust,
|
57
81
|
* never from C.
|
58
82
|
*/
|
59
|
-
typedef struct
|
60
|
-
const
|
83
|
+
typedef struct ddog_Vec_Tag {
|
84
|
+
const struct ddog_Tag *ptr;
|
61
85
|
uintptr_t len;
|
62
86
|
uintptr_t capacity;
|
63
|
-
}
|
87
|
+
} ddog_Vec_Tag;
|
64
88
|
|
65
89
|
typedef enum ddog_Vec_Tag_PushResult_Tag {
|
66
90
|
DDOG_VEC_TAG_PUSH_RESULT_OK,
|
@@ -71,25 +95,14 @@ typedef struct ddog_Vec_Tag_PushResult {
|
|
71
95
|
ddog_Vec_Tag_PushResult_Tag tag;
|
72
96
|
union {
|
73
97
|
struct {
|
74
|
-
struct
|
98
|
+
struct ddog_Error err;
|
75
99
|
};
|
76
100
|
};
|
77
101
|
} ddog_Vec_Tag_PushResult;
|
78
102
|
|
79
|
-
/**
|
80
|
-
* Remember, the data inside of each member is potentially coming from FFI,
|
81
|
-
* so every operation on it is unsafe!
|
82
|
-
*/
|
83
|
-
typedef struct ddog_Slice_CChar {
|
84
|
-
const char *ptr;
|
85
|
-
uintptr_t len;
|
86
|
-
} ddog_Slice_CChar;
|
87
|
-
|
88
|
-
typedef struct ddog_Slice_CChar ddog_CharSlice;
|
89
|
-
|
90
103
|
typedef struct ddog_Vec_Tag_ParseResult {
|
91
104
|
struct ddog_Vec_Tag tags;
|
92
|
-
struct
|
105
|
+
struct ddog_Error *error_message;
|
93
106
|
} ddog_Vec_Tag_ParseResult;
|
94
107
|
|
95
108
|
typedef struct ddog_CancellationToken ddog_CancellationToken;
|
@@ -100,21 +113,27 @@ typedef struct ddog_prof_Exporter ddog_prof_Exporter;
|
|
100
113
|
|
101
114
|
typedef struct ddog_prof_ProfiledEndpointsStats ddog_prof_ProfiledEndpointsStats;
|
102
115
|
|
103
|
-
/**
|
104
|
-
* This type only exists to workaround a bug in cbindgen; may be removed in the
|
105
|
-
* future.
|
106
|
-
*/
|
107
116
|
typedef struct ddog_prof_Exporter_Request ddog_prof_Exporter_Request;
|
108
117
|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
}
|
118
|
+
typedef enum ddog_Endpoint_Tag {
|
119
|
+
DDOG_ENDPOINT_AGENT,
|
120
|
+
DDOG_ENDPOINT_AGENTLESS,
|
121
|
+
} ddog_Endpoint_Tag;
|
122
|
+
|
123
|
+
typedef struct ddog_Endpoint_ddog_prof_Agentless_Body {
|
124
|
+
ddog_CharSlice _0;
|
125
|
+
ddog_CharSlice _1;
|
126
|
+
} ddog_Endpoint_ddog_prof_Agentless_Body;
|
127
|
+
|
128
|
+
typedef struct ddog_Endpoint {
|
129
|
+
ddog_Endpoint_Tag tag;
|
130
|
+
union {
|
131
|
+
struct {
|
132
|
+
ddog_CharSlice agent;
|
133
|
+
};
|
134
|
+
ddog_Endpoint_ddog_prof_Agentless_Body AGENTLESS;
|
135
|
+
};
|
136
|
+
} ddog_Endpoint;
|
118
137
|
|
119
138
|
typedef enum ddog_prof_Exporter_NewResult_Tag {
|
120
139
|
DDOG_PROF_EXPORTER_NEW_RESULT_OK,
|
@@ -128,30 +147,27 @@ typedef struct ddog_prof_Exporter_NewResult {
|
|
128
147
|
struct ddog_prof_Exporter *ok;
|
129
148
|
};
|
130
149
|
struct {
|
131
|
-
struct
|
150
|
+
struct ddog_Error err;
|
132
151
|
};
|
133
152
|
};
|
134
153
|
} ddog_prof_Exporter_NewResult;
|
135
154
|
|
136
|
-
typedef enum
|
137
|
-
|
138
|
-
|
139
|
-
}
|
140
|
-
|
141
|
-
typedef struct ddog_Endpoint_ddog_prof_Agentless_Body {
|
142
|
-
ddog_CharSlice _0;
|
143
|
-
ddog_CharSlice _1;
|
144
|
-
} ddog_Endpoint_ddog_prof_Agentless_Body;
|
155
|
+
typedef enum ddog_prof_Exporter_Request_BuildResult_Tag {
|
156
|
+
DDOG_PROF_EXPORTER_REQUEST_BUILD_RESULT_OK,
|
157
|
+
DDOG_PROF_EXPORTER_REQUEST_BUILD_RESULT_ERR,
|
158
|
+
} ddog_prof_Exporter_Request_BuildResult_Tag;
|
145
159
|
|
146
|
-
typedef struct
|
147
|
-
|
160
|
+
typedef struct ddog_prof_Exporter_Request_BuildResult {
|
161
|
+
ddog_prof_Exporter_Request_BuildResult_Tag tag;
|
148
162
|
union {
|
149
163
|
struct {
|
150
|
-
|
164
|
+
struct ddog_prof_Exporter_Request *ok;
|
165
|
+
};
|
166
|
+
struct {
|
167
|
+
struct ddog_Error err;
|
151
168
|
};
|
152
|
-
ddog_Endpoint_ddog_prof_Agentless_Body AGENTLESS;
|
153
169
|
};
|
154
|
-
}
|
170
|
+
} ddog_prof_Exporter_Request_BuildResult;
|
155
171
|
|
156
172
|
/**
|
157
173
|
* Represents time since the Unix Epoch in seconds plus nanoseconds.
|
@@ -205,7 +221,7 @@ typedef struct ddog_prof_Exporter_SendResult {
|
|
205
221
|
struct ddog_HttpStatus http_response;
|
206
222
|
};
|
207
223
|
struct {
|
208
|
-
struct
|
224
|
+
struct ddog_Error err;
|
209
225
|
};
|
210
226
|
};
|
211
227
|
} ddog_prof_Exporter_SendResult;
|
@@ -229,6 +245,23 @@ typedef struct ddog_prof_Period {
|
|
229
245
|
int64_t value;
|
230
246
|
} ddog_prof_Period;
|
231
247
|
|
248
|
+
typedef enum ddog_prof_Profile_AddResult_Tag {
|
249
|
+
DDOG_PROF_PROFILE_ADD_RESULT_OK,
|
250
|
+
DDOG_PROF_PROFILE_ADD_RESULT_ERR,
|
251
|
+
} ddog_prof_Profile_AddResult_Tag;
|
252
|
+
|
253
|
+
typedef struct ddog_prof_Profile_AddResult {
|
254
|
+
ddog_prof_Profile_AddResult_Tag tag;
|
255
|
+
union {
|
256
|
+
struct {
|
257
|
+
uint64_t ok;
|
258
|
+
};
|
259
|
+
struct {
|
260
|
+
struct ddog_Error err;
|
261
|
+
};
|
262
|
+
};
|
263
|
+
} ddog_prof_Profile_AddResult;
|
264
|
+
|
232
265
|
typedef struct ddog_prof_Mapping {
|
233
266
|
/**
|
234
267
|
* Address at which the binary (or DLL) is loaded into memory.
|
@@ -399,7 +432,7 @@ typedef struct ddog_prof_Sample {
|
|
399
432
|
typedef struct ddog_prof_EncodedProfile {
|
400
433
|
struct ddog_Timespec start;
|
401
434
|
struct ddog_Timespec end;
|
402
|
-
struct
|
435
|
+
struct ddog_Vec_U8 buffer;
|
403
436
|
struct ddog_prof_ProfiledEndpointsStats *endpoints_stats;
|
404
437
|
} ddog_prof_EncodedProfile;
|
405
438
|
|
@@ -415,17 +448,29 @@ typedef struct ddog_prof_Profile_SerializeResult {
|
|
415
448
|
struct ddog_prof_EncodedProfile ok;
|
416
449
|
};
|
417
450
|
struct {
|
418
|
-
struct
|
451
|
+
struct ddog_Error err;
|
419
452
|
};
|
420
453
|
};
|
421
454
|
} ddog_prof_Profile_SerializeResult;
|
422
455
|
|
456
|
+
/**
|
457
|
+
* # Safety
|
458
|
+
* Only pass null or a valid reference to a `ddog_Error`.
|
459
|
+
*/
|
460
|
+
void ddog_Error_drop(struct ddog_Error *error);
|
461
|
+
|
462
|
+
/**
|
463
|
+
* Returns a CharSlice of the error's message that is valid until the error
|
464
|
+
* is dropped.
|
465
|
+
* # Safety
|
466
|
+
* Only pass null or a valid reference to a `ddog_Error`.
|
467
|
+
*/
|
468
|
+
ddog_CharSlice ddog_Error_message(const struct ddog_Error *error);
|
469
|
+
|
423
470
|
DDOG_CHECK_RETURN struct ddog_Vec_Tag ddog_Vec_Tag_new(void);
|
424
471
|
|
425
472
|
void ddog_Vec_Tag_drop(struct ddog_Vec_Tag);
|
426
473
|
|
427
|
-
void ddog_Vec_Tag_PushResult_drop(struct ddog_Vec_Tag_PushResult);
|
428
|
-
|
429
474
|
/**
|
430
475
|
* Creates a new Tag from the provided `key` and `value` by doing a utf8
|
431
476
|
* lossy conversion, and pushes into the `vec`. The strings `key` and `value`
|
@@ -11,8 +11,6 @@
|
|
11
11
|
#include <stdint.h>
|
12
12
|
#include "common.h"
|
13
13
|
|
14
|
-
void ddog_prof_Exporter_NewResult_drop(struct ddog_prof_Exporter_NewResult result);
|
15
|
-
|
16
14
|
/**
|
17
15
|
* Creates an endpoint that uses the agent.
|
18
16
|
* # Arguments
|
@@ -39,6 +37,8 @@ struct ddog_Endpoint ddog_Endpoint_agentless(ddog_CharSlice site, ddog_CharSlice
|
|
39
37
|
* * `tags` - Tags to include with every profile reported by this exporter. It's also possible to include
|
40
38
|
* profile-specific tags, see `additional_tags` on `profile_exporter_build`.
|
41
39
|
* * `endpoint` - Configuration for reporting data
|
40
|
+
* # Safety
|
41
|
+
* All pointers must refer to valid objects of the correct types.
|
42
42
|
*/
|
43
43
|
DDOG_CHECK_RETURN
|
44
44
|
struct ddog_prof_Exporter_NewResult ddog_prof_Exporter_new(ddog_CharSlice profiling_library_name,
|
@@ -47,41 +47,56 @@ struct ddog_prof_Exporter_NewResult ddog_prof_Exporter_new(ddog_CharSlice profil
|
|
47
47
|
const struct ddog_Vec_Tag *tags,
|
48
48
|
struct ddog_Endpoint endpoint);
|
49
49
|
|
50
|
+
/**
|
51
|
+
* # Safety
|
52
|
+
* The `exporter` may be null, but if non-null the pointer must point to a
|
53
|
+
* valid `ddog_prof_Exporter_Request` object made by the Rust Global
|
54
|
+
* allocator that has not already been dropped.
|
55
|
+
*/
|
50
56
|
void ddog_prof_Exporter_drop(struct ddog_prof_Exporter *exporter);
|
51
57
|
|
52
58
|
/**
|
53
|
-
*
|
59
|
+
* If successful, builds a `ddog_prof_Exporter_Request` object based on the
|
60
|
+
* profile data supplied. If unsuccessful, it returns an error message.
|
54
61
|
*
|
55
62
|
* # Safety
|
56
|
-
* The `exporter` and
|
57
|
-
* created by this module.
|
63
|
+
* The `exporter`, `additional_stats`, and `endpoint_stats` args should be
|
64
|
+
* valid objects created by this module, except NULL is allowed.
|
58
65
|
*/
|
59
66
|
DDOG_CHECK_RETURN
|
60
|
-
struct
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
+
struct ddog_prof_Exporter_Request_BuildResult ddog_prof_Exporter_Request_build(struct ddog_prof_Exporter *exporter,
|
68
|
+
struct ddog_Timespec start,
|
69
|
+
struct ddog_Timespec end,
|
70
|
+
struct ddog_prof_Exporter_Slice_File files,
|
71
|
+
const struct ddog_Vec_Tag *additional_tags,
|
72
|
+
const struct ddog_prof_ProfiledEndpointsStats *endpoints_stats,
|
73
|
+
uint64_t timeout_ms);
|
74
|
+
|
75
|
+
/**
|
76
|
+
* # Safety
|
77
|
+
* Each pointer of `request` may be null, but if non-null the inner-most
|
78
|
+
* pointer must point to a valid `ddog_prof_Exporter_Request` object made by
|
79
|
+
* the Rust Global allocator.
|
80
|
+
*/
|
81
|
+
void ddog_prof_Exporter_Request_drop(struct ddog_prof_Exporter_Request **request);
|
67
82
|
|
68
83
|
/**
|
69
84
|
* Sends the request, returning the HttpStatus.
|
70
85
|
*
|
71
86
|
* # Arguments
|
72
|
-
* * `exporter` -
|
73
|
-
* * `request` -
|
74
|
-
*
|
87
|
+
* * `exporter` - Borrows the exporter for sending the request.
|
88
|
+
* * `request` - Takes ownership of the request, replacing it with a null
|
89
|
+
* pointer. This is why it takes a double-pointer, rather than
|
90
|
+
* a single one.
|
91
|
+
* * `cancel` - Borrows the cancel, if any.
|
75
92
|
*
|
76
93
|
* # Safety
|
77
94
|
* All non-null arguments MUST have been created by created by apis in this module.
|
78
95
|
*/
|
79
96
|
DDOG_CHECK_RETURN
|
80
97
|
struct ddog_prof_Exporter_SendResult ddog_prof_Exporter_send(struct ddog_prof_Exporter *exporter,
|
81
|
-
struct ddog_prof_Exporter_Request
|
82
|
-
struct ddog_CancellationToken *cancel);
|
83
|
-
|
84
|
-
void ddog_prof_Exporter_Request_drop(struct ddog_prof_Exporter_Request *_request);
|
98
|
+
struct ddog_prof_Exporter_Request **request,
|
99
|
+
const struct ddog_CancellationToken *cancel);
|
85
100
|
|
86
101
|
/**
|
87
102
|
* Can be passed as an argument to send and then be used to asynchronously cancel it from a different thread.
|
@@ -111,20 +126,26 @@ struct ddog_CancellationToken *ddog_CancellationToken_new(void);
|
|
111
126
|
* Without clone, both t1 and t2 would need to synchronize to make sure neither was using the cancel
|
112
127
|
* before it could be dropped. With clone, there is no need for such synchronization, both threads
|
113
128
|
* have their own cancel and should drop that cancel after they are done with it.
|
129
|
+
*
|
130
|
+
* # Safety
|
131
|
+
* If the `token` is non-null, it must point to a valid object.
|
114
132
|
*/
|
115
133
|
DDOG_CHECK_RETURN
|
116
|
-
struct ddog_CancellationToken *ddog_CancellationToken_clone(struct ddog_CancellationToken *
|
134
|
+
struct ddog_CancellationToken *ddog_CancellationToken_clone(const struct ddog_CancellationToken *token);
|
117
135
|
|
118
136
|
/**
|
119
137
|
* Cancel send that is being called in another thread with the given token.
|
120
138
|
* Note that cancellation is a terminal state; cancelling a token more than once does nothing.
|
121
139
|
* Returns `true` if token was successfully cancelled.
|
122
140
|
*/
|
123
|
-
bool ddog_CancellationToken_cancel(struct ddog_CancellationToken *cancel);
|
141
|
+
bool ddog_CancellationToken_cancel(const struct ddog_CancellationToken *cancel);
|
124
142
|
|
125
|
-
|
126
|
-
|
127
|
-
|
143
|
+
/**
|
144
|
+
* # Safety
|
145
|
+
* The `token` can be null, but non-null values must be created by the Rust
|
146
|
+
* Global allocator and must have not been dropped already.
|
147
|
+
*/
|
148
|
+
void ddog_CancellationToken_drop(struct ddog_CancellationToken *token);
|
128
149
|
|
129
150
|
/**
|
130
151
|
* Create a new profile with the given sample types. Must call
|
@@ -147,19 +168,28 @@ struct ddog_prof_Profile *ddog_prof_Profile_new(struct ddog_prof_Slice_ValueType
|
|
147
168
|
|
148
169
|
/**
|
149
170
|
* # Safety
|
150
|
-
* The `profile`
|
151
|
-
*
|
171
|
+
* The `profile` can be null, but if non-null it must point to a valid object
|
172
|
+
* created by the Rust Global allocator.
|
152
173
|
*/
|
153
|
-
void ddog_prof_Profile_drop(struct ddog_prof_Profile *
|
174
|
+
void ddog_prof_Profile_drop(struct ddog_prof_Profile *profile);
|
154
175
|
|
155
176
|
/**
|
156
177
|
* # Safety
|
157
178
|
* The `profile` ptr must point to a valid Profile object created by this
|
158
179
|
* module. All pointers inside the `sample` need to be valid for the duration
|
159
180
|
* of this call.
|
181
|
+
*
|
182
|
+
* If successful, it returns the internal id of the sample (> 0) in the Ok
|
183
|
+
* variant. On error, it holds an error message in the error variant.
|
184
|
+
*
|
185
|
+
* # Safety
|
186
|
+
* The `profile` ptr must point to a valid Profile object created by this
|
187
|
+
* module.
|
160
188
|
* This call is _NOT_ thread-safe.
|
161
189
|
*/
|
162
|
-
|
190
|
+
DDOG_CHECK_RETURN
|
191
|
+
struct ddog_prof_Profile_AddResult ddog_prof_Profile_add(struct ddog_prof_Profile *profile,
|
192
|
+
struct ddog_prof_Sample sample);
|
163
193
|
|
164
194
|
/**
|
165
195
|
* Associate an endpoint to a given local root span id.
|
@@ -171,7 +201,7 @@ uint64_t ddog_prof_Profile_add(struct ddog_prof_Profile *profile, struct ddog_pr
|
|
171
201
|
*
|
172
202
|
* # Arguments
|
173
203
|
* * `profile` - a reference to the profile that will contain the samples.
|
174
|
-
* * `local_root_span_id`
|
204
|
+
* * `local_root_span_id`
|
175
205
|
* * `endpoint` - the value of the endpoint label to add for matching samples.
|
176
206
|
*
|
177
207
|
* # Safety
|
@@ -180,7 +210,7 @@ uint64_t ddog_prof_Profile_add(struct ddog_prof_Profile *profile, struct ddog_pr
|
|
180
210
|
* This call is _NOT_ thread-safe.
|
181
211
|
*/
|
182
212
|
void ddog_prof_Profile_set_endpoint(struct ddog_prof_Profile *profile,
|
183
|
-
|
213
|
+
uint64_t local_root_span_id,
|
184
214
|
ddog_CharSlice endpoint);
|
185
215
|
|
186
216
|
/**
|
@@ -200,8 +230,18 @@ void ddog_prof_Profile_add_endpoint_count(struct ddog_prof_Profile *profile,
|
|
200
230
|
int64_t value);
|
201
231
|
|
202
232
|
/**
|
203
|
-
*
|
204
|
-
*
|
233
|
+
* # Safety
|
234
|
+
* Only pass a reference to a valid `ddog_prof_EncodedProfile`, or null. A
|
235
|
+
* valid reference also means that it hasn't already been dropped (do not
|
236
|
+
* call this twice on the same object).
|
237
|
+
*/
|
238
|
+
void ddog_prof_EncodedProfile_drop(struct ddog_prof_EncodedProfile *profile);
|
239
|
+
|
240
|
+
/**
|
241
|
+
* Serialize the aggregated profile.
|
242
|
+
*
|
243
|
+
* Don't forget to clean up the ok with `ddog_prof_EncodedProfile_drop` or
|
244
|
+
* the error variant with `ddog_Error_drop` when you are done with them.
|
205
245
|
*
|
206
246
|
* # Arguments
|
207
247
|
* * `profile` - a reference to the profile being serialized.
|
@@ -218,13 +258,12 @@ void ddog_prof_Profile_add_endpoint_count(struct ddog_prof_Profile *profile,
|
|
218
258
|
* The `end_time` must be null or otherwise point to a valid TimeSpec object.
|
219
259
|
* The `duration_nanos` must be null or otherwise point to a valid i64.
|
220
260
|
*/
|
261
|
+
DDOG_CHECK_RETURN
|
221
262
|
struct ddog_prof_Profile_SerializeResult ddog_prof_Profile_serialize(const struct ddog_prof_Profile *profile,
|
222
263
|
const struct ddog_Timespec *end_time,
|
223
264
|
const int64_t *duration_nanos);
|
224
265
|
|
225
|
-
|
226
|
-
|
227
|
-
DDOG_CHECK_RETURN struct ddog_Slice_U8 ddog_Vec_U8_as_slice(const struct ddog_prof_Vec_U8 *vec);
|
266
|
+
DDOG_CHECK_RETURN struct ddog_Slice_U8 ddog_Vec_U8_as_slice(const struct ddog_Vec_U8 *vec);
|
228
267
|
|
229
268
|
/**
|
230
269
|
* Resets all data in `profile` except the sample types and period. Returns
|
Binary file
|
@@ -10,7 +10,7 @@ includedir=${prefix}/include
|
|
10
10
|
|
11
11
|
Name: datadog_profiling
|
12
12
|
Description: Contains common code used to implement Datadog's Continuous Profilers. (Dynamic linking variant, sets rpath)
|
13
|
-
Version:
|
13
|
+
Version: 2.0.0
|
14
14
|
Requires:
|
15
15
|
Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
|
16
16
|
Libs.private:
|