libdatadog 1.0.1.1.0-aarch64-linux → 2.0.0.1.0-aarch64-linux
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|