libdatadog 9.0.0.1.0 → 11.0.0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/vendor/{libdatadog-9.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-11.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/LICENSE-3rdparty.yml +17731 -10534
  4. data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  5. data/vendor/libdatadog-11.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +1229 -0
  6. data/vendor/{libdatadog-9.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-11.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/common.h +37 -18
  7. data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/profiling.h +31 -4
  8. data/vendor/libdatadog-11.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  9. data/vendor/{libdatadog-9.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-11.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/LICENSE-3rdparty.yml +17731 -10534
  10. data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  11. data/vendor/libdatadog-11.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +1229 -0
  12. data/vendor/{libdatadog-9.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-11.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/common.h +37 -18
  13. data/vendor/{libdatadog-9.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-11.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/profiling.h +31 -4
  14. data/vendor/libdatadog-11.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  15. data/vendor/{libdatadog-9.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/LICENSE-3rdparty.yml +17731 -10534
  16. data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  17. data/vendor/libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h +1229 -0
  18. data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h +37 -18
  19. data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h +31 -4
  20. data/vendor/libdatadog-11.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  21. data/vendor/{libdatadog-9.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/LICENSE-3rdparty.yml +17731 -10534
  22. data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  23. data/vendor/libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/blazesym.h +1229 -0
  24. data/vendor/{libdatadog-9.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/common.h +37 -18
  25. data/vendor/{libdatadog-9.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/profiling.h +31 -4
  26. data/vendor/libdatadog-11.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  27. metadata +43 -43
  28. data/vendor/libdatadog-9.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -895
  29. data/vendor/libdatadog-9.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  30. data/vendor/libdatadog-9.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -895
  31. data/vendor/libdatadog-9.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  32. data/vendor/libdatadog-9.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h +0 -895
  33. data/vendor/libdatadog-9.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  34. data/vendor/libdatadog-9.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/blazesym.h +0 -895
  35. data/vendor/libdatadog-9.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  36. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
  37. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
  38. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h +0 -0
  39. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
  40. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
  41. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
  42. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/telemetry.h +0 -0
  43. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
  44. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
  45. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
  46. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h +0 -0
  47. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
  48. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
  49. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -0
  50. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/telemetry.h +0 -0
  51. /data/vendor/{libdatadog-9.0.0 → libdatadog-11.0.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
@@ -143,6 +143,11 @@ typedef enum ddog_prof_DemangleOptions {
143
143
  DDOG_PROF_DEMANGLE_OPTIONS_NAME_ONLY,
144
144
  } ddog_prof_DemangleOptions;
145
145
 
146
+ typedef enum ddog_prof_NormalizedAddressTypes {
147
+ DDOG_PROF_NORMALIZED_ADDRESS_TYPES_NONE = 0,
148
+ DDOG_PROF_NORMALIZED_ADDRESS_TYPES_ELF,
149
+ } ddog_prof_NormalizedAddressTypes;
150
+
146
151
  /**
147
152
  * This enum represents operations a profiler might be engaged in.
148
153
  * The idea is that if a crash consistently occurs while a particular operation
@@ -178,7 +183,8 @@ typedef enum ddog_prof_StacktraceCollection {
178
183
  */
179
184
  DDOG_PROF_STACKTRACE_COLLECTION_DISABLED,
180
185
  DDOG_PROF_STACKTRACE_COLLECTION_WITHOUT_SYMBOLS,
181
- DDOG_PROF_STACKTRACE_COLLECTION_ENABLED,
186
+ DDOG_PROF_STACKTRACE_COLLECTION_ENABLED_WITH_INPROCESS_SYMBOLS,
187
+ DDOG_PROF_STACKTRACE_COLLECTION_ENABLED_WITH_SYMBOLS_IN_RECEIVER,
182
188
  } ddog_prof_StacktraceCollection;
183
189
 
184
190
  typedef struct ddog_CancellationToken ddog_CancellationToken;
@@ -255,10 +261,14 @@ typedef struct ddog_prof_CrashtrackerConfiguration {
255
261
  bool create_alt_stack;
256
262
  /**
257
263
  * The endpoint to send the crash report to (can be a file://)
264
+ *
265
+ * If ProfilingEndpoint is left to a zero value (enum value for Agent + empty charslice),
266
+ * the crashtracker will infer the agent host from env variables.
258
267
  */
259
268
  struct ddog_prof_Endpoint endpoint;
260
269
  enum ddog_prof_StacktraceCollection resolve_frames;
261
270
  uint64_t timeout_secs;
271
+ bool wait_for_receiver;
262
272
  } ddog_prof_CrashtrackerConfiguration;
263
273
 
264
274
  typedef struct ddog_prof_EnvVar {
@@ -368,10 +378,36 @@ typedef struct ddog_prof_Slice_StackFrameNames {
368
378
  uintptr_t len;
369
379
  } ddog_prof_Slice_StackFrameNames;
370
380
 
381
+ typedef struct ddog_Slice_U8 {
382
+ /**
383
+ * Must be non-null and suitably aligned for the underlying type.
384
+ */
385
+ const uint8_t *ptr;
386
+ /**
387
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
388
+ * than or equal to [isize::MAX].
389
+ */
390
+ uintptr_t len;
391
+ } ddog_Slice_U8;
392
+
393
+ /**
394
+ * Use to represent bytes -- does not need to be valid UTF-8.
395
+ */
396
+ typedef struct ddog_Slice_U8 ddog_ByteSlice;
397
+
398
+ typedef struct ddog_prof_NormalizedAddress {
399
+ uint64_t file_offset;
400
+ ddog_ByteSlice build_id;
401
+ ddog_CharSlice path;
402
+ enum ddog_prof_NormalizedAddressTypes typ;
403
+ } ddog_prof_NormalizedAddress;
404
+
371
405
  typedef struct ddog_prof_StackFrame {
406
+ ddog_CharSlice build_id;
372
407
  uintptr_t ip;
373
408
  uintptr_t module_base_address;
374
409
  struct ddog_prof_Slice_StackFrameNames names;
410
+ struct ddog_prof_NormalizedAddress normalized_ip;
375
411
  uintptr_t sp;
376
412
  uintptr_t symbol_address;
377
413
  } ddog_prof_StackFrame;
@@ -418,23 +454,6 @@ typedef struct ddog_prof_StringWrapperResult {
418
454
  };
419
455
  } ddog_prof_StringWrapperResult;
420
456
 
421
- typedef struct ddog_Slice_U8 {
422
- /**
423
- * Must be non-null and suitably aligned for the underlying type.
424
- */
425
- const uint8_t *ptr;
426
- /**
427
- * The number of elements (not bytes) that `.ptr` points to. Must be less
428
- * than or equal to [isize::MAX].
429
- */
430
- uintptr_t len;
431
- } ddog_Slice_U8;
432
-
433
- /**
434
- * Use to represent bytes -- does not need to be valid UTF-8.
435
- */
436
- typedef struct ddog_Slice_U8 ddog_ByteSlice;
437
-
438
457
  typedef struct ddog_prof_Exporter_File {
439
458
  ddog_CharSlice name;
440
459
  ddog_ByteSlice file;
@@ -74,7 +74,23 @@ struct ddog_prof_CrashtrackerResult ddog_prof_Crashtracker_update_on_fork(struct
74
74
  * No safety concerns
75
75
  */
76
76
  DDOG_CHECK_RETURN
77
- struct ddog_prof_CrashtrackerResult ddog_prof_Crashtracker_receiver_entry_point(void);
77
+ struct ddog_prof_CrashtrackerResult ddog_prof_Crashtracker_receiver_entry_point_stdin(void);
78
+
79
+ /**
80
+ * Receives data from a crash collector via a pipe on `stdin`, formats it into
81
+ * `CrashInfo` json, and emits it to the endpoint/file defined in `config`.
82
+ *
83
+ * At a high-level, this exists because doing anything in a
84
+ * signal handler is dangerous, so we fork a sidecar to do the stuff we aren't
85
+ * allowed to do in the handler.
86
+ *
87
+ * See comments in [profiling/crashtracker/mod.rs] for a full architecture
88
+ * description.
89
+ * # Safety
90
+ * No safety concerns
91
+ */
92
+ DDOG_CHECK_RETURN
93
+ struct ddog_prof_CrashtrackerResult ddog_prof_Crashtracker_receiver_entry_point_unix_socket(ddog_CharSlice socket_path);
78
94
 
79
95
  /**
80
96
  * Initialize the crash-tracking infrastructure.
@@ -89,9 +105,9 @@ struct ddog_prof_CrashtrackerResult ddog_prof_Crashtracker_receiver_entry_point(
89
105
  * unexpected crash-handling behaviour.
90
106
  */
91
107
  DDOG_CHECK_RETURN
92
- struct ddog_prof_CrashtrackerResult ddog_prof_Crashtracker_init(struct ddog_prof_CrashtrackerConfiguration config,
93
- struct ddog_prof_CrashtrackerReceiverConfig receiver_config,
94
- struct ddog_prof_CrashtrackerMetadata metadata);
108
+ struct ddog_prof_CrashtrackerResult ddog_prof_Crashtracker_init_with_receiver(struct ddog_prof_CrashtrackerConfiguration config,
109
+ struct ddog_prof_CrashtrackerReceiverConfig receiver_config,
110
+ struct ddog_prof_CrashtrackerMetadata metadata);
95
111
 
96
112
  /**
97
113
  * Resets all counters to 0.
@@ -139,6 +155,17 @@ DDOG_CHECK_RETURN struct ddog_prof_CrashInfoNewResult ddog_crashinfo_new(void);
139
155
  */
140
156
  void ddog_crashinfo_drop(struct ddog_prof_CrashInfo *crashinfo);
141
157
 
158
+ /**
159
+ * Best effort attempt to normalize all `ip` on the stacktrace.
160
+ * `pid` must be the pid of the currently active process where the ips came from.
161
+ *
162
+ * # Safety
163
+ * `crashinfo` must be a valid pointer to a `CrashInfo` object.
164
+ */
165
+ DDOG_CHECK_RETURN
166
+ struct ddog_prof_CrashtrackerResult ddog_crashinfo_normalize_ips(struct ddog_prof_CrashInfo *crashinfo,
167
+ uint32_t pid);
168
+
142
169
  /**
143
170
  * Adds a "counter" variable, with the given value. Useful for determining if
144
171
  * "interesting" operations were occurring when the crash did.