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.
- checksums.yaml +4 -4
- data/lib/libdatadog/version.rb +1 -1
- data/vendor/libdatadog-3.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +13495 -0
- 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
- 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
- data/vendor/libdatadog-3.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- 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
- data/vendor/libdatadog-3.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +13495 -0
- 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
- 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
- data/vendor/libdatadog-3.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- 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
- data/vendor/libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +13495 -0
- 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
- 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
- data/vendor/libdatadog-3.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- 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
- data/vendor/libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +13495 -0
- 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
- 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
- data/vendor/libdatadog-3.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- 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
- metadata +33 -33
- data/vendor/libdatadog-2.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +0 -1183
- data/vendor/libdatadog-2.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- data/vendor/libdatadog-2.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +0 -1183
- data/vendor/libdatadog-2.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- data/vendor/libdatadog-2.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +0 -1183
- data/vendor/libdatadog-2.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- data/vendor/libdatadog-2.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +0 -1183
- data/vendor/libdatadog-2.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
- /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
- /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
- /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
- /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
- /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
- /data/vendor/{libdatadog-2.0.0 → libdatadog-3.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
- /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`, `
|
64
|
-
* valid objects created by this module
|
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 *
|
72
|
-
const struct ddog_prof_ProfiledEndpointsStats *
|
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
|
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: 3.0.0
|
14
14
|
Requires:
|
15
15
|
Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
|
16
16
|
Libs.private:
|