libdatadog 3.0.0.1.0-x86_64-linux → 4.0.0.1.0-x86_64-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (19) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/vendor/{libdatadog-3.0.0 → libdatadog-4.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +9795 -5569
  4. data/vendor/{libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-4.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/include/datadog/common.h +39 -65
  5. data/vendor/{libdatadog-3.0.0 → libdatadog-4.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h +34 -31
  6. data/vendor/libdatadog-4.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  7. data/vendor/{libdatadog-3.0.0 → libdatadog-4.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  8. data/vendor/{libdatadog-3.0.0 → libdatadog-4.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +9795 -5569
  9. data/vendor/{libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-4.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/common.h +39 -65
  10. data/vendor/{libdatadog-3.0.0 → libdatadog-4.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/profiling.h +34 -31
  11. data/vendor/libdatadog-4.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  12. data/vendor/{libdatadog-3.0.0 → libdatadog-4.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  13. metadata +16 -16
  14. data/vendor/libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  15. data/vendor/libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  16. /data/vendor/{libdatadog-3.0.0 → libdatadog-4.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
  17. /data/vendor/{libdatadog-3.0.0 → libdatadog-4.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
  18. /data/vendor/{libdatadog-3.0.0 → libdatadog-4.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
  19. /data/vendor/{libdatadog-3.0.0 → libdatadog-4.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -0
@@ -40,6 +40,8 @@
40
40
  # define DDOG_CHECK_RETURN
41
41
  #endif
42
42
 
43
+ typedef struct ddog_Endpoint ddog_Endpoint;
44
+
43
45
  typedef struct ddog_Tag ddog_Tag;
44
46
 
45
47
  /**
@@ -107,8 +109,6 @@ typedef struct ddog_Vec_Tag_ParseResult {
107
109
 
108
110
  typedef struct ddog_CancellationToken ddog_CancellationToken;
109
111
 
110
- typedef struct ddog_prof_Profile ddog_prof_Profile;
111
-
112
112
  typedef struct ddog_prof_Exporter ddog_prof_Exporter;
113
113
 
114
114
  typedef struct ddog_prof_ProfiledEndpointsStats ddog_prof_ProfiledEndpointsStats;
@@ -226,6 +226,14 @@ typedef struct ddog_prof_Exporter_SendResult {
226
226
  };
227
227
  } ddog_prof_Exporter_SendResult;
228
228
 
229
+ /**
230
+ * Represents a profile. Do not access its member for any reason, only use
231
+ * the C API functions on this struct.
232
+ */
233
+ typedef struct ddog_prof_Profile {
234
+ struct ddog_prof_Profile *inner;
235
+ } ddog_prof_Profile;
236
+
229
237
  typedef struct ddog_prof_ValueType {
230
238
  ddog_CharSlice type_;
231
239
  ddog_CharSlice unit;
@@ -245,22 +253,30 @@ typedef struct ddog_prof_Period {
245
253
  int64_t value;
246
254
  } ddog_prof_Period;
247
255
 
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;
256
+ /**
257
+ * A generic result type for when a profiling operation may fail, but there's
258
+ * nothing to return in the case of success.
259
+ */
260
+ typedef enum ddog_prof_Profile_Result_Tag {
261
+ DDOG_PROF_PROFILE_RESULT_OK,
262
+ DDOG_PROF_PROFILE_RESULT_ERR,
263
+ } ddog_prof_Profile_Result_Tag;
252
264
 
253
- typedef struct ddog_prof_Profile_AddResult {
254
- ddog_prof_Profile_AddResult_Tag tag;
265
+ typedef struct ddog_prof_Profile_Result {
266
+ ddog_prof_Profile_Result_Tag tag;
255
267
  union {
256
268
  struct {
257
- uint64_t ok;
269
+ /**
270
+ * Do not use the value of Ok. This value only exists to overcome
271
+ * Rust -> C code generation.
272
+ */
273
+ bool ok;
258
274
  };
259
275
  struct {
260
276
  struct ddog_Error err;
261
277
  };
262
278
  };
263
- } ddog_prof_Profile_AddResult;
279
+ } ddog_prof_Profile_Result;
264
280
 
265
281
  typedef struct ddog_prof_Mapping {
266
282
  /**
@@ -309,31 +325,12 @@ typedef struct ddog_prof_Function {
309
325
  int64_t start_line;
310
326
  } ddog_prof_Function;
311
327
 
312
- typedef struct ddog_prof_Line {
313
- /**
314
- * The corresponding profile.Function for this line.
315
- */
316
- struct ddog_prof_Function function;
317
- /**
318
- * Line number in source code.
319
- */
320
- int64_t line;
321
- } ddog_prof_Line;
322
-
323
- /**
324
- * Remember, the data inside of each member is potentially coming from FFI,
325
- * so every operation on it is unsafe!
326
- */
327
- typedef struct ddog_prof_Slice_Line {
328
- const struct ddog_prof_Line *ptr;
329
- uintptr_t len;
330
- } ddog_prof_Slice_Line;
331
-
332
328
  typedef struct ddog_prof_Location {
333
329
  /**
334
330
  * todo: how to handle unknown mapping?
335
331
  */
336
332
  struct ddog_prof_Mapping mapping;
333
+ struct ddog_prof_Function function;
337
334
  /**
338
335
  * The instruction address for this location, if available. It
339
336
  * should be within [Mapping.memory_start...Mapping.memory_limit]
@@ -342,24 +339,7 @@ typedef struct ddog_prof_Location {
342
339
  * the beginning of the instruction if necessary.
343
340
  */
344
341
  uint64_t address;
345
- /**
346
- * Multiple line indicates this location has inlined functions,
347
- * where the last entry represents the caller into which the
348
- * preceding entries were inlined.
349
- *
350
- * E.g., if memcpy() is inlined into printf:
351
- * line[0].function_name == "memcpy"
352
- * line[1].function_name == "printf"
353
- */
354
- struct ddog_prof_Slice_Line lines;
355
- /**
356
- * Provides an indication that multiple symbols map to this location's
357
- * address, for example due to identical code folding by the linker. In that
358
- * case the line information above represents one of the multiple
359
- * symbols. This field must be recomputed when the symbolization state of the
360
- * profile changes.
361
- */
362
- bool is_folded;
342
+ int64_t line;
363
343
  } ddog_prof_Location;
364
344
 
365
345
  /**
@@ -429,23 +409,6 @@ typedef struct ddog_prof_Sample {
429
409
  struct ddog_prof_Slice_Label labels;
430
410
  } ddog_prof_Sample;
431
411
 
432
- typedef enum ddog_prof_Profile_UpscalingRuleAddResult_Tag {
433
- DDOG_PROF_PROFILE_UPSCALING_RULE_ADD_RESULT_OK,
434
- DDOG_PROF_PROFILE_UPSCALING_RULE_ADD_RESULT_ERR,
435
- } ddog_prof_Profile_UpscalingRuleAddResult_Tag;
436
-
437
- typedef struct ddog_prof_Profile_UpscalingRuleAddResult {
438
- ddog_prof_Profile_UpscalingRuleAddResult_Tag tag;
439
- union {
440
- struct {
441
- bool ok;
442
- };
443
- struct {
444
- struct ddog_Error err;
445
- };
446
- };
447
- } ddog_prof_Profile_UpscalingRuleAddResult;
448
-
449
412
  /**
450
413
  * Remember, the data inside of each member is potentially coming from FFI,
451
414
  * so every operation on it is unsafe!
@@ -493,6 +456,17 @@ void ddog_Error_drop(struct ddog_Error *error);
493
456
  */
494
457
  ddog_CharSlice ddog_Error_message(const struct ddog_Error *error);
495
458
 
459
+ DDOG_CHECK_RETURN struct ddog_Endpoint *ddog_endpoint_from_url(ddog_CharSlice url);
460
+
461
+ DDOG_CHECK_RETURN struct ddog_Endpoint *ddog_endpoint_from_api_key(ddog_CharSlice api_key);
462
+
463
+ DDOG_CHECK_RETURN
464
+ struct ddog_Error *ddog_endpoint_from_api_key_and_site(ddog_CharSlice api_key,
465
+ ddog_CharSlice site,
466
+ struct ddog_Endpoint **endpoint);
467
+
468
+ void ddog_endpoint_drop(struct ddog_Endpoint*);
469
+
496
470
  DDOG_CHECK_RETURN struct ddog_Vec_Tag ddog_Vec_Tag_new(void);
497
471
 
498
472
  void ddog_Vec_Tag_drop(struct ddog_Vec_Tag);
@@ -170,14 +170,14 @@ void ddog_CancellationToken_drop(struct ddog_CancellationToken *token);
170
170
  * and must have the correct number of elements for the slice.
171
171
  */
172
172
  DDOG_CHECK_RETURN
173
- struct ddog_prof_Profile *ddog_prof_Profile_new(struct ddog_prof_Slice_ValueType sample_types,
174
- const struct ddog_prof_Period *period,
175
- const struct ddog_Timespec *start_time);
173
+ struct ddog_prof_Profile ddog_prof_Profile_new(struct ddog_prof_Slice_ValueType sample_types,
174
+ const struct ddog_prof_Period *period,
175
+ const struct ddog_Timespec *start_time);
176
176
 
177
177
  /**
178
178
  * # Safety
179
- * The `profile` can be null, but if non-null it must point to a valid object
180
- * created by the Rust Global allocator.
179
+ * The `profile` can be null, but if non-null it must point to a Profile
180
+ * made by this module, which has not previously been dropped.
181
181
  */
182
182
  void ddog_prof_Profile_drop(struct ddog_prof_Profile *profile);
183
183
 
@@ -187,8 +187,8 @@ void ddog_prof_Profile_drop(struct ddog_prof_Profile *profile);
187
187
  * module. All pointers inside the `sample` need to be valid for the duration
188
188
  * of this call.
189
189
  *
190
- * If successful, it returns the internal id of the sample (> 0) in the Ok
191
- * variant. On error, it holds an error message in the error variant.
190
+ * If successful, it returns the Ok variant.
191
+ * On error, it holds an error message in the error variant.
192
192
  *
193
193
  * # Safety
194
194
  * The `profile` ptr must point to a valid Profile object created by this
@@ -196,8 +196,8 @@ void ddog_prof_Profile_drop(struct ddog_prof_Profile *profile);
196
196
  * This call is _NOT_ thread-safe.
197
197
  */
198
198
  DDOG_CHECK_RETURN
199
- struct ddog_prof_Profile_AddResult ddog_prof_Profile_add(struct ddog_prof_Profile *profile,
200
- struct ddog_prof_Sample sample);
199
+ struct ddog_prof_Profile_Result ddog_prof_Profile_add(struct ddog_prof_Profile *profile,
200
+ struct ddog_prof_Sample sample);
201
201
 
202
202
  /**
203
203
  * Associate an endpoint to a given local root span id.
@@ -217,9 +217,10 @@ struct ddog_prof_Profile_AddResult ddog_prof_Profile_add(struct ddog_prof_Profil
217
217
  * module.
218
218
  * This call is _NOT_ thread-safe.
219
219
  */
220
- void ddog_prof_Profile_set_endpoint(struct ddog_prof_Profile *profile,
221
- uint64_t local_root_span_id,
222
- ddog_CharSlice endpoint);
220
+ DDOG_CHECK_RETURN
221
+ struct ddog_prof_Profile_Result ddog_prof_Profile_set_endpoint(struct ddog_prof_Profile *profile,
222
+ uint64_t local_root_span_id,
223
+ ddog_CharSlice endpoint);
223
224
 
224
225
  /**
225
226
  * Count the number of times an endpoint has been seen.
@@ -233,9 +234,10 @@ void ddog_prof_Profile_set_endpoint(struct ddog_prof_Profile *profile,
233
234
  * module.
234
235
  * This call is _NOT_ thread-safe.
235
236
  */
236
- void ddog_prof_Profile_add_endpoint_count(struct ddog_prof_Profile *profile,
237
- ddog_CharSlice endpoint,
238
- int64_t value);
237
+ DDOG_CHECK_RETURN
238
+ struct ddog_prof_Profile_Result ddog_prof_Profile_add_endpoint_count(struct ddog_prof_Profile *profile,
239
+ ddog_CharSlice endpoint,
240
+ int64_t value);
239
241
 
240
242
  /**
241
243
  * Add a poisson-based upscaling rule which will be use to adjust values and make them
@@ -257,13 +259,13 @@ void ddog_prof_Profile_add_endpoint_count(struct ddog_prof_Profile *profile,
257
259
  * This call is _NOT_ thread-safe.
258
260
  */
259
261
  DDOG_CHECK_RETURN
260
- struct ddog_prof_Profile_UpscalingRuleAddResult ddog_prof_Profile_add_upscaling_rule_poisson(struct ddog_prof_Profile *profile,
261
- struct ddog_prof_Slice_Usize offset_values,
262
- ddog_CharSlice label_name,
263
- ddog_CharSlice label_value,
264
- uintptr_t sum_value_offset,
265
- uintptr_t count_value_offset,
266
- uint64_t sampling_distance);
262
+ struct ddog_prof_Profile_Result ddog_prof_Profile_add_upscaling_rule_poisson(struct ddog_prof_Profile *profile,
263
+ struct ddog_prof_Slice_Usize offset_values,
264
+ ddog_CharSlice label_name,
265
+ ddog_CharSlice label_value,
266
+ uintptr_t sum_value_offset,
267
+ uintptr_t count_value_offset,
268
+ uint64_t sampling_distance);
267
269
 
268
270
  /**
269
271
  * Add a proportional-based upscaling rule which will be use to adjust values and make them
@@ -284,12 +286,12 @@ struct ddog_prof_Profile_UpscalingRuleAddResult ddog_prof_Profile_add_upscaling_
284
286
  * This call is _NOT_ thread-safe.
285
287
  */
286
288
  DDOG_CHECK_RETURN
287
- struct ddog_prof_Profile_UpscalingRuleAddResult ddog_prof_Profile_add_upscaling_rule_proportional(struct ddog_prof_Profile *profile,
288
- struct ddog_prof_Slice_Usize offset_values,
289
- ddog_CharSlice label_name,
290
- ddog_CharSlice label_value,
291
- uint64_t total_sampled,
292
- uint64_t total_real);
289
+ struct ddog_prof_Profile_Result ddog_prof_Profile_add_upscaling_rule_proportional(struct ddog_prof_Profile *profile,
290
+ struct ddog_prof_Slice_Usize offset_values,
291
+ ddog_CharSlice label_name,
292
+ ddog_CharSlice label_value,
293
+ uint64_t total_sampled,
294
+ uint64_t total_real);
293
295
 
294
296
  /**
295
297
  * # Safety
@@ -321,7 +323,7 @@ void ddog_prof_EncodedProfile_drop(struct ddog_prof_EncodedProfile *profile);
321
323
  * The `duration_nanos` must be null or otherwise point to a valid i64.
322
324
  */
323
325
  DDOG_CHECK_RETURN
324
- struct ddog_prof_Profile_SerializeResult ddog_prof_Profile_serialize(const struct ddog_prof_Profile *profile,
326
+ struct ddog_prof_Profile_SerializeResult ddog_prof_Profile_serialize(struct ddog_prof_Profile *profile,
325
327
  const struct ddog_Timespec *end_time,
326
328
  const int64_t *duration_nanos);
327
329
 
@@ -341,7 +343,8 @@ DDOG_CHECK_RETURN struct ddog_Slice_U8 ddog_Vec_U8_as_slice(const struct ddog_Ve
341
343
  * can be called across an FFI boundary, the compiler cannot enforce this.
342
344
  * If `time` is not null, it must point to a valid Timespec object.
343
345
  */
344
- bool ddog_prof_Profile_reset(struct ddog_prof_Profile *profile,
345
- const struct ddog_Timespec *start_time);
346
+ DDOG_CHECK_RETURN
347
+ struct ddog_prof_Profile_Result ddog_prof_Profile_reset(struct ddog_prof_Profile *profile,
348
+ const struct ddog_Timespec *start_time);
346
349
 
347
350
  #endif /* DDOG_PROFILING_H */
@@ -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: 3.0.0
13
+ Version: 4.0.0
14
14
  Requires:
15
15
  Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
16
16
  Libs.private:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libdatadog
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.1.0
4
+ version: 4.0.0.1.0
5
5
  platform: x86_64-linux
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-05 00:00:00.000000000 Z
11
+ date: 2023-09-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: libdatadog is a Rust-based utility library for Datadog's ddtrace gem.
14
14
  email:
@@ -19,20 +19,20 @@ extra_rdoc_files: []
19
19
  files:
20
20
  - lib/libdatadog.rb
21
21
  - lib/libdatadog/version.rb
22
- - vendor/libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE
23
- - vendor/libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml
24
- - vendor/libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE
25
- - vendor/libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/common.h
26
- - vendor/libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/profiling.h
27
- - vendor/libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so
28
- - vendor/libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc
29
- - vendor/libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE
30
- - vendor/libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml
31
- - vendor/libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE
32
- - vendor/libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h
33
- - vendor/libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h
34
- - vendor/libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so
35
- - vendor/libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc
22
+ - vendor/libdatadog-4.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE
23
+ - vendor/libdatadog-4.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml
24
+ - vendor/libdatadog-4.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE
25
+ - vendor/libdatadog-4.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/common.h
26
+ - vendor/libdatadog-4.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/profiling.h
27
+ - vendor/libdatadog-4.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so
28
+ - vendor/libdatadog-4.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc
29
+ - vendor/libdatadog-4.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE
30
+ - vendor/libdatadog-4.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml
31
+ - vendor/libdatadog-4.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE
32
+ - vendor/libdatadog-4.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h
33
+ - vendor/libdatadog-4.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h
34
+ - vendor/libdatadog-4.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so
35
+ - vendor/libdatadog-4.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc
36
36
  homepage: https://docs.datadoghq.com/tracing/
37
37
  licenses:
38
38
  - Apache-2.0