libdatadog 33.0.0.1.0 → 40.0.0.2.0

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.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +2 -2
  3. data/libdatadog.gemspec +43 -0
  4. data/rust-toolchain.toml +6 -0
  5. data/tasks/build.rake +36 -2
  6. data/tasks/gem.rake +245 -0
  7. data/tasks/release.rake +28 -0
  8. data/tasks/spec.rake +11 -0
  9. data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux}/LICENSE-3rdparty.csv +7 -1
  10. data/vendor/libdatadog-40.0.0/aarch64-linux/NOTICE +12 -0
  11. data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/bin/libdatadog-crashtracking-receiver +0 -0
  12. data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux}/include/datadog/common.h +321 -81
  13. data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/aarch64-linux}/include/datadog/crashtracker.h +19 -0
  14. data/vendor/libdatadog-40.0.0/aarch64-linux/include/datadog/data-pipeline.h +612 -0
  15. data/vendor/libdatadog-40.0.0/aarch64-linux/include/datadog/otel-thread-ctx.h +86 -0
  16. data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux}/include/datadog/profiling.h +37 -0
  17. data/vendor/libdatadog-40.0.0/aarch64-linux/include/datadog/shared-runtime.h +91 -0
  18. data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux}/include/datadog/telemetry.h +37 -19
  19. data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/lib/libdatadog_profiling.so +0 -0
  20. data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  21. data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux-musl}/LICENSE-3rdparty.csv +7 -1
  22. data/vendor/libdatadog-40.0.0/aarch64-linux-musl/NOTICE +12 -0
  23. data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/bin/libdatadog-crashtracking-receiver +0 -0
  24. data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/common.h +321 -81
  25. data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/crashtracker.h +19 -0
  26. data/vendor/libdatadog-40.0.0/aarch64-linux-musl/include/datadog/data-pipeline.h +612 -0
  27. data/vendor/libdatadog-40.0.0/aarch64-linux-musl/include/datadog/otel-thread-ctx.h +86 -0
  28. data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/profiling.h +37 -0
  29. data/vendor/libdatadog-40.0.0/aarch64-linux-musl/include/datadog/shared-runtime.h +91 -0
  30. data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/telemetry.h +37 -19
  31. data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/lib/libdatadog_profiling.so +0 -0
  32. data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  33. data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/LICENSE-3rdparty.csv +7 -1
  34. data/vendor/libdatadog-40.0.0/arm64-darwin/NOTICE +12 -0
  35. data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/bin/libdatadog-crashtracking-receiver +0 -0
  36. data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/arm64-darwin}/include/datadog/common.h +321 -81
  37. data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/arm64-darwin}/include/datadog/crashtracker.h +19 -0
  38. data/vendor/libdatadog-40.0.0/arm64-darwin/include/datadog/data-pipeline.h +612 -0
  39. data/vendor/libdatadog-40.0.0/arm64-darwin/include/datadog/otel-thread-ctx.h +86 -0
  40. data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/arm64-darwin}/include/datadog/profiling.h +37 -0
  41. data/vendor/libdatadog-40.0.0/arm64-darwin/include/datadog/shared-runtime.h +91 -0
  42. data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/arm64-darwin}/include/datadog/telemetry.h +37 -19
  43. data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/lib/libdatadog_profiling.dylib +0 -0
  44. data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  45. data/vendor/libdatadog-40.0.0/x86_64-linux/LICENSE-3rdparty.csv +554 -0
  46. data/vendor/libdatadog-40.0.0/x86_64-linux/NOTICE +12 -0
  47. data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/bin/libdatadog-crashtracking-receiver +0 -0
  48. data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/common.h +3115 -0
  49. data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/crashtracker.h +1026 -0
  50. data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/data-pipeline.h +612 -0
  51. data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/otel-thread-ctx.h +86 -0
  52. data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/profiling.h +1167 -0
  53. data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/shared-runtime.h +91 -0
  54. data/vendor/libdatadog-40.0.0/x86_64-linux/include/datadog/telemetry.h +325 -0
  55. data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/lib/libdatadog_profiling.so +0 -0
  56. data/vendor/libdatadog-40.0.0/x86_64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +15 -0
  57. data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/LICENSE-3rdparty.csv +7 -1
  58. data/vendor/libdatadog-40.0.0/x86_64-linux-musl/NOTICE +12 -0
  59. data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/bin/libdatadog-crashtracking-receiver +0 -0
  60. data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/common.h +321 -81
  61. data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/crashtracker.h +19 -0
  62. data/vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/data-pipeline.h +612 -0
  63. data/vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/otel-thread-ctx.h +86 -0
  64. data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/profiling.h +37 -0
  65. data/vendor/libdatadog-40.0.0/x86_64-linux-musl/include/datadog/shared-runtime.h +91 -0
  66. data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/telemetry.h +37 -19
  67. data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/lib/libdatadog_profiling.so +0 -0
  68. data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  69. metadata +97 -82
  70. data/vendor/libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -4
  71. data/vendor/libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h +0 -216
  72. data/vendor/libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -4
  73. data/vendor/libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/data-pipeline.h +0 -216
  74. data/vendor/libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin/NOTICE +0 -4
  75. data/vendor/libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin/include/datadog/data-pipeline.h +0 -216
  76. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE-3rdparty.csv +0 -548
  77. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -4
  78. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h +0 -2875
  79. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/crashtracker.h +0 -1007
  80. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/data-pipeline.h +0 -216
  81. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h +0 -1130
  82. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h +0 -307
  83. data/vendor/libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -15
  84. data/vendor/libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -4
  85. data/vendor/libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/data-pipeline.h +0 -216
  86. /data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/LICENSE +0 -0
  87. /data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/include/datadog/blazesym.h +0 -0
  88. /data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/include/datadog/ddsketch.h +0 -0
  89. /data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/include/datadog/ffe.h +0 -0
  90. /data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/include/datadog/library-config.h +0 -0
  91. /data/vendor/{libdatadog-33.0.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-40.0.0/aarch64-linux}/include/datadog/log.h +0 -0
  92. /data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/LICENSE +0 -0
  93. /data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/blazesym.h +0 -0
  94. /data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/ddsketch.h +0 -0
  95. /data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/ffe.h +0 -0
  96. /data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/library-config.h +0 -0
  97. /data/vendor/{libdatadog-33.0.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-40.0.0/aarch64-linux-musl}/include/datadog/log.h +0 -0
  98. /data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/LICENSE +0 -0
  99. /data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/include/datadog/blazesym.h +0 -0
  100. /data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/include/datadog/ddsketch.h +0 -0
  101. /data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/include/datadog/ffe.h +0 -0
  102. /data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/include/datadog/library-config.h +0 -0
  103. /data/vendor/{libdatadog-33.0.0/arm64-darwin/libdatadog-aarch64-apple-darwin → libdatadog-40.0.0/arm64-darwin}/include/datadog/log.h +0 -0
  104. /data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/LICENSE +0 -0
  105. /data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/include/datadog/blazesym.h +0 -0
  106. /data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/include/datadog/ddsketch.h +0 -0
  107. /data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/include/datadog/ffe.h +0 -0
  108. /data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/include/datadog/library-config.h +0 -0
  109. /data/vendor/{libdatadog-33.0.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-40.0.0/x86_64-linux}/include/datadog/log.h +0 -0
  110. /data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/LICENSE +0 -0
  111. /data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/blazesym.h +0 -0
  112. /data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/ddsketch.h +0 -0
  113. /data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/ffe.h +0 -0
  114. /data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/library-config.h +0 -0
  115. /data/vendor/{libdatadog-33.0.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-40.0.0/x86_64-linux-musl}/include/datadog/log.h +0 -0
