libdatadog 6.0.0.1.0-x86_64-linux → 7.0.0.1.0-x86_64-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/lib/libdatadog.rb +40 -16
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +15459 -6284
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/libdatadog-7.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h +895 -0
- data/vendor/{libdatadog-6.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-7.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/include/datadog/common.h +135 -20
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h +54 -38
- data/vendor/libdatadog-7.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h +290 -0
- data/vendor/libdatadog-7.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +2 -4
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +15459 -6284
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/libdatadog-7.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/blazesym.h +895 -0
- data/vendor/{libdatadog-6.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-7.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/common.h +135 -20
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/profiling.h +54 -38
- data/vendor/libdatadog-7.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/telemetry.h +290 -0
- data/vendor/libdatadog-7.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +2 -4
- metadata +22 -18
- data/vendor/libdatadog-6.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- data/vendor/libdatadog-6.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- /data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
- /data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
- /data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
- /data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -0
@@ -1,5 +1,6 @@
|
|
1
|
-
//
|
2
|
-
//
|
1
|
+
// Copyright 2021-Present Datadog, Inc. https://www.datadoghq.com/
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
3
|
+
|
3
4
|
|
4
5
|
#ifndef DDOG_COMMON_H
|
5
6
|
#define DDOG_COMMON_H
|
@@ -10,13 +11,11 @@
|
|
10
11
|
#include <stddef.h>
|
11
12
|
#include <stdint.h>
|
12
13
|
|
13
|
-
#if defined(_MSC_VER)
|
14
|
-
#define DDOG_CHARSLICE_C(string) \
|
15
|
-
/* NOTE: Compilation fails if you pass in a char* instead of a literal */ {.ptr = "" string, .len = sizeof(string) - 1}
|
16
|
-
#else
|
17
14
|
#define DDOG_CHARSLICE_C(string) \
|
18
15
|
/* NOTE: Compilation fails if you pass in a char* instead of a literal */ ((ddog_CharSlice){ .ptr = "" string, .len = sizeof(string) - 1 })
|
19
|
-
|
16
|
+
|
17
|
+
#define DDOG_CHARSLICE_C_BARE(string) \
|
18
|
+
/* NOTE: Compilation fails if you pass in a char* instead of a literal */ { .ptr = "" string, .len = sizeof(string) - 1 }
|
20
19
|
|
21
20
|
#if defined __GNUC__
|
22
21
|
# define DDOG_GNUC_VERSION(major) __GNUC__ >= major
|
@@ -116,10 +115,10 @@ typedef struct ddog_Vec_Tag_ParseResult {
|
|
116
115
|
typedef enum ddog_prof_CrashtrackerResolveFrames {
|
117
116
|
DDOG_PROF_CRASHTRACKER_RESOLVE_FRAMES_NEVER,
|
118
117
|
/**
|
119
|
-
* Resolving frames is experimental, and can fail/crash
|
118
|
+
* Resolving frames in process is experimental, and can fail/crash
|
120
119
|
*/
|
121
120
|
DDOG_PROF_CRASHTRACKER_RESOLVE_FRAMES_EXPERIMENTAL_IN_PROCESS,
|
122
|
-
|
121
|
+
DDOG_PROF_CRASHTRACKER_RESOLVE_FRAMES_IN_RECEIVER,
|
123
122
|
} ddog_prof_CrashtrackerResolveFrames;
|
124
123
|
|
125
124
|
/**
|
@@ -177,32 +176,36 @@ typedef struct ddog_prof_Profile_Result {
|
|
177
176
|
};
|
178
177
|
} ddog_prof_Profile_Result;
|
179
178
|
|
180
|
-
typedef enum
|
181
|
-
|
182
|
-
|
183
|
-
}
|
179
|
+
typedef enum ddog_prof_Endpoint_Tag {
|
180
|
+
DDOG_PROF_ENDPOINT_AGENT,
|
181
|
+
DDOG_PROF_ENDPOINT_AGENTLESS,
|
182
|
+
} ddog_prof_Endpoint_Tag;
|
184
183
|
|
185
|
-
typedef struct
|
184
|
+
typedef struct ddog_prof_Endpoint_ddog_prof_Agentless_Body {
|
186
185
|
ddog_CharSlice _0;
|
187
186
|
ddog_CharSlice _1;
|
188
|
-
}
|
187
|
+
} ddog_prof_Endpoint_ddog_prof_Agentless_Body;
|
189
188
|
|
190
|
-
typedef struct
|
191
|
-
|
189
|
+
typedef struct ddog_prof_Endpoint {
|
190
|
+
ddog_prof_Endpoint_Tag tag;
|
192
191
|
union {
|
193
192
|
struct {
|
194
193
|
ddog_CharSlice agent;
|
195
194
|
};
|
196
|
-
|
195
|
+
ddog_prof_Endpoint_ddog_prof_Agentless_Body AGENTLESS;
|
197
196
|
};
|
198
|
-
}
|
197
|
+
} ddog_prof_Endpoint;
|
199
198
|
|
200
199
|
typedef struct ddog_prof_CrashtrackerConfiguration {
|
200
|
+
/**
|
201
|
+
* Should the crashtracker attempt to collect a stacktrace for the crash
|
202
|
+
*/
|
203
|
+
bool collect_stacktrace;
|
201
204
|
bool create_alt_stack;
|
202
205
|
/**
|
203
206
|
* The endpoint to send the crash repor to (can be a file://)
|
204
207
|
*/
|
205
|
-
struct
|
208
|
+
struct ddog_prof_Endpoint endpoint;
|
206
209
|
/**
|
207
210
|
* Optional filename to forward stderr to (useful for logging/debugging)
|
208
211
|
*/
|
@@ -551,6 +554,114 @@ typedef struct ddog_prof_Profile_SerializeResult {
|
|
551
554
|
};
|
552
555
|
} ddog_prof_Profile_SerializeResult;
|
553
556
|
|
557
|
+
typedef enum ddog_ConfigurationOrigin {
|
558
|
+
DDOG_CONFIGURATION_ORIGIN_ENV_VAR,
|
559
|
+
DDOG_CONFIGURATION_ORIGIN_CODE,
|
560
|
+
DDOG_CONFIGURATION_ORIGIN_DD_CONFIG,
|
561
|
+
DDOG_CONFIGURATION_ORIGIN_REMOTE_CONFIG,
|
562
|
+
DDOG_CONFIGURATION_ORIGIN_DEFAULT,
|
563
|
+
} ddog_ConfigurationOrigin;
|
564
|
+
|
565
|
+
typedef enum ddog_LogLevel {
|
566
|
+
DDOG_LOG_LEVEL_ERROR,
|
567
|
+
DDOG_LOG_LEVEL_WARN,
|
568
|
+
DDOG_LOG_LEVEL_DEBUG,
|
569
|
+
} ddog_LogLevel;
|
570
|
+
|
571
|
+
typedef enum ddog_MetricNamespace {
|
572
|
+
DDOG_METRIC_NAMESPACE_TRACERS,
|
573
|
+
DDOG_METRIC_NAMESPACE_PROFILERS,
|
574
|
+
DDOG_METRIC_NAMESPACE_RUM,
|
575
|
+
DDOG_METRIC_NAMESPACE_APPSEC,
|
576
|
+
DDOG_METRIC_NAMESPACE_IDE_PLUGINS,
|
577
|
+
DDOG_METRIC_NAMESPACE_LIVE_DEBUGGER,
|
578
|
+
DDOG_METRIC_NAMESPACE_IAST,
|
579
|
+
DDOG_METRIC_NAMESPACE_GENERAL,
|
580
|
+
DDOG_METRIC_NAMESPACE_TELEMETRY,
|
581
|
+
DDOG_METRIC_NAMESPACE_APM,
|
582
|
+
DDOG_METRIC_NAMESPACE_SIDECAR,
|
583
|
+
} ddog_MetricNamespace;
|
584
|
+
|
585
|
+
typedef enum ddog_MetricType {
|
586
|
+
DDOG_METRIC_TYPE_GAUGE,
|
587
|
+
DDOG_METRIC_TYPE_COUNT,
|
588
|
+
DDOG_METRIC_TYPE_DISTRIBUTION,
|
589
|
+
} ddog_MetricType;
|
590
|
+
|
591
|
+
typedef enum ddog_TelemetryWorkerBuilderBoolProperty {
|
592
|
+
DDOG_TELEMETRY_WORKER_BUILDER_BOOL_PROPERTY_CONFIG_TELEMETRY_DEBUG_LOGGING_ENABLED,
|
593
|
+
} ddog_TelemetryWorkerBuilderBoolProperty;
|
594
|
+
|
595
|
+
typedef enum ddog_TelemetryWorkerBuilderEndpointProperty {
|
596
|
+
DDOG_TELEMETRY_WORKER_BUILDER_ENDPOINT_PROPERTY_CONFIG_ENDPOINT,
|
597
|
+
} ddog_TelemetryWorkerBuilderEndpointProperty;
|
598
|
+
|
599
|
+
typedef enum ddog_TelemetryWorkerBuilderStrProperty {
|
600
|
+
DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_SERVICE_VERSION,
|
601
|
+
DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_ENV,
|
602
|
+
DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_NAME,
|
603
|
+
DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_VERSION,
|
604
|
+
DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_APPLICATION_RUNTIME_PATCHES,
|
605
|
+
DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_CONTAINER_ID,
|
606
|
+
DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_OS,
|
607
|
+
DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_NAME,
|
608
|
+
DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_RELEASE,
|
609
|
+
DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_HOST_KERNEL_VERSION,
|
610
|
+
DDOG_TELEMETRY_WORKER_BUILDER_STR_PROPERTY_RUNTIME_ID,
|
611
|
+
} ddog_TelemetryWorkerBuilderStrProperty;
|
612
|
+
|
613
|
+
typedef struct ddog_TelemetryWorkerBuilder ddog_TelemetryWorkerBuilder;
|
614
|
+
|
615
|
+
/**
|
616
|
+
* TelemetryWorkerHandle is a handle which allows interactions with the telemetry worker.
|
617
|
+
* The handle is safe to use across threads.
|
618
|
+
*
|
619
|
+
* The worker won't send data to the agent until you call `TelemetryWorkerHandle::send_start`
|
620
|
+
*
|
621
|
+
* To stop the worker, call `TelemetryWorkerHandle::send_stop` which trigger flush aynchronously
|
622
|
+
* then `TelemetryWorkerHandle::wait_for_shutdown`
|
623
|
+
*/
|
624
|
+
typedef struct ddog_TelemetryWorkerHandle ddog_TelemetryWorkerHandle;
|
625
|
+
|
626
|
+
typedef enum ddog_Option_VecU8_Tag {
|
627
|
+
DDOG_OPTION_VEC_U8_SOME_VEC_U8,
|
628
|
+
DDOG_OPTION_VEC_U8_NONE_VEC_U8,
|
629
|
+
} ddog_Option_VecU8_Tag;
|
630
|
+
|
631
|
+
typedef struct ddog_Option_VecU8 {
|
632
|
+
ddog_Option_VecU8_Tag tag;
|
633
|
+
union {
|
634
|
+
struct {
|
635
|
+
struct ddog_Vec_U8 some;
|
636
|
+
};
|
637
|
+
};
|
638
|
+
} ddog_Option_VecU8;
|
639
|
+
|
640
|
+
typedef struct ddog_Option_VecU8 ddog_MaybeError;
|
641
|
+
|
642
|
+
typedef enum ddog_Option_Bool_Tag {
|
643
|
+
DDOG_OPTION_BOOL_SOME_BOOL,
|
644
|
+
DDOG_OPTION_BOOL_NONE_BOOL,
|
645
|
+
} ddog_Option_Bool_Tag;
|
646
|
+
|
647
|
+
typedef struct ddog_Option_Bool {
|
648
|
+
ddog_Option_Bool_Tag tag;
|
649
|
+
union {
|
650
|
+
struct {
|
651
|
+
bool some;
|
652
|
+
};
|
653
|
+
};
|
654
|
+
} ddog_Option_Bool;
|
655
|
+
|
656
|
+
typedef struct ddog_ContextKey {
|
657
|
+
uint32_t _0;
|
658
|
+
enum ddog_MetricType _1;
|
659
|
+
} ddog_ContextKey;
|
660
|
+
|
661
|
+
#ifdef __cplusplus
|
662
|
+
extern "C" {
|
663
|
+
#endif // __cplusplus
|
664
|
+
|
554
665
|
/**
|
555
666
|
* # Safety
|
556
667
|
* Only pass null or a valid reference to a `ddog_Error`.
|
@@ -602,4 +713,8 @@ struct ddog_Vec_Tag_PushResult ddog_Vec_Tag_push(struct ddog_Vec_Tag *vec,
|
|
602
713
|
*/
|
603
714
|
DDOG_CHECK_RETURN struct ddog_Vec_Tag_ParseResult ddog_Vec_Tag_parse(ddog_CharSlice string);
|
604
715
|
|
716
|
+
#ifdef __cplusplus
|
717
|
+
} // extern "C"
|
718
|
+
#endif // __cplusplus
|
719
|
+
|
605
720
|
#endif /* DDOG_COMMON_H */
|
@@ -1,5 +1,6 @@
|
|
1
|
-
//
|
2
|
-
//
|
1
|
+
// Copyright 2021-Present Datadog, Inc. https://www.datadoghq.com/
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
3
|
+
|
3
4
|
|
4
5
|
#ifndef DDOG_PROFILING_H
|
5
6
|
#define DDOG_PROFILING_H
|
@@ -11,22 +12,26 @@
|
|
11
12
|
#include <stdint.h>
|
12
13
|
#include "common.h"
|
13
14
|
|
15
|
+
#ifdef __cplusplus
|
16
|
+
extern "C" {
|
17
|
+
#endif // __cplusplus
|
18
|
+
|
14
19
|
DDOG_CHECK_RETURN
|
15
|
-
struct ddog_prof_Profile_Result
|
20
|
+
struct ddog_prof_Profile_Result ddog_prof_Crashtracker_begin_profiling_op(enum ddog_prof_ProfilingOpTypes op);
|
16
21
|
|
17
22
|
DDOG_CHECK_RETURN
|
18
|
-
struct ddog_prof_Profile_Result
|
23
|
+
struct ddog_prof_Profile_Result ddog_prof_Crashtracker_end_profiling_op(enum ddog_prof_ProfilingOpTypes op);
|
19
24
|
|
20
|
-
DDOG_CHECK_RETURN struct ddog_prof_Profile_Result
|
25
|
+
DDOG_CHECK_RETURN struct ddog_prof_Profile_Result ddog_prof_Crashtracker_shutdown(void);
|
21
26
|
|
22
27
|
DDOG_CHECK_RETURN
|
23
|
-
struct ddog_prof_Profile_Result
|
28
|
+
struct ddog_prof_Profile_Result ddog_prof_Crashtracker_update_on_fork(struct ddog_prof_CrashtrackerConfiguration config,
|
24
29
|
struct ddog_prof_CrashtrackerMetadata metadata);
|
25
30
|
|
26
|
-
DDOG_CHECK_RETURN struct ddog_prof_Profile_Result
|
31
|
+
DDOG_CHECK_RETURN struct ddog_prof_Profile_Result ddog_prof_Crashtracker_receiver_entry_point(void);
|
27
32
|
|
28
33
|
DDOG_CHECK_RETURN
|
29
|
-
struct ddog_prof_Profile_Result
|
34
|
+
struct ddog_prof_Profile_Result ddog_prof_Crashtracker_init(struct ddog_prof_CrashtrackerConfiguration config,
|
30
35
|
struct ddog_prof_CrashtrackerMetadata metadata);
|
31
36
|
|
32
37
|
DDOG_CHECK_RETURN struct ddog_prof_Exporter_Slice_File ddog_prof_Exporter_Slice_File_empty(void);
|
@@ -36,7 +41,7 @@ DDOG_CHECK_RETURN struct ddog_prof_Exporter_Slice_File ddog_prof_Exporter_Slice_
|
|
36
41
|
* # Arguments
|
37
42
|
* * `base_url` - Contains a URL with scheme, host, and port e.g. "https://agent:8126/".
|
38
43
|
*/
|
39
|
-
struct
|
44
|
+
struct ddog_prof_Endpoint ddog_prof_Endpoint_agent(ddog_CharSlice base_url);
|
40
45
|
|
41
46
|
/**
|
42
47
|
* Creates an endpoint that uses the Datadog intake directly aka agentless.
|
@@ -44,18 +49,21 @@ struct ddog_Endpoint ddog_Endpoint_agent(ddog_CharSlice base_url);
|
|
44
49
|
* * `site` - Contains a host and port e.g. "datadoghq.com".
|
45
50
|
* * `api_key` - Contains the Datadog API key.
|
46
51
|
*/
|
47
|
-
struct
|
52
|
+
struct ddog_prof_Endpoint ddog_prof_Endpoint_agentless(ddog_CharSlice site, ddog_CharSlice api_key);
|
48
53
|
|
49
54
|
/**
|
50
55
|
* Creates a new exporter to be used to report profiling data.
|
51
56
|
* # Arguments
|
52
|
-
* * `profiling_library_name` - Profiling library name, usually dd-trace-something, e.g.
|
53
|
-
*
|
57
|
+
* * `profiling_library_name` - Profiling library name, usually dd-trace-something, e.g.
|
58
|
+
* "dd-trace-rb". See
|
59
|
+
* https://datadoghq.atlassian.net/wiki/spaces/PROF/pages/1538884229/Client#Header-values
|
60
|
+
* (Datadog internal link)
|
54
61
|
* for a list of common values.
|
55
|
-
* * `profliling_library_version` - Version used when publishing the profiling library to a package
|
62
|
+
* * `profliling_library_version` - Version used when publishing the profiling library to a package
|
63
|
+
* manager
|
56
64
|
* * `family` - Profile family, e.g. "ruby"
|
57
|
-
* * `tags` - Tags to include with every profile reported by this exporter. It's also possible to
|
58
|
-
* profile-specific tags, see `additional_tags` on `profile_exporter_build`.
|
65
|
+
* * `tags` - Tags to include with every profile reported by this exporter. It's also possible to
|
66
|
+
* include profile-specific tags, see `additional_tags` on `profile_exporter_build`.
|
59
67
|
* * `endpoint` - Configuration for reporting data
|
60
68
|
* # Safety
|
61
69
|
* All pointers must refer to valid objects of the correct types.
|
@@ -65,7 +73,7 @@ struct ddog_prof_Exporter_NewResult ddog_prof_Exporter_new(ddog_CharSlice profil
|
|
65
73
|
ddog_CharSlice profiling_library_version,
|
66
74
|
ddog_CharSlice family,
|
67
75
|
const struct ddog_Vec_Tag *tags,
|
68
|
-
struct
|
76
|
+
struct ddog_prof_Endpoint endpoint);
|
69
77
|
|
70
78
|
/**
|
71
79
|
* # Safety
|
@@ -81,8 +89,8 @@ void ddog_prof_Exporter_drop(struct ddog_prof_Exporter *exporter);
|
|
81
89
|
*
|
82
90
|
* For details on the `optional_internal_metadata_json`, please reference the Datadog-internal
|
83
91
|
* "RFC: Attaching internal metadata to pprof profiles".
|
84
|
-
* If you use this parameter, please update the RFC with your use-case, so we can keep track of how
|
85
|
-
* is getting used.
|
92
|
+
* If you use this parameter, please update the RFC with your use-case, so we can keep track of how
|
93
|
+
* this is getting used.
|
86
94
|
*
|
87
95
|
* For details on the `optional_info_json`, please reference the Datadog-internal
|
88
96
|
* "RFC: Pprof System Info Support".
|
@@ -118,9 +126,8 @@ void ddog_prof_Exporter_Request_drop(struct ddog_prof_Exporter_Request **request
|
|
118
126
|
*
|
119
127
|
* # Arguments
|
120
128
|
* * `exporter` - Borrows the exporter for sending the request.
|
121
|
-
* * `request` - Takes ownership of the request, replacing it with a null
|
122
|
-
*
|
123
|
-
* a single one.
|
129
|
+
* * `request` - Takes ownership of the request, replacing it with a null pointer. This is why it
|
130
|
+
* takes a double-pointer, rather than a single one.
|
124
131
|
* * `cancel` - Borrows the cancel, if any.
|
125
132
|
*
|
126
133
|
* # Safety
|
@@ -132,10 +139,10 @@ struct ddog_prof_Exporter_SendResult ddog_prof_Exporter_send(struct ddog_prof_Ex
|
|
132
139
|
const struct ddog_CancellationToken *cancel);
|
133
140
|
|
134
141
|
/**
|
135
|
-
* Can be passed as an argument to send and then be used to asynchronously cancel it from a
|
142
|
+
* Can be passed as an argument to send and then be used to asynchronously cancel it from a
|
143
|
+
* different thread.
|
136
144
|
*/
|
137
|
-
DDOG_CHECK_RETURN
|
138
|
-
struct ddog_CancellationToken *ddog_CancellationToken_new(void);
|
145
|
+
DDOG_CHECK_RETURN struct ddog_CancellationToken *ddog_CancellationToken_new(void);
|
139
146
|
|
140
147
|
/**
|
141
148
|
* A cloned CancellationToken is connected to the CancellationToken it was created from.
|
@@ -156,9 +163,9 @@ struct ddog_CancellationToken *ddog_CancellationToken_new(void);
|
|
156
163
|
* ddog_CancellationToken_drop(cancel_t2);
|
157
164
|
* ```
|
158
165
|
*
|
159
|
-
* Without clone, both t1 and t2 would need to synchronize to make sure neither was using the
|
160
|
-
* before it could be dropped. With clone, there is no need for such synchronization, both
|
161
|
-
* have their own cancel and should drop that cancel after they are done with it.
|
166
|
+
* Without clone, both t1 and t2 would need to synchronize to make sure neither was using the
|
167
|
+
* cancel before it could be dropped. With clone, there is no need for such synchronization, both
|
168
|
+
* threads have their own cancel and should drop that cancel after they are done with it.
|
162
169
|
*
|
163
170
|
* # Safety
|
164
171
|
* If the `token` is non-null, it must point to a valid object.
|
@@ -188,7 +195,7 @@ void ddog_CancellationToken_drop(struct ddog_CancellationToken *token);
|
|
188
195
|
* * `sample_types`
|
189
196
|
* * `period` - Optional period of the profile. Passing None/null translates to zero values.
|
190
197
|
* * `start_time` - Optional time the profile started at. Passing None/null will use the current
|
191
|
-
*
|
198
|
+
* time.
|
192
199
|
*
|
193
200
|
* # Safety
|
194
201
|
* All slices must be have pointers that are suitably aligned for their type
|
@@ -274,9 +281,12 @@ struct ddog_prof_Profile_Result ddog_prof_Profile_add_endpoint_count(struct ddog
|
|
274
281
|
* * `offset_values` - offset of the values
|
275
282
|
* * `label_name` - name of the label used to identify sample(s)
|
276
283
|
* * `label_value` - value of the label used to identify sample(s)
|
277
|
-
* * `sum_value_offset` - offset of the value used as a sum (compute the average with
|
278
|
-
*
|
279
|
-
* * `
|
284
|
+
* * `sum_value_offset` - offset of the value used as a sum (compute the average with
|
285
|
+
* `count_value_offset`)
|
286
|
+
* * `count_value_offset` - offset of the value used as a count (compute the average with
|
287
|
+
* `sum_value_offset`)
|
288
|
+
* * `sampling_distance` - this is the threshold for this sampling window. This value must not be
|
289
|
+
* equal to 0
|
280
290
|
*
|
281
291
|
* # Safety
|
282
292
|
* This function must be called before serialize and must not be called after.
|
@@ -302,8 +312,10 @@ struct ddog_prof_Profile_Result ddog_prof_Profile_add_upscaling_rule_poisson(str
|
|
302
312
|
* * `offset_values` - offset of the values
|
303
313
|
* * `label_name` - name of the label used to identify sample(s)
|
304
314
|
* * `label_value` - value of the label used to identify sample(s)
|
305
|
-
* * `total_sampled` - number of sampled event (found in the pprof). This value must not be equal
|
306
|
-
*
|
315
|
+
* * `total_sampled` - number of sampled event (found in the pprof). This value must not be equal
|
316
|
+
* to 0
|
317
|
+
* * `total_real` - number of events the profiler actually witnessed. This value must not be equal
|
318
|
+
* to 0
|
307
319
|
*
|
308
320
|
* # Safety
|
309
321
|
* This function must be called before serialize and must not be called after.
|
@@ -337,12 +349,12 @@ void ddog_prof_EncodedProfile_drop(struct ddog_prof_EncodedProfile *profile);
|
|
337
349
|
* # Arguments
|
338
350
|
* * `profile` - a reference to the profile being serialized.
|
339
351
|
* * `end_time` - optional end time of the profile. If None/null is passed, the current time will
|
340
|
-
*
|
352
|
+
* be used.
|
341
353
|
* * `duration_nanos` - Optional duration of the profile. Passing None or a negative duration will
|
342
|
-
*
|
343
|
-
*
|
344
|
-
*
|
345
|
-
*
|
354
|
+
* mean the duration will based on the end time minus the start time, but under anomalous
|
355
|
+
* conditions this may fail as system clocks can be adjusted, or the programmer accidentally
|
356
|
+
* passed an earlier time. The duration of the serialized profile will be set to zero for these
|
357
|
+
* cases.
|
346
358
|
* * `start_time` - Optional start time for the next profile.
|
347
359
|
*
|
348
360
|
* # Safety
|
@@ -376,4 +388,8 @@ DDOG_CHECK_RETURN
|
|
376
388
|
struct ddog_prof_Profile_Result ddog_prof_Profile_reset(struct ddog_prof_Profile *profile,
|
377
389
|
const struct ddog_Timespec *start_time);
|
378
390
|
|
391
|
+
#ifdef __cplusplus
|
392
|
+
} // extern "C"
|
393
|
+
#endif // __cplusplus
|
394
|
+
|
379
395
|
#endif /* DDOG_PROFILING_H */
|