libdatadog 6.0.0.2.0-aarch64-linux → 7.0.0.1.0-aarch64-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.
- checksums.yaml +4 -4
- data/lib/libdatadog/version.rb +2 -2
- data/lib/libdatadog.rb +8 -0
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE-3rdparty.yml +15459 -6284
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/libdatadog-7.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +895 -0
- data/vendor/{libdatadog-6.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-7.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/common.h +135 -20
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/profiling.h +54 -38
- data/vendor/libdatadog-7.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h +290 -0
- data/vendor/libdatadog-7.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +2 -4
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE-3rdparty.yml +15459 -6284
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/libdatadog-7.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +895 -0
- data/vendor/{libdatadog-6.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-7.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/common.h +135 -20
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/profiling.h +54 -38
- data/vendor/libdatadog-7.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/telemetry.h +290 -0
- data/vendor/libdatadog-7.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +2 -4
- metadata +22 -18
- data/vendor/libdatadog-6.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- data/vendor/libdatadog-6.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- /data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
- /data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
- /data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
- /data/vendor/{libdatadog-6.0.0 → libdatadog-7.0.0}/aarch64-linux-musl/libdatadog-aarch64-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 */
|