@@ -406,6 +406,25 @@ struct ddog_prof_Profile_NewResult ddog_prof_Profile_with_string_storage(struct
406
406
  const struct ddog_prof_Period *period,
407
407
  struct ddog_prof_ManagedStringStorage string_storage);
408
408
 
409
+ /**
410
+ * Configure one of the custom sample type slots (`Custom1` through `Custom5`)
411
+ * with its concrete `(type, unit)` string pair.
412
+ *
413
+ * Use this after creating a profile with a custom slot in its `sample_types`
414
+ * or `period`. The strings are copied during this call. A profile that uses a
415
+ * custom slot must configure it before serialization.
416
+ *
417
+ * # Safety
418
+ * The `profile` ptr must point to a valid Profile object created by this
419
+ * module. The `type_str` and `unit` slices must point to valid UTF-8 memory for
420
+ * the duration of this call.
421
+ */
422
+ DDOG_CHECK_RETURN
423
+ struct ddog_prof_Profile_Result ddog_prof_Profile_set_custom_sample_type(struct ddog_prof_Profile *profile,
424
+ enum ddog_prof_SampleType slot,
425
+ ddog_CharSlice type_str,
426
+ ddog_CharSlice unit);
427
+
409
428
  /**
410
429
  * # Safety
411
430
  * The `profile` can be null, but if non-null it must point to a Profile
@@ -488,6 +507,24 @@ struct ddog_prof_Profile_Result ddog_prof_Profile_add_endpoint_count(struct ddog
488
507
  ddog_CharSlice endpoint,
489
508
  int64_t value);
490
509
 
510
+ /**
511
+ * Set whether "local root span id" labels should be omitted when serializing.
512
+ *
513
+ * This is an experimental setting and defaults to false.
514
+ *
515
+ * # Arguments
516
+ * * `profile` - a reference to the profile being configured.
517
+ * * `omit` - true to omit the label from serialized pprof samples.
518
+ *
519
+ * # Safety
520
+ * The `profile` ptr must point to a valid Profile object created by this
521
+ * module.
522
+ * This call is _NOT_ thread-safe.
523
+ */
524
+ DDOG_CHECK_RETURN
525
+ struct ddog_prof_Profile_Result ddog_prof_Profile_set_omit_local_root_span_id_when_serializing(struct ddog_prof_Profile *profile,
526
+ bool omit);
527
+
491
528
  /**
492
529
  * Add a poisson-based upscaling rule which will be use to adjust values and make them
493
530
  * closer to reality.
@@ -0,0 +1,91 @@
1
+ // Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+
5
+ #ifndef DDOG_SHARED_RUNTIME_H
6
+ #define DDOG_SHARED_RUNTIME_H
7
+
8
+ #include <stdarg.h>
9
+ #include <stdbool.h>
10
+ #include <stdint.h>
11
+ #include <stdlib.h>
12
+
13
+ #ifdef __cplusplus
14
+ extern "C" {
15
+ #endif // __cplusplus
16
+
17
+ /**
18
+ * Frees a `SharedRuntimeFFIError`. After this call the pointer is invalid.
19
+ */
20
+ void ddog_shared_runtime_error_free(struct ddog_SharedRuntimeFFIError *error);
21
+
22
+ /**
23
+ * Create a new `ForkSafeRuntime`.
24
+ *
25
+ * On success writes a raw handle into `*out_handle` and returns `None`.
26
+ * On failure leaves `*out_handle` unchanged and returns an error.
27
+ *
28
+ * The caller owns the handle and must eventually pass it to
29
+ * [`ddog_shared_runtime_free`] (or another consumer that takes ownership).
30
+ */
31
+ struct ddog_SharedRuntimeFFIError *ddog_shared_runtime_new(const struct ddog_ForkSafeRuntime **out_handle);
32
+
33
+ /**
34
+ * Free a handle, decrementing the `Arc` strong count.
35
+ *
36
+ * The underlying runtime may not be dropped if other components are still using it.
37
+ * Use [`ddog_shared_runtime_shutdown`] to cleanly stop workers.
38
+ */
39
+ void ddog_shared_runtime_free(const struct ddog_ForkSafeRuntime *handle);
40
+
41
+ /**
42
+ * Must be called in the parent process before `fork()`.
43
+ *
44
+ * Pauses all workers so that no background threads are running during the
45
+ * fork, preventing deadlocks in the child process.
46
+ *
47
+ * Returns an error if `handle` is null.
48
+ * The handle must have been initialized with `ddog_shared_runtime_new`.
49
+ */
50
+ struct ddog_SharedRuntimeFFIError *ddog_shared_runtime_before_fork(const struct ddog_ForkSafeRuntime *handle);
51
+
52
+ /**
53
+ * Must be called in the parent process after `fork()`.
54
+ *
55
+ * Restarts all workers that were paused by [`ddog_shared_runtime_before_fork`].
56
+ *
57
+ * Returns `None` on success, or an error if workers could not be restarted.
58
+ * The handle must have been initialized with `ddog_shared_runtime_new`.
59
+ */
60
+ struct ddog_SharedRuntimeFFIError *ddog_shared_runtime_after_fork_parent(const struct ddog_ForkSafeRuntime *handle);
61
+
62
+ /**
63
+ * Must be called in the child process after `fork()`.
64
+ *
65
+ * Creates a fresh tokio runtime and restarts all workers. The original
66
+ * runtime cannot be safely reused after a fork.
67
+ *
68
+ * Returns `None` on success, or an error if the runtime could not be
69
+ * reinitialized.
70
+ * The handle must have been initialized with `ddog_shared_runtime_new`.
71
+ */
72
+ struct ddog_SharedRuntimeFFIError *ddog_shared_runtime_after_fork_child(const struct ddog_ForkSafeRuntime *handle);
73
+
74
+ /**
75
+ * Shut down the `ForkSafeRuntime`, stopping all workers.
76
+ *
77
+ * `timeout_ms` is the maximum time to wait for workers to stop, in
78
+ * milliseconds. Pass `0` for no timeout.
79
+ *
80
+ * Returns `None` on success, or `SharedRuntimeErrorCode::ShutdownTimedOut`
81
+ * if the timeout was reached.
82
+ * The handle must have been initialized with `ddog_shared_runtime_new`.
83
+ */
84
+ struct ddog_SharedRuntimeFFIError *ddog_shared_runtime_shutdown(const struct ddog_ForkSafeRuntime *handle,
85
+ uint64_t timeout_ms);
86
+
87
+ #ifdef __cplusplus
88
+ } // extern "C"
89
+ #endif // __cplusplus
90
+
91
+ #endif /* DDOG_SHARED_RUNTIME_H */
@@ -52,7 +52,7 @@ ddog_MaybeError ddog_telemetry_builder_with_config(struct ddog_TelemetryWorkerBu
52
52
  * * handle should be a non null pointer to a null pointer
53
53
  */
54
54
  ddog_MaybeError ddog_telemetry_builder_run(struct ddog_TelemetryWorkerBuilder *builder,
55
- struct ddog_TelemetryWorkerHandle **out_handle);
55
+ ddog_TelemetryWorkerHandle **out_handle);
56
56
 
57
57
  /**
58
58
  * Builds the telemetry worker and return a handle to it. The worker will only process and send
@@ -63,13 +63,23 @@ ddog_MaybeError ddog_telemetry_builder_run(struct ddog_TelemetryWorkerBuilder *b
63
63
  * * handle should be a non null pointer to a null pointer
64
64
  */
65
65
  ddog_MaybeError ddog_telemetry_builder_run_metric_logs(struct ddog_TelemetryWorkerBuilder *builder,
66
- struct ddog_TelemetryWorkerHandle **out_handle);
66
+ ddog_TelemetryWorkerHandle **out_handle);
67
67
 
68
+ /**
69
+ * Sets the telemetry endpoint from its component parts.
70
+ *
71
+ * * `api_key` / `test_token`: ignored when empty.
72
+ * * `timeout_ms`: pass 0 to keep the existing/default timeout.
73
+ */
68
74
  ddog_MaybeError ddog_telemetry_builder_with_endpoint_config_endpoint(struct ddog_TelemetryWorkerBuilder *telemetry_builder,
69
- const struct ddog_Endpoint *endpoint);
75
+ ddog_CharSlice url,
76
+ ddog_CharSlice api_key,
77
+ uint64_t timeout_ms,
78
+ ddog_CharSlice test_token,
79
+ bool use_system_resolver);
70
80
 
71
81
  /**
72
- * Sets a property from it's string value.
82
+ * Sets the endpoint property from its component parts.
73
83
  *
74
84
  * Available properties:
75
85
  *
@@ -77,10 +87,14 @@ ddog_MaybeError ddog_telemetry_builder_with_endpoint_config_endpoint(struct ddog
77
87
  */
78
88
  ddog_MaybeError ddog_telemetry_builder_with_property_endpoint(struct ddog_TelemetryWorkerBuilder *telemetry_builder,
79
89
  enum ddog_TelemetryWorkerBuilderEndpointProperty _property,
80
- const struct ddog_Endpoint *endpoint);
90
+ ddog_CharSlice url,
91
+ ddog_CharSlice api_key,
92
+ uint64_t timeout_ms,
93
+ ddog_CharSlice test_token,
94
+ bool use_system_resolver);
81
95
 
82
96
  /**
83
- * Sets a property from it's string value.
97
+ * Sets a named endpoint property from its component parts.
84
98
  *
85
99
  * Available properties:
86
100
  *
@@ -88,7 +102,11 @@ ddog_MaybeError ddog_telemetry_builder_with_property_endpoint(struct ddog_Teleme
88
102
  */
89
103
  ddog_MaybeError ddog_telemetry_builder_with_endpoint_named_property(struct ddog_TelemetryWorkerBuilder *telemetry_builder,
90
104
  ddog_CharSlice property,
91
- const struct ddog_Endpoint *endpoint);
105
+ ddog_CharSlice url,
106
+ ddog_CharSlice api_key,
107
+ uint64_t timeout_ms,
108
+ ddog_CharSlice test_token,
109
+ bool use_system_resolver);
92
110
 
93
111
  ddog_MaybeError ddog_telemetry_builder_with_str_application_service_version(struct ddog_TelemetryWorkerBuilder *telemetry_builder,
94
112
  ddog_CharSlice param);
@@ -239,11 +257,11 @@ ddog_MaybeError ddog_telemetry_builder_with_bool_named_property(struct ddog_Tele
239
257
  ddog_CharSlice property,
240
258
  bool param);
241
259
 
242
- ddog_MaybeError ddog_telemetry_handle_add_dependency(const struct ddog_TelemetryWorkerHandle *handle,
260
+ ddog_MaybeError ddog_telemetry_handle_add_dependency(const ddog_TelemetryWorkerHandle *handle,
243
261
  ddog_CharSlice dependency_name,
244
262
  ddog_CharSlice dependency_version);
245
263
 
246
- ddog_MaybeError ddog_telemetry_handle_add_integration(const struct ddog_TelemetryWorkerHandle *handle,
264
+ ddog_MaybeError ddog_telemetry_handle_add_integration(const ddog_TelemetryWorkerHandle *handle,
247
265
  ddog_CharSlice dependency_name,
248
266
  ddog_CharSlice dependency_version,
249
267
  bool enabled,
@@ -256,33 +274,33 @@ ddog_MaybeError ddog_telemetry_handle_add_integration(const struct ddog_Telemetr
256
274
  * * stack_trace: stack trace associated with the log. If no stack trace is available, an empty
257
275
  * string should be passed
258
276
  */
259
- ddog_MaybeError ddog_telemetry_handle_add_log(const struct ddog_TelemetryWorkerHandle *handle,
277
+ ddog_MaybeError ddog_telemetry_handle_add_log(const ddog_TelemetryWorkerHandle *handle,
260
278
  ddog_CharSlice indentifier,
261
279
  ddog_CharSlice message,
262
280
  enum ddog_LogLevel level,
263
281
  ddog_CharSlice stack_trace);
264
282
 
265
- ddog_MaybeError ddog_telemetry_handle_start(const struct ddog_TelemetryWorkerHandle *handle);
283
+ ddog_MaybeError ddog_telemetry_handle_start(const ddog_TelemetryWorkerHandle *handle);
266
284
 
267
- struct ddog_TelemetryWorkerHandle *ddog_telemetry_handle_clone(const struct ddog_TelemetryWorkerHandle *handle);
285
+ ddog_TelemetryWorkerHandle *ddog_telemetry_handle_clone(const ddog_TelemetryWorkerHandle *handle);
268
286
 
269
- ddog_MaybeError ddog_telemetry_handle_stop(const struct ddog_TelemetryWorkerHandle *handle);
287
+ ddog_MaybeError ddog_telemetry_handle_stop(const ddog_TelemetryWorkerHandle *handle);
270
288
 
271
289
  /**
272
290
  * * compatible: should be false if the metric is language specific, true otherwise
273
291
  */
274
- struct ddog_ContextKey ddog_telemetry_handle_register_metric_context(const struct ddog_TelemetryWorkerHandle *handle,
292
+ struct ddog_ContextKey ddog_telemetry_handle_register_metric_context(const ddog_TelemetryWorkerHandle *handle,
275
293
  ddog_CharSlice name,
276
294
  enum ddog_MetricType metric_type,
277
295
  struct ddog_Vec_Tag tags,
278
296
  bool common,
279
297
  enum ddog_MetricNamespace namespace_);
280
298
 
281
- ddog_MaybeError ddog_telemetry_handle_add_point(const struct ddog_TelemetryWorkerHandle *handle,
299
+ ddog_MaybeError ddog_telemetry_handle_add_point(const ddog_TelemetryWorkerHandle *handle,
282
300
  const struct ddog_ContextKey *context_key,
283
301
  double value);
284
302
 
285
- ddog_MaybeError ddog_telemetry_handle_add_point_with_tags(const struct ddog_TelemetryWorkerHandle *handle,
303
+ ddog_MaybeError ddog_telemetry_handle_add_point_with_tags(const ddog_TelemetryWorkerHandle *handle,
286
304
  const struct ddog_ContextKey *context_key,
287
305
  double value,
288
306
  struct ddog_Vec_Tag extra_tags);
@@ -290,18 +308,18 @@ ddog_MaybeError ddog_telemetry_handle_add_point_with_tags(const struct ddog_Tele
290
308
  /**
291
309
  * This function takes ownership of the handle. It should not be used after calling it
292
310
  */
293
- void ddog_telemetry_handle_wait_for_shutdown(struct ddog_TelemetryWorkerHandle *handle);
311
+ void ddog_telemetry_handle_wait_for_shutdown(ddog_TelemetryWorkerHandle *handle);
294
312
 
295
313
  /**
296
314
  * This function takes ownership of the handle. It should not be used after calling it
297
315
  */
298
- void ddog_telemetry_handle_wait_for_shutdown_ms(struct ddog_TelemetryWorkerHandle *handle,
316
+ void ddog_telemetry_handle_wait_for_shutdown_ms(ddog_TelemetryWorkerHandle *handle,
299
317
  uint64_t wait_for_ms);
300
318
 
301
319
  /**
302
320
  * Drops the handle without waiting for shutdown. The worker will continue running in the
303
321
  * background until it exits by itself
304
322
  */
305
- void ddog_telemetry_handle_drop(struct ddog_TelemetryWorkerHandle *handle);
323
+ void ddog_telemetry_handle_drop(ddog_TelemetryWorkerHandle *handle);
306
324
 
307
325
  #endif /* DDOG_TELEMETRY_H */
@@ -8,7 +8,7 @@ includedir=${prefix}/include
8
8
 
9
9
  Name: datadog_profiling
10
10
  Description: Contains common code used to implement Datadog's Continuous Profilers. (Dynamic linking variant, sets rpath)
11
- Version: 33.0.0
11
+ Version: 40.0.0
12
12
  Requires:
13
13
  Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
14
14
  Libs.private:
@@ -125,6 +125,7 @@ dispatch2,https://github.com/madsmtm/objc2,Zlib OR Apache-2.0 OR MIT,"Mads Marqu
125
125
  displaydoc,https://github.com/yaahc/displaydoc,MIT OR Apache-2.0,Jane Lusby <jlusby@yaah.dev>
126
126
  dyn-clone,https://github.com/dtolnay/dyn-clone,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
127
127
  either,https://github.com/rayon-rs/either,MIT OR Apache-2.0,bluss
128
+ elf,https://github.com/cole14/rust-elf,MIT OR Apache-2.0,Christopher Cole <chris.cole.09@gmail.com>
128
129
  encoding_rs,https://github.com/hsivonen/encoding_rs,(Apache-2.0 OR MIT) AND BSD-3-Clause,Henri Sivonen <hsivonen@hsivonen.fi>
129
130
  enum-as-inner,https://github.com/bluejekyll/enum-as-inner,MIT OR Apache-2.0,Benjamin Fry <benjaminfry@me.com>
130
131
  equivalent,https://github.com/cuviper/equivalent,Apache-2.0 OR MIT,The equivalent Authors
@@ -219,7 +220,7 @@ js-sys,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/js-sys,MIT OR
219
220
  kernel32-sys,https://github.com/retep998/winapi-rs,MIT,Peter Atashian <retep998@gmail.com>
220
221
  kv-log-macro,https://github.com/yoshuawuyts/kv-log-macro,MIT OR Apache-2.0,Yoshua Wuyts <yoshuawuyts@gmail.com>
221
222
  lazy_static,https://github.com/rust-lang-nursery/lazy-static.rs,MIT OR Apache-2.0,Marvin Löbel <loebel.marvin@gmail.com>
222
- libc,https://github.com/rust-lang/libc,MIT OR Apache-2.0,The Rust Project Developers
223
+ libc,https://github.com/rust-lang/libc,MIT OR Apache-2.0,The libc Authors
223
224
  libdd-libunwind-sys,https://github.com/DataDog/libdatadog/tree/main/libdd-libunwind-sys,Apache-2.0,The libdd-libunwind-sys Authors
224
225
  libloading,https://github.com/nagisa/rust_libloading,ISC,Simonas Kazlauskas <libloading@kazlauskas.me>
225
226
  libredox,https://gitlab.redox-os.org/redox-os/libredox,MIT,4lDO2 <4lDO2@protonmail.com>
@@ -229,6 +230,7 @@ linux-raw-sys,https://github.com/sunfishcode/linux-raw-sys,Apache-2.0 WITH LLVM-
229
230
  litemap,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers
230
231
  lock_api,https://github.com/Amanieu/parking_lot,MIT OR Apache-2.0,Amanieu d'Antras <amanieu@gmail.com>
231
232
  log,https://github.com/rust-lang/log,MIT OR Apache-2.0,The Rust Project Developers
233
+ lru,https://github.com/jeromefroe/lru-rs,MIT,Jerome Froelich <jeromefroelic@hotmail.com>
232
234
  manual_future,https://github.com/dmarcuse/manual_future,MIT,Dominic Marcuse <dominic@marcuse.us>
233
235
  matchers,https://github.com/hawkw/matchers,MIT,Eliza Weisman <eliza@buoyant.io>
234
236
  matchit,https://github.com/ibraheemdev/matchit,MIT AND BSD-3-Clause,Ibraheem Ahmed <ibraheem@ibraheem.ca>
@@ -304,6 +306,7 @@ proc-macro-crate,https://github.com/bkchr/proc-macro-crate,MIT OR Apache-2.0,Bas
304
306
  proc-macro-error,https://gitlab.com/CreepySkeleton/proc-macro-error,MIT OR Apache-2.0,CreepySkeleton <creepy-skeleton@yandex.ru>
305
307
  proc-macro-error-attr,https://gitlab.com/CreepySkeleton/proc-macro-error,MIT OR Apache-2.0,CreepySkeleton <creepy-skeleton@yandex.ru>
306
308
  proc-macro2,https://github.com/dtolnay/proc-macro2,MIT OR Apache-2.0,"David Tolnay <dtolnay@gmail.com>, Alex Crichton <alex@alexcrichton.com>"
309
+ proc-macro2-diagnostics,https://github.com/SergioBenitez/proc-macro2-diagnostics,MIT OR Apache-2.0,Sergio Benitez <sb@sergio.bz>
307
310
  prost,https://github.com/tokio-rs/prost,Apache-2.0,"Dan Burkert <dan@danburkert.com>, Lucio Franco <luciofranco14@gmail.com>, Casper Meijn <casper@meijn.net>, Tokio Contributors <team@tokio.rs>"
308
311
  prost-derive,https://github.com/tokio-rs/prost,Apache-2.0,"Dan Burkert <dan@danburkert.com>, Lucio Franco <luciofranco14@gmail.com>, Casper Meijn <casper@meijn.net>, Tokio Contributors <team@tokio.rs>"
309
312
  prost-types,https://github.com/tokio-rs/prost,Apache-2.0,"Dan Burkert <dan@danburkert.com>, Lucio Franco <luciofranco14@gmail.com>, Casper Meijn <casper@meijn.net>, Tokio Contributors <team@tokio.rs>"
@@ -372,6 +375,7 @@ semver,https://github.com/dtolnay/semver,MIT OR Apache-2.0,David Tolnay <dtolnay
372
375
  sendfd,https://github.com/standard-ai/sendfd,Apache-2.0 OR BSD-3-Clause,"Simonas Kazlauskas <simonas@standard.ai>, Bernardo Meurer <bernardo@standard.ai>, Léo Gaspard <leo@standard.ai>"
373
376
  serde,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>"
374
377
  serde-bool,https://github.com/x52dev/serde-utils,MIT OR Apache-2.0,Rob Ede <robjtede@icloud.com>
378
+ serde-transcode,https://github.com/sfackler/serde-transcode,MIT OR Apache-2.0,Steven Fackler <sfackler@palantir.com>
375
379
  serde_bytes,https://github.com/serde-rs/bytes,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
376
380
  serde_core,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>"
377
381
  serde_derive,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>"
@@ -427,6 +431,7 @@ target-triple,https://github.com/dtolnay/target-triple,MIT OR Apache-2.0,David T
427
431
  tempfile,https://github.com/Stebalien/tempfile,MIT OR Apache-2.0,"Steven Allen <steven@stebalien.com>, The Rust Project Developers, Ashley Mannix <ashleymannix@live.com.au>, Jason White <me@jasonwhite.io>"
428
432
  termcolor,https://github.com/BurntSushi/termcolor,Unlicense OR MIT,Andrew Gallant <jamslam@gmail.com>
429
433
  test-case-macros,https://github.com/frondeus/test-case,MIT,"Marcin Sas-Szymanski <marcin.sas-szymanski@anixe.pl>, Wojciech Polak <frondeus@gmail.com>, Łukasz Biel <lukasz.p.biel@gmail.com>"
434
+ thin-vec,https://github.com/mozilla/thin-vec,MIT OR Apache-2.0,Aria Beingessner <a.beingessner@gmail.com>
430
435
  thiserror,https://github.com/dtolnay/thiserror,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
431
436
  thiserror-impl,https://github.com/dtolnay/thiserror,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
432
437
  thread_local,https://github.com/Amanieu/thread_local-rs,MIT OR Apache-2.0,Amanieu d'Antras <amanieu@gmail.com>
@@ -493,6 +498,7 @@ wasm-bindgen-macro,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/m
493
498
  wasm-bindgen-macro-support,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro-support,MIT OR Apache-2.0,The wasm-bindgen Developers
494
499
  wasm-bindgen-shared,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/shared,MIT OR Apache-2.0,The wasm-bindgen Developers
495
500
  web-sys,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/web-sys,MIT OR Apache-2.0,The wasm-bindgen Developers
501
+ web-time,https://github.com/daxpedda/web-time,MIT OR Apache-2.0,The web-time Authors
496
502
  webpki-root-certs,https://github.com/rustls/webpki-roots,CDLA-Permissive-2.0,The webpki-root-certs Authors
497
503
  webpki-roots,https://github.com/rustls/webpki-roots,CDLA-Permissive-2.0,The webpki-roots Authors
498
504
  widestring,https://github.com/VoidStarKat/widestring-rs,MIT OR Apache-2.0,The widestring Authors
@@ -0,0 +1,12 @@
1
+ Datadog libdatadog
2
+ Copyright 2021-2022 Datadog, Inc.
3
+
4
+ This product includes software developed at Datadog (<https://www.datadoghq.com/>).
5
+
6
+ --
7
+
8
+ This product bundles a copy of the libbpf/usdt single-header USDT
9
+ library in `libdd-profiling-heap-sampler/vendor/usdt.h`. That file is licensed
10
+ under the BSD 2-Clause License, Copyright (c) 2024 Meta Platforms, Inc.
11
+ and affiliates. The SPDX identifier and copyright notice are retained
12
+ verbatim in the file header. Upstream: <https://github.com/libbpf/usdt>.