libdatadog 0.9.0.1.0 → 1.0.1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
  4. data/vendor/{libdatadog-0.9.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-1.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/LICENSE-3rdparty.yml +217 -15
  5. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
  6. data/vendor/{libdatadog-0.9.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-1.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/common.h +121 -151
  7. data/vendor/{libdatadog-0.9.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-1.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/profiling.h +69 -37
  8. data/vendor/libdatadog-1.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  9. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  10. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
  11. data/vendor/{libdatadog-0.9.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-1.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/LICENSE-3rdparty.yml +217 -15
  12. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
  13. data/vendor/{libdatadog-0.9.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-1.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/common.h +121 -151
  14. data/vendor/{libdatadog-0.9.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-1.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/profiling.h +69 -37
  15. data/vendor/libdatadog-1.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  16. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  17. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
  18. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.yml +217 -15
  19. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
  20. data/vendor/{libdatadog-0.9.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-1.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/include/datadog/common.h +121 -151
  21. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h +69 -37
  22. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  23. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  24. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
  25. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE-3rdparty.yml +217 -15
  26. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -0
  27. data/vendor/{libdatadog-0.9.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-1.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/common.h +121 -151
  28. data/vendor/{libdatadog-0.9.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-1.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/profiling.h +69 -37
  29. data/vendor/libdatadog-1.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  30. data/vendor/{libdatadog-0.9.0 → libdatadog-1.0.1}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  31. metadata +31 -35
  32. data/vendor/libdatadog-0.9.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h +0 -78
  33. data/vendor/libdatadog-0.9.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  34. data/vendor/libdatadog-0.9.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/telemetry.h +0 -78
  35. data/vendor/libdatadog-0.9.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  36. data/vendor/libdatadog-0.9.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h +0 -78
  37. data/vendor/libdatadog-0.9.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/telemetry.h +0 -78
  38. data/vendor/libdatadog-0.9.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
@@ -1,16 +1,17 @@
1
1
  // Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.
2
2
  // This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2021-Present Datadog, Inc.
3
3
 
4
-
5
4
  #ifndef DDOG_PROFILING_H
6
5
  #define DDOG_PROFILING_H
7
6
 
7
+ #pragma once
8
+
8
9
  #include <stdbool.h>
9
10
  #include <stddef.h>
10
11
  #include <stdint.h>
11
- #include "datadog/common.h"
12
+ #include "common.h"
12
13
 
13
- void ddog_NewProfileExporterResult_drop(struct ddog_NewProfileExporterResult result);
14
+ void ddog_prof_Exporter_NewResult_drop(struct ddog_prof_Exporter_NewResult result);
14
15
 
15
16
  /**
16
17
  * Creates an endpoint that uses the agent.
@@ -27,14 +28,26 @@ struct ddog_Endpoint ddog_Endpoint_agent(ddog_CharSlice base_url);
27
28
  */
28
29
  struct ddog_Endpoint ddog_Endpoint_agentless(ddog_CharSlice site, ddog_CharSlice api_key);
29
30
 
31
+ /**
32
+ * Creates a new exporter to be used to report profiling data.
33
+ * # Arguments
34
+ * * `profiling_library_name` - Profiling library name, usually dd-trace-something, e.g. "dd-trace-rb". See
35
+ * https://datadoghq.atlassian.net/wiki/spaces/PROF/pages/1538884229/Client#Header-values (Datadog internal link)
36
+ * for a list of common values.
37
+ * * `profliling_library_version` - Version used when publishing the profiling library to a package manager
38
+ * * `family` - Profile family, e.g. "ruby"
39
+ * * `tags` - Tags to include with every profile reported by this exporter. It's also possible to include
40
+ * profile-specific tags, see `additional_tags` on `profile_exporter_build`.
41
+ * * `endpoint` - Configuration for reporting data
42
+ */
30
43
  DDOG_CHECK_RETURN
31
- struct ddog_NewProfileExporterResult ddog_ProfileExporter_new(ddog_CharSlice profiling_library_name,
32
- ddog_CharSlice profiling_library_version,
33
- ddog_CharSlice family,
34
- const struct ddog_Vec_tag *tags,
35
- struct ddog_Endpoint endpoint);
44
+ struct ddog_prof_Exporter_NewResult ddog_prof_Exporter_new(ddog_CharSlice profiling_library_name,
45
+ ddog_CharSlice profiling_library_version,
46
+ ddog_CharSlice family,
47
+ const struct ddog_Vec_Tag *tags,
48
+ struct ddog_Endpoint endpoint);
36
49
 
37
- void ddog_ProfileExporter_delete(struct ddog_ProfileExporter *exporter);
50
+ void ddog_prof_Exporter_drop(struct ddog_prof_Exporter *exporter);
38
51
 
39
52
  /**
40
53
  * Builds a Request object based on the profile data supplied.
@@ -43,12 +56,14 @@ void ddog_ProfileExporter_delete(struct ddog_ProfileExporter *exporter);
43
56
  * The `exporter` and the files inside of the `files` slice need to have been
44
57
  * created by this module.
45
58
  */
46
- struct ddog_Request *ddog_ProfileExporter_build(struct ddog_ProfileExporter *exporter,
47
- struct ddog_Timespec start,
48
- struct ddog_Timespec end,
49
- struct ddog_Slice_file files,
50
- const struct ddog_Vec_tag *additional_tags,
51
- uint64_t timeout_ms);
59
+ DDOG_CHECK_RETURN
60
+ struct ddog_prof_Exporter_Request *ddog_prof_Exporter_Request_build(struct ddog_prof_Exporter *exporter,
61
+ struct ddog_Timespec start,
62
+ struct ddog_Timespec end,
63
+ struct ddog_prof_Exporter_Slice_File files,
64
+ const struct ddog_Vec_Tag *additional_tags,
65
+ const struct ddog_prof_ProfiledEndpointsStats *endpoints_stats,
66
+ uint64_t timeout_ms);
52
67
 
53
68
  /**
54
69
  * Sends the request, returning the HttpStatus.
@@ -62,11 +77,11 @@ struct ddog_Request *ddog_ProfileExporter_build(struct ddog_ProfileExporter *exp
62
77
  * All non-null arguments MUST have been created by created by apis in this module.
63
78
  */
64
79
  DDOG_CHECK_RETURN
65
- struct ddog_SendResult ddog_ProfileExporter_send(struct ddog_ProfileExporter *exporter,
66
- struct ddog_Request *request,
67
- struct ddog_CancellationToken *cancel);
80
+ struct ddog_prof_Exporter_SendResult ddog_prof_Exporter_send(struct ddog_prof_Exporter *exporter,
81
+ struct ddog_prof_Exporter_Request *request,
82
+ struct ddog_CancellationToken *cancel);
68
83
 
69
- void ddog_Request_drop(struct ddog_Request *_request);
84
+ void ddog_prof_Exporter_Request_drop(struct ddog_prof_Exporter_Request *_request);
70
85
 
71
86
  /**
72
87
  * Can be passed as an argument to send and then be used to asynchronously cancel it from a different thread.
@@ -85,7 +100,7 @@ struct ddog_CancellationToken *ddog_CancellationToken_new(void);
85
100
  * cancel_t2 = ddog_CancellationToken_clone(cancel_t1);
86
101
  *
87
102
  * // On thread t1:
88
- * ddog_ProfileExporter_send(..., cancel_t1);
103
+ * ddog_prof_Exporter_send(..., cancel_t1);
89
104
  * ddog_CancellationToken_drop(cancel_t1);
90
105
  *
91
106
  * // On thread t2:
@@ -109,11 +124,11 @@ bool ddog_CancellationToken_cancel(struct ddog_CancellationToken *cancel);
109
124
 
110
125
  void ddog_CancellationToken_drop(struct ddog_CancellationToken *_cancel);
111
126
 
112
- void ddog_SendResult_drop(struct ddog_SendResult result);
127
+ void ddog_prof_Exporter_SendResult_drop(struct ddog_prof_Exporter_SendResult result);
113
128
 
114
129
  /**
115
130
  * Create a new profile with the given sample types. Must call
116
- * `ddog_Profile_free` when you are done with the profile.
131
+ * `ddog_prof_Profile_drop` when you are done with the profile.
117
132
  *
118
133
  * # Arguments
119
134
  * * `sample_types`
@@ -126,16 +141,16 @@ void ddog_SendResult_drop(struct ddog_SendResult result);
126
141
  * and must have the correct number of elements for the slice.
127
142
  */
128
143
  DDOG_CHECK_RETURN
129
- struct ddog_Profile *ddog_Profile_new(struct ddog_Slice_value_type sample_types,
130
- const struct ddog_Period *period,
131
- const struct ddog_Timespec *start_time);
144
+ struct ddog_prof_Profile *ddog_prof_Profile_new(struct ddog_prof_Slice_ValueType sample_types,
145
+ const struct ddog_prof_Period *period,
146
+ const struct ddog_Timespec *start_time);
132
147
 
133
148
  /**
134
149
  * # Safety
135
150
  * The `profile` must point to an object created by another FFI routine in this
136
151
  * module, such as `ddog_Profile_with_sample_types`.
137
152
  */
138
- void ddog_Profile_free(struct ddog_Profile *_profile);
153
+ void ddog_prof_Profile_drop(struct ddog_prof_Profile *_profile);
139
154
 
140
155
  /**
141
156
  * # Safety
@@ -144,7 +159,7 @@ void ddog_Profile_free(struct ddog_Profile *_profile);
144
159
  * of this call.
145
160
  * This call is _NOT_ thread-safe.
146
161
  */
147
- uint64_t ddog_Profile_add(struct ddog_Profile *profile, struct ddog_Sample sample);
162
+ uint64_t ddog_prof_Profile_add(struct ddog_prof_Profile *profile, struct ddog_prof_Sample sample);
148
163
 
149
164
  /**
150
165
  * Associate an endpoint to a given local root span id.
@@ -164,13 +179,29 @@ uint64_t ddog_Profile_add(struct ddog_Profile *profile, struct ddog_Sample sampl
164
179
  * module.
165
180
  * This call is _NOT_ thread-safe.
166
181
  */
167
- void ddog_Profile_set_endpoint(struct ddog_Profile *profile,
168
- ddog_CharSlice local_root_span_id,
169
- ddog_CharSlice endpoint);
182
+ void ddog_prof_Profile_set_endpoint(struct ddog_prof_Profile *profile,
183
+ ddog_CharSlice local_root_span_id,
184
+ ddog_CharSlice endpoint);
185
+
186
+ /**
187
+ * Count the number of times an endpoint has been seen.
188
+ *
189
+ * # Arguments
190
+ * * `profile` - a reference to the profile that will contain the samples.
191
+ * * `endpoint` - the endpoint label for which the count will be incremented
192
+ *
193
+ * # Safety
194
+ * The `profile` ptr must point to a valid Profile object created by this
195
+ * module.
196
+ * This call is _NOT_ thread-safe.
197
+ */
198
+ void ddog_prof_Profile_add_endpoint_count(struct ddog_prof_Profile *profile,
199
+ ddog_CharSlice endpoint,
200
+ int64_t value);
170
201
 
171
202
  /**
172
203
  * Serialize the aggregated profile. Don't forget to clean up the result by
173
- * calling ddog_SerializeResult_drop.
204
+ * calling ddog_prof_Profile_SerializeResult_drop.
174
205
  *
175
206
  * # Arguments
176
207
  * * `profile` - a reference to the profile being serialized.
@@ -187,13 +218,13 @@ void ddog_Profile_set_endpoint(struct ddog_Profile *profile,
187
218
  * The `end_time` must be null or otherwise point to a valid TimeSpec object.
188
219
  * The `duration_nanos` must be null or otherwise point to a valid i64.
189
220
  */
190
- struct ddog_SerializeResult ddog_Profile_serialize(const struct ddog_Profile *profile,
191
- const struct ddog_Timespec *end_time,
192
- const int64_t *duration_nanos);
221
+ struct ddog_prof_Profile_SerializeResult ddog_prof_Profile_serialize(const struct ddog_prof_Profile *profile,
222
+ const struct ddog_Timespec *end_time,
223
+ const int64_t *duration_nanos);
193
224
 
194
- void ddog_SerializeResult_drop(struct ddog_SerializeResult _result);
225
+ void ddog_prof_Profile_SerializeResult_drop(struct ddog_prof_Profile_SerializeResult _result);
195
226
 
196
- DDOG_CHECK_RETURN struct ddog_Slice_u8 ddog_Vec_u8_as_slice(const struct ddog_Vec_u8 *vec);
227
+ DDOG_CHECK_RETURN struct ddog_Slice_U8 ddog_Vec_U8_as_slice(const struct ddog_prof_Vec_U8 *vec);
197
228
 
198
229
  /**
199
230
  * Resets all data in `profile` except the sample types and period. Returns
@@ -209,6 +240,7 @@ DDOG_CHECK_RETURN struct ddog_Slice_u8 ddog_Vec_u8_as_slice(const struct ddog_Ve
209
240
  * can be called across an FFI boundary, the compiler cannot enforce this.
210
241
  * If `time` is not null, it must point to a valid Timespec object.
211
242
  */
212
- bool ddog_Profile_reset(struct ddog_Profile *profile, const struct ddog_Timespec *start_time);
243
+ bool ddog_prof_Profile_reset(struct ddog_prof_Profile *profile,
244
+ const struct ddog_Timespec *start_time);
213
245
 
214
246
  #endif /* DDOG_PROFILING_H */
@@ -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: 0.9.0
13
+ Version: 1.0.1
14
14
  Requires:
15
15
  Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
16
16
  Libs.private: