libdatadog 2.0.0.1.0-x86_64-linux → 3.0.0.1.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.
Files changed (21) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/vendor/libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-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/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/include/datadog/common.h +26 -0
  5. 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
  6. data/vendor/libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  7. 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
  8. data/vendor/libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +13495 -0
  9. 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
  10. data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/profiling.h +66 -4
  11. data/vendor/libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  12. 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
  13. metadata +19 -19
  14. data/vendor/libdatadog-2.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +0 -1183
  15. data/vendor/libdatadog-2.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  16. data/vendor/libdatadog-2.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +0 -1183
  17. data/vendor/libdatadog-2.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  18. /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
  19. /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
  20. /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
  21. /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: