libdatadog 2.0.0.1.0 → 3.0.0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/vendor/libdatadog-3.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +13495 -0
  4. data/vendor/{libdatadog-2.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-3.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/common.h +26 -0
  5. data/vendor/{libdatadog-2.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-3.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/profiling.h +66 -4
  6. data/vendor/libdatadog-3.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  7. data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  8. data/vendor/libdatadog-3.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +13495 -0
  9. data/vendor/{libdatadog-2.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-3.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/common.h +26 -0
  10. data/vendor/{libdatadog-2.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-3.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/profiling.h +66 -4
  11. data/vendor/libdatadog-3.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  12. data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  13. data/vendor/libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +13495 -0
  14. data/vendor/{libdatadog-2.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/include/datadog/common.h +26 -0
  15. data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h +66 -4
  16. data/vendor/libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  17. data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  18. data/vendor/libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +13495 -0
  19. data/vendor/{libdatadog-2.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/common.h +26 -0
  20. data/vendor/{libdatadog-2.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/profiling.h +66 -4
  21. data/vendor/libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  22. data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  23. metadata +33 -33
  24. data/vendor/libdatadog-2.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +0 -1183
  25. data/vendor/libdatadog-2.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  26. data/vendor/libdatadog-2.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +0 -1183
  27. data/vendor/libdatadog-2.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  28. data/vendor/libdatadog-2.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +0 -1183
  29. data/vendor/libdatadog-2.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  30. data/vendor/libdatadog-2.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +0 -1183
  31. data/vendor/libdatadog-2.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  32. /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
  33. /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
  34. /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
  35. /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
  36. /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
  37. /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
  38. /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
  39. /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -0
@@ -429,6 +429,32 @@ typedef struct ddog_prof_Sample {
429
429
  struct ddog_prof_Slice_Label labels;
430
430
  } ddog_prof_Sample;
431
431
 
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
+ /**
450
+ * Remember, the data inside of each member is potentially coming from FFI,
451
+ * so every operation on it is unsafe!
452
+ */
453
+ typedef struct ddog_prof_Slice_Usize {
454
+ const uintptr_t *ptr;
455
+ uintptr_t len;
456
+ } ddog_prof_Slice_Usize;
457
+
432
458
  typedef struct ddog_prof_EncodedProfile {
433
459
  struct ddog_Timespec start;
434
460
  struct ddog_Timespec end;
@@ -59,17 +59,25 @@ void ddog_prof_Exporter_drop(struct ddog_prof_Exporter *exporter);
59
59
  * If successful, builds a `ddog_prof_Exporter_Request` object based on the
60
60
  * profile data supplied. If unsuccessful, it returns an error message.
61
61
  *
62
+ * For details on the `optional_internal_metadata_json`, please reference the Datadog-internal
63
+ * "RFC: Attaching internal metadata to pprof profiles".
64
+ * If you use this parameter, please update the RFC with your use-case, so we can keep track of how this
65
+ * is getting used.
66
+ *
62
67
  * # Safety
63
- * The `exporter`, `additional_stats`, and `endpoint_stats` args should be
64
- * valid objects created by this module, except NULL is allowed.
68
+ * The `exporter`, `optional_additional_stats`, and `optional_endpoint_stats` args should be
69
+ * valid objects created by this module.
70
+ * NULL is allowed for `optional_additional_tags`, `optional_endpoints_stats` and
71
+ * `optional_internal_metadata_json`.
65
72
  */
66
73
  DDOG_CHECK_RETURN
67
74
  struct ddog_prof_Exporter_Request_BuildResult ddog_prof_Exporter_Request_build(struct ddog_prof_Exporter *exporter,
68
75
  struct ddog_Timespec start,
69
76
  struct ddog_Timespec end,
70
77
  struct ddog_prof_Exporter_Slice_File files,
71
- const struct ddog_Vec_Tag *additional_tags,
72
- const struct ddog_prof_ProfiledEndpointsStats *endpoints_stats,
78
+ const struct ddog_Vec_Tag *optional_additional_tags,
79
+ const struct ddog_prof_ProfiledEndpointsStats *optional_endpoints_stats,
80
+ const ddog_CharSlice *optional_internal_metadata_json,
73
81
  uint64_t timeout_ms);
74
82
 
75
83
  /**
@@ -229,6 +237,60 @@ void ddog_prof_Profile_add_endpoint_count(struct ddog_prof_Profile *profile,
229
237
  ddog_CharSlice endpoint,
230
238
  int64_t value);
231
239
 
240
+ /**
241
+ * Add a poisson-based upscaling rule which will be use to adjust values and make them
242
+ * closer to reality.
243
+ *
244
+ * # Arguments
245
+ * * `profile` - a reference to the profile that will contain the samples.
246
+ * * `offset_values` - offset of the values
247
+ * * `label_name` - name of the label used to identify sample(s)
248
+ * * `label_value` - value of the label used to identify sample(s)
249
+ * * `sum_value_offset` - offset of the value used as a sum (compute the average with `count_value_offset`)
250
+ * * `count_value_offset` - offset of the value used as a count (compute the average with `sum_value_offset`)
251
+ * * `sampling_distance` - this is the threshold for this sampling window. This value must not be equal to 0
252
+ *
253
+ * # Safety
254
+ * This function must be called before serialize and must not be called after.
255
+ * The `profile` ptr must point to a valid Profile object created by this
256
+ * module.
257
+ * This call is _NOT_ thread-safe.
258
+ */
259
+ 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);
267
+
268
+ /**
269
+ * Add a proportional-based upscaling rule which will be use to adjust values and make them
270
+ * closer to reality.
271
+ *
272
+ * # Arguments
273
+ * * `profile` - a reference to the profile that will contain the samples.
274
+ * * `offset_values` - offset of the values
275
+ * * `label_name` - name of the label used to identify sample(s)
276
+ * * `label_value` - value of the label used to identify sample(s)
277
+ * * `total_sampled` - number of sampled event (found in the pprof). This value must not be equal to 0
278
+ * * `total_real` - number of events the profiler actually witnessed. This value must not be equal to 0
279
+ *
280
+ * # Safety
281
+ * This function must be called before serialize and must not be called after.
282
+ * The `profile` ptr must point to a valid Profile object created by this
283
+ * module.
284
+ * This call is _NOT_ thread-safe.
285
+ */
286
+ 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);
293
+
232
294
  /**
233
295
  * # Safety
234
296
  * Only pass a reference to a valid `ddog_prof_EncodedProfile`, or null. A
@@ -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: 2.0.0
13
+ Version: 3.0.0
14
14
  Requires:
15
15
  Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
16
16
  Libs.private: