libdatadog 44.0.1.1.0 → 46.0.0.1.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 (102) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-46.0.0/aarch64-linux}/LICENSE-3rdparty.csv +6 -9
  4. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/bin/libdatadog-crashtracking-receiver +0 -0
  5. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/include/datadog/common.h +235 -143
  6. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux}/include/datadog/crashtracker.h +4 -4
  7. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux}/include/datadog/data-pipeline.h +78 -2
  8. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux}/include/datadog/ddsketch.h +2 -2
  9. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-46.0.0/aarch64-linux}/include/datadog/library-config.h +47 -24
  10. data/vendor/{libdatadog-44.0.1/x86_64-linux-musl → libdatadog-46.0.0/aarch64-linux}/include/datadog/otel-thread-ctx.h +20 -6
  11. data/vendor/{libdatadog-44.0.1/x86_64-linux-musl → libdatadog-46.0.0/aarch64-linux}/include/datadog/profiling.h +1 -1
  12. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/lib/libdatadog_profiling.so +0 -0
  13. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  14. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux-musl}/LICENSE-3rdparty.csv +6 -9
  15. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  16. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/include/datadog/common.h +235 -143
  17. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/aarch64-linux-musl}/include/datadog/crashtracker.h +4 -4
  18. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/aarch64-linux-musl}/include/datadog/data-pipeline.h +78 -2
  19. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/include/datadog/ddsketch.h +2 -2
  20. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux-musl}/include/datadog/library-config.h +47 -24
  21. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux-musl}/include/datadog/otel-thread-ctx.h +20 -6
  22. data/vendor/{libdatadog-44.0.1/arm64-darwin → libdatadog-46.0.0/aarch64-linux-musl}/include/datadog/profiling.h +1 -1
  23. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/lib/libdatadog_profiling.so +0 -0
  24. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  25. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/arm64-darwin}/LICENSE-3rdparty.csv +6 -9
  26. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/include/datadog/common.h +235 -143
  27. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-46.0.0/arm64-darwin}/include/datadog/crashtracker.h +4 -4
  28. data/vendor/{libdatadog-44.0.1/x86_64-linux-musl → libdatadog-46.0.0/arm64-darwin}/include/datadog/data-pipeline.h +78 -2
  29. data/vendor/{libdatadog-44.0.1/x86_64-linux-musl → libdatadog-46.0.0/arm64-darwin}/include/datadog/ddsketch.h +2 -2
  30. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/arm64-darwin}/include/datadog/library-config.h +47 -24
  31. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/arm64-darwin}/include/datadog/otel-thread-ctx.h +20 -6
  32. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-46.0.0/arm64-darwin}/include/datadog/profiling.h +1 -1
  33. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/lib/libdatadog_profiling.dylib +0 -0
  34. data/vendor/{libdatadog-44.0.1/x86_64-linux-musl → libdatadog-46.0.0/arm64-darwin}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  35. data/vendor/libdatadog-46.0.0/x86_64-linux/LICENSE-3rdparty.csv +557 -0
  36. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/bin/libdatadog-crashtracking-receiver +0 -0
  37. data/vendor/libdatadog-46.0.0/x86_64-linux/include/datadog/common.h +3215 -0
  38. data/vendor/libdatadog-46.0.0/x86_64-linux/include/datadog/crashtracker.h +1026 -0
  39. data/vendor/libdatadog-46.0.0/x86_64-linux/include/datadog/data-pipeline.h +732 -0
  40. data/vendor/libdatadog-46.0.0/x86_64-linux/include/datadog/ddsketch.h +89 -0
  41. data/vendor/libdatadog-46.0.0/x86_64-linux/include/datadog/library-config.h +138 -0
  42. data/vendor/libdatadog-46.0.0/x86_64-linux/include/datadog/otel-thread-ctx.h +116 -0
  43. data/vendor/libdatadog-46.0.0/x86_64-linux/include/datadog/profiling.h +1167 -0
  44. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/lib/libdatadog_profiling.so +0 -0
  45. data/vendor/libdatadog-46.0.0/x86_64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +15 -0
  46. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/LICENSE-3rdparty.csv +6 -9
  47. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  48. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/common.h +235 -143
  49. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/crashtracker.h +4 -4
  50. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-46.0.0/x86_64-linux-musl}/include/datadog/data-pipeline.h +78 -2
  51. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/x86_64-linux-musl}/include/datadog/ddsketch.h +2 -2
  52. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/library-config.h +47 -24
  53. data/vendor/{libdatadog-44.0.1/aarch64-linux-musl → libdatadog-46.0.0/x86_64-linux-musl}/include/datadog/otel-thread-ctx.h +20 -6
  54. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/x86_64-linux-musl}/include/datadog/profiling.h +1 -1
  55. data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/lib/libdatadog_profiling.so +0 -0
  56. data/vendor/{libdatadog-44.0.1/aarch64-linux → libdatadog-46.0.0/x86_64-linux-musl}/lib/pkgconfig/datadog_profiling_with_rpath.pc +1 -1
  57. metadata +91 -91
  58. data/vendor/libdatadog-44.0.1/x86_64-linux/LICENSE-3rdparty.csv +0 -560
  59. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/common.h +0 -3123
  60. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/crashtracker.h +0 -1026
  61. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/data-pipeline.h +0 -656
  62. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/ddsketch.h +0 -89
  63. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/library-config.h +0 -115
  64. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/otel-thread-ctx.h +0 -102
  65. data/vendor/libdatadog-44.0.1/x86_64-linux/include/datadog/profiling.h +0 -1167
  66. data/vendor/libdatadog-44.0.1/x86_64-linux/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -15
  67. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/LICENSE +0 -0
  68. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/NOTICE +0 -0
  69. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/include/datadog/blazesym.h +0 -0
  70. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/include/datadog/ffe.h +0 -0
  71. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/include/datadog/log.h +0 -0
  72. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/include/datadog/shared-runtime.h +0 -0
  73. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux/include/datadog/telemetry.h +0 -0
  74. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/LICENSE +0 -0
  75. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/NOTICE +0 -0
  76. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/include/datadog/blazesym.h +0 -0
  77. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/include/datadog/ffe.h +0 -0
  78. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/include/datadog/log.h +0 -0
  79. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/include/datadog/shared-runtime.h +0 -0
  80. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/aarch64-linux-musl/include/datadog/telemetry.h +0 -0
  81. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/LICENSE +0 -0
  82. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/NOTICE +0 -0
  83. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/bin/libdatadog-crashtracking-receiver +0 -0
  84. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/include/datadog/blazesym.h +0 -0
  85. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/include/datadog/ffe.h +0 -0
  86. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/include/datadog/log.h +0 -0
  87. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/include/datadog/shared-runtime.h +0 -0
  88. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/arm64-darwin/include/datadog/telemetry.h +0 -0
  89. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/LICENSE +0 -0
  90. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/NOTICE +0 -0
  91. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/include/datadog/blazesym.h +0 -0
  92. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/include/datadog/ffe.h +0 -0
  93. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/include/datadog/log.h +0 -0
  94. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/include/datadog/shared-runtime.h +0 -0
  95. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux/include/datadog/telemetry.h +0 -0
  96. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/LICENSE +0 -0
  97. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/NOTICE +0 -0
  98. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/blazesym.h +0 -0
  99. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/ffe.h +0 -0
  100. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/log.h +0 -0
  101. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/shared-runtime.h +0 -0
  102. /data/vendor/{libdatadog-44.0.1 → libdatadog-46.0.0}/x86_64-linux-musl/include/datadog/telemetry.h +0 -0
@@ -20,6 +20,31 @@ extern "C" {
20
20
  */
21
21
  void ddog_trace_exporter_error_free(struct ddog_TraceExporterError *error);
22
22
 
23
+ /**
24
+ * Select external observation delivery and disable native telemetry delivery.
25
+ *
26
+ * # Safety
27
+ * `config`, when non-null, must be a live, exclusively borrowed configuration.
28
+ */
29
+ struct ddog_TraceExporterError *ddog_trace_exporter_config_enable_observations(struct ddog_TraceExporterConfig *config);
30
+
31
+ /**
32
+ * Send chunks with caller-owned observations on success, failure, or cancellation.
33
+ * Native telemetry is not submitted for this operation. Both outputs are initialised
34
+ * before validation; invalid input and contained panics leave zero observations.
35
+ * `chunks` is consumed on every return, including invalid arguments and panics.
36
+ *
37
+ * # Safety
38
+ * Non-null pointers must be valid for their types. Output slots must be writable,
39
+ * unaliased, and contain no live owned response. Free a returned response with
40
+ * `ddog_trace_exporter_response_free`; observations require no cleanup.
41
+ */
42
+ struct ddog_TraceExporterError *ddog_trace_exporter_send_trace_chunks_observed(const ddog_TraceExporter *exporter,
43
+ ddog_TracerTraceChunks *chunks,
44
+ struct ddog_TraceExporterResponse **response_out,
45
+ struct ddog_TraceExporterObservations *observations_out,
46
+ const ddog_TraceExporterCancelToken *cancel);
47
+
23
48
  /**
24
49
  * Return a borrowed view of the response body. The returned slice is
25
50
  * only valid as long as `response` is alive. Returns an empty slice
@@ -137,6 +162,13 @@ struct ddog_TraceExporterError *ddog_trace_exporter_config_enable_telemetry(stru
137
162
  struct ddog_TraceExporterError *ddog_trace_exporter_config_set_compute_stats(struct ddog_TraceExporterConfig *config,
138
163
  bool is_enabled);
139
164
 
165
+ /**
166
+ * Indicates that the tracer has already marked top-level spans with `_dd.top_level`.
167
+ * Sets the `Datadog-Client-Computed-Top-Level` header without enabling stats computation.
168
+ */
169
+ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_client_computed_top_level(struct ddog_TraceExporterConfig *config,
170
+ bool client_computed_top_level);
171
+
140
172
  /**
141
173
  * Sets `Datadog-Client-Computed-Stats` header to `true`.
142
174
  * This indicates that the upstream system has already computed the stats,
@@ -154,12 +186,31 @@ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_compute_stats(str
154
186
  struct ddog_TraceExporterError *ddog_trace_exporter_config_set_client_computed_stats(struct ddog_TraceExporterConfig *config,
155
187
  bool client_computed_stats);
156
188
 
189
+ /**
190
+ * Shares a mutable metadata handle with the exporter config.
191
+ *
192
+ * When set, this supersedes `ddog_trace_exporter_config_set_process_tags` and
193
+ * `ddog_trace_exporter_config_set_runtime_id`.
194
+ */
195
+ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_mutable_metadata(struct ddog_TraceExporterConfig *config,
196
+ const ddog_MutableMetadataHandle *metadata);
197
+
157
198
  /**
158
199
  * Sets the process tags to be included in the stats payload.
200
+ *
201
+ * This should not be used when `ddog_trace_exporter_config_set_mutable_metadata` is used.
159
202
  */
160
203
  struct ddog_TraceExporterError *ddog_trace_exporter_config_set_process_tags(struct ddog_TraceExporterConfig *config,
161
204
  ddog_CharSlice process_tags);
162
205
 
206
+ /**
207
+ * Sets the runtime id used in payloads.
208
+ *
209
+ * This should not be used when `ddog_trace_exporter_config_set_mutable_metadata` is used.
210
+ */
211
+ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_runtime_id(struct ddog_TraceExporterConfig *config,
212
+ ddog_CharSlice runtime_id);
213
+
163
214
  /**
164
215
  * Sets the `X-Datadog-Test-Session-Token` header. Only used for testing with the test agent.
165
216
  */
@@ -175,13 +226,13 @@ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_connection_timeou
175
226
  /**
176
227
  * Sets a shared runtime for the TraceExporter to use for background workers.
177
228
  *
178
- * `handle` must have been initialized with [`ddog_shared_runtime_new`].
229
+ * `handle` must have been initialized with `ddog_shared_runtime_new`.
179
230
  *
180
231
  * When set, the exporter will use the provided runtime instead of creating its own.
181
232
  * This allows multiple exporters (or other components) to share a single runtime.
182
233
  * The config holds a clone of the `Arc` (increments the strong count), so the
183
234
  * original handle remains valid and must still be freed with
184
- * [`ddog_shared_runtime_free`].
235
+ * `ddog_shared_runtime_free`.
185
236
  */
186
237
  struct ddog_TraceExporterError *ddog_trace_exporter_config_set_shared_runtime(struct ddog_TraceExporterConfig *config,
187
238
  struct ddog_ForkSafeRuntime *handle);
@@ -328,6 +379,31 @@ struct ddog_TraceExporterError *ddog_trace_exporter_new(ddog_TraceExporter **out
328
379
  */
329
380
  void ddog_trace_exporter_free(ddog_TraceExporter *handle);
330
381
 
382
+ /**
383
+ * Consumes the exporter and waits at most `timeout_ms` for its workers to flush.
384
+ * The handle is consumed on success and error. Other workers on a shared runtime
385
+ * are unaffected. The deadline bounds worker flushing, not runtime destruction:
386
+ * dropping the last runtime owner can additionally wait for blocking tasks such
387
+ * as system DNS resolution. Hosts must account for that separately.
388
+ *
389
+ * # Safety
390
+ *
391
+ * `handle` must be valid and must not be used concurrently or after this call.
392
+ */
393
+ struct ddog_TraceExporterError *ddog_trace_exporter_shutdown(ddog_TraceExporter *handle,
394
+ uint64_t timeout_ms);
395
+
396
+ /**
397
+ * Releases the exporter without flushing or stopping its workers.
398
+ * The caller must also dispose of the runtime that owns those workers. This is
399
+ * intended for finalisation and failed fork recovery with an exclusively owned runtime.
400
+ *
401
+ * # Safety
402
+ *
403
+ * `handle` must be valid and must not be used concurrently or after this call.
404
+ */
405
+ void ddog_trace_exporter_discard(ddog_TraceExporter *handle);
406
+
331
407
  /**
332
408
  * Send traces to the Datadog Agent.
333
409
  *
@@ -73,11 +73,11 @@ struct ddog_VoidResult ddog_ddsketch_count(struct ddsketch_Handle_DDSketch *sket
73
73
  struct ddog_Vec_U8 ddog_ddsketch_encode(struct ddsketch_Handle_DDSketch *sketch);
74
74
 
75
75
  /**
76
- * Frees the memory allocated for a Vec<u8> returned by ddsketch functions.
76
+ * Frees the memory allocated for a `Vec<u8>` returned by ddsketch functions.
77
77
  *
78
78
  * # Safety
79
79
  *
80
- * The vec parameter must be a valid Vec<u8> returned by this library.
80
+ * The vec parameter must be a valid `Vec<u8>` returned by this library.
81
81
  * After being called, the vec will not point to valid memory.
82
82
  */
83
83
  void ddog_Vec_U8_drop(struct ddog_Vec_U8 _vec);
@@ -24,32 +24,8 @@ void ddog_library_configurator_with_fleet_path(struct ddog_Configurator *c,
24
24
  void ddog_library_configurator_with_process_info(struct ddog_Configurator *c,
25
25
  struct ddog_ProcessInfo p);
26
26
 
27
- void ddog_library_configurator_with_detect_process_info(struct ddog_Configurator *c);
28
-
29
27
  void ddog_library_configurator_drop(struct ddog_Configurator*);
30
28
 
31
- struct ddog_LibraryConfigLoggedResult ddog_library_configurator_get(const struct ddog_Configurator *configurator);
32
-
33
- /**
34
- * Returns a static null-terminated string, containing the name of the environment variable
35
- * associated with the library configuration
36
- */
37
- struct ddog_CStr ddog_library_config_source_to_string(enum ddog_LibraryConfigSource name);
38
-
39
- /**
40
- * Returns a static null-terminated string with the path to the managed stable config yaml config
41
- * file
42
- */
43
- struct ddog_CStr ddog_library_config_fleet_stable_config_path(void);
44
-
45
- /**
46
- * Returns a static null-terminated string with the path to the local stable config yaml config
47
- * file
48
- */
49
- struct ddog_CStr ddog_library_config_local_stable_config_path(void);
50
-
51
- void ddog_library_config_drop(struct ddog_LibraryConfigLoggedResult config_result);
52
-
53
29
  /**
54
30
  * Allocates and returns a pointer to a new `TracerMetadata` object on the heap.
55
31
  *
@@ -89,6 +65,29 @@ void ddog_tracer_metadata_set(struct ddog_TracerMetadata *ptr,
89
65
  enum ddog_MetadataKind kind,
90
66
  const char *value);
91
67
 
68
+ /**
69
+ * Includes thread-context discovery metadata in the `TracerMetadata` object pointed to by `ptr`.
70
+ *
71
+ * If the builder has no thread-context metadata, configures it to publish
72
+ * the `tlsdesc_v1_dev` schema and a key map containing `datadog.local_root_span_id`.
73
+ * If the thread-context metadata is already set, leaves it unchanged.
74
+ *
75
+ * This function only updates the builder. Call `ddog_tracer_metadata_store` to publish it.
76
+ *
77
+ * # Arguments
78
+ * - `ptr`: Pointer to a `TracerMetadata` instance.
79
+ *
80
+ * # Safety
81
+ * - If non-null, `ptr` must point to a valid, properly aligned, live `TracerMetadata`.
82
+ * - The caller must ensure exclusive access to the instance for the duration of the call.
83
+ * - Ownership remains with the caller
84
+ *
85
+ * # Returns
86
+ * - On success: `VoidResult::Ok`, also when thread-context metadata is already present
87
+ * - An error if `ptr` is null.
88
+ */
89
+ struct ddog_VoidResult ddog_tracer_metadata_include_otel_thread_context(struct ddog_TracerMetadata *ptr);
90
+
92
91
  /**
93
92
  * Serializes the `TracerMetadata` into a platform-specific memory handle (e.g., memfd on Linux).
94
93
  * This function also attempts to publish the tracer metadata as an OTel process context
@@ -108,6 +107,30 @@ void ddog_tracer_metadata_set(struct ddog_TracerMetadata *ptr,
108
107
  */
109
108
  struct ddog_Result_TracerMemfdHandle ddog_tracer_metadata_store(struct ddog_TracerMetadata *ptr);
110
109
 
110
+ void ddog_library_configurator_with_detect_process_info(struct ddog_Configurator *c);
111
+
112
+ struct ddog_LibraryConfigLoggedResult ddog_library_configurator_get(const struct ddog_Configurator *configurator);
113
+
114
+ /**
115
+ * Returns a static null-terminated string, containing the name of the environment variable
116
+ * associated with the library configuration
117
+ */
118
+ struct ddog_CStr ddog_library_config_source_to_string(enum ddog_LibraryConfigSource name);
119
+
120
+ /**
121
+ * Returns a static null-terminated string with the path to the managed stable config yaml
122
+ * config file
123
+ */
124
+ struct ddog_CStr ddog_library_config_fleet_stable_config_path(void);
125
+
126
+ /**
127
+ * Returns a static null-terminated string with the path to the local stable config yaml config
128
+ * file
129
+ */
130
+ struct ddog_CStr ddog_library_config_local_stable_config_path(void);
131
+
132
+ void ddog_library_config_drop(struct ddog_LibraryConfigLoggedResult config_result);
133
+
111
134
  #ifdef __cplusplus
112
135
  } // extern "C"
113
136
  #endif // __cplusplus
@@ -29,6 +29,15 @@ struct ddog_VoidResult ddog_otel_thread_ctx_sanity_check(void);
29
29
  /**
30
30
  * Allocate and initialise a new thread context, including its W3C trace-flags byte.
31
31
  *
32
+ * `trace_id`, `span_id`, and `local_root_span_id` use W3C Trace Context byte order,
33
+ * equivalent to big-endian when interpreted as integers.
34
+ *
35
+ * When representing an active trace, both `trace_id` and `span_id` must be nonzero. Otherwise,
36
+ * `trace_id`, `span_id`, and `trace_flags` must be zero.
37
+ *
38
+ * This function does not validate IDs or reject invalid combinations of `trace_id`, `span_id`,
39
+ * and `trace_flags`.
40
+ *
32
41
  * Returns a non-null owned handle that must eventually be released with
33
42
  * `ddog_otel_thread_ctx_free`.
34
43
  */
@@ -42,9 +51,11 @@ struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_new(const uint8_t (*trace_
42
51
  *
43
52
  * # Safety
44
53
  *
54
+ * **`ctx` must not be a handle to a currently attached to a thread**. Only free detached
55
+ * contexts.
56
+ *
45
57
  * `ctx` must be a valid non-null pointer obtained from `ddog_otel_thread_ctx_new` or
46
- * `ddog_otel_thread_ctx_detach`, and must not be used after this call. In particular, `ctx`
47
- * must not be currently attached to a thread.
58
+ * `ddog_otel_thread_ctx_detach`, and must not be used after this call.
48
59
  */
49
60
  void ddog_otel_thread_ctx_free(struct ddog_ThreadContextHandle *ctx);
50
61
 
@@ -54,9 +65,10 @@ void ddog_otel_thread_ctx_free(struct ddog_ThreadContextHandle *ctx);
54
65
  *
55
66
  * # Safety
56
67
  *
57
- * `ctx` must be a valid non-null pointer obtained from this API. Ownership of `ctx` is
58
- * transferred to the TLS slot: the caller must not drop `ctx` while it is still actively
59
- * attached.
68
+ * Ownership of `ctx` is transferred to the TLS slot. **The caller must NOT free `ctx` while it
69
+ * is still actively attached**.
70
+ *
71
+ * `ctx` must be a valid non-null pointer obtained from this API.
60
72
  */
61
73
  struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_attach(struct ddog_ThreadContextHandle *ctx);
62
74
 
@@ -70,6 +82,7 @@ struct ddog_ThreadContextHandle *ddog_otel_thread_ctx_detach(void);
70
82
 
71
83
  /**
72
84
  * Update the currently attached context in-place, including its W3C trace-flags byte.
85
+ * Uses the same ID byte order and zero-value rules as `ddog_otel_thread_ctx_new`.
73
86
  *
74
87
  * If no context is currently attached, one is created and attached, equivalent to calling
75
88
  * `ddog_otel_thread_ctx_new` followed by `ddog_otel_thread_ctx_attach`.
@@ -81,7 +94,8 @@ void ddog_otel_thread_ctx_update(const uint8_t (*trace_id)[16],
81
94
 
82
95
  /**
83
96
  * Update `ctx` and attach it to the current thread. Returns the previously attached different
84
- * context, if any.
97
+ * context, if any. Uses the same ID byte order and zero-value rules as
98
+ * `ddog_otel_thread_ctx_new`.
85
99
  *
86
100
  * # Safety
87
101
  *
@@ -112,7 +112,7 @@ struct ddog_prof_Endpoint ddog_Endpoint_file(ddog_CharSlice filename);
112
112
  * # Arguments
113
113
  * * `profiling_library_name` - Profiling library name, usually dd-trace-something, e.g.
114
114
  * "dd-trace-rb". See
115
- * https://datadoghq.atlassian.net/wiki/spaces/PROF/pages/1538884229/Client#Header-values
115
+ * <https://datadoghq.atlassian.net/wiki/spaces/PROF/pages/1538884229/Client#Header-values>
116
116
  * (Datadog internal link)
117
117
  * for a list of common values.
118
118
  * * `profliling_library_version` - Version used when publishing the profiling library to a package
@@ -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: 44.0.1
11
+ Version: 46.0.0
12
12
  Requires:
13
13
  Libs: -L${libdir} -ldatadog_profiling -Wl,-rpath,${libdir}
14
14
  Libs.private:
@@ -15,7 +15,6 @@ anstyle-wincon,https://github.com/rust-cli/anstyle,MIT OR Apache-2.0,The anstyle
15
15
  anyhow,https://github.com/dtolnay/anyhow,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
16
16
  arbitrary,https://github.com/rust-fuzz/arbitrary,MIT OR Apache-2.0,"The Rust-Fuzz Project Developers, Nick Fitzgerald <fitzgen@gmail.com>, Manish Goregaokar <manishsmail@gmail.com>, Simonas Kazlauskas <arbitrary@kazlauskas.me>, Brian L. Troutwine <brian@troutwine.us>, Corey Farwell <coreyf@rwell.org>"
17
17
  arc-swap,https://github.com/vorner/arc-swap,MIT OR Apache-2.0,Michal 'vorner' Vaner <vorner@vorner.cz>
18
- arrayref,https://github.com/droundy/arrayref,BSD-2-Clause,David Roundy <roundyd@physics.oregonstate.edu>
19
18
  assert-json-diff,https://github.com/davidpdrsn/assert-json-diff,MIT,David Pedersen <david.pdrsn@gmail.com>
20
19
  async-attributes,https://github.com/async-rs/async-attributes,MIT OR Apache-2.0,Yoshua Wuyts <yoshuawuyts@gmail.com>
21
20
  async-channel,https://github.com/smol-rs/async-channel,Apache-2.0 OR MIT,Stjepan Glavina <stjepang@gmail.com>
@@ -218,14 +217,15 @@ jni,https://github.com/jni-rs/jni-rs,MIT OR Apache-2.0,Josh Chase <josh@prevoty.
218
217
  jni-sys,https://github.com/sfackler/rust-jni-sys,MIT OR Apache-2.0,Steven Fackler <sfackler@gmail.com>
219
218
  jobserver,https://github.com/rust-lang/jobserver-rs,MIT OR Apache-2.0,Alex Crichton <alex@alexcrichton.com>
220
219
  js-sys,https://github.com/rustwasm/wasm-bindgen/tree/master/crates/js-sys,MIT OR Apache-2.0,The wasm-bindgen Developers
221
- kernel32-sys,https://github.com/retep998/winapi-rs,MIT,Peter Atashian <retep998@gmail.com>
222
220
  kv-log-macro,https://github.com/yoshuawuyts/kv-log-macro,MIT OR Apache-2.0,Yoshua Wuyts <yoshuawuyts@gmail.com>
223
221
  lazy_static,https://github.com/rust-lang-nursery/lazy-static.rs,MIT OR Apache-2.0,Marvin Löbel <loebel.marvin@gmail.com>
224
222
  libc,https://github.com/rust-lang/libc,MIT OR Apache-2.0,The libc Authors
223
+ libc_alloc,https://github.com/daniel5151/libc_alloc,MIT,Daniel Prilik <danielprilik@gmail.com>
225
224
  libdd-libunwind-sys,https://github.com/DataDog/libdatadog/tree/main/libdd-libunwind-sys,Apache-2.0,The libdd-libunwind-sys Authors
226
225
  libdd-tuf,https://github.com/theupdateframework/rust-tuf,MIT OR Apache-2.0,"heartsucker <heartsucker@autistici.org>, Erick Tryzelaar <etryzelaar@google.com>"
227
226
  libloading,https://github.com/nagisa/rust_libloading,ISC,Simonas Kazlauskas <libloading@kazlauskas.me>
228
227
  libredox,https://gitlab.redox-os.org/redox-os/libredox,MIT,4lDO2 <4lDO2@protonmail.com>
228
+ libyaml-rs,https://github.com/yaml/libyaml-rs,MIT,"David Tolnay <dtolnay@gmail.com>, YAML Organization <noreply@yaml.org>"
229
229
  libz-rs-sys,https://github.com/trifectatechfoundation/zlib-rs,Zlib,The libz-rs-sys Authors
230
230
  link-cplusplus,https://github.com/dtolnay/link-cplusplus,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
231
231
  linux-raw-sys,https://github.com/sunfishcode/linux-raw-sys,Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT,Dan Gohman <dev@sunfishcode.online>
@@ -242,7 +242,6 @@ memfd,https://github.com/lucab/memfd-rs,MIT OR Apache-2.0,"Luca Bruno <lucab@luc
242
242
  memmap2,https://github.com/RazrFalcon/memmap2-rs,MIT OR Apache-2.0,"Dan Burkert <dan@danburkert.com>, Yevhenii Reizner <razrfalcon@gmail.com>"
243
243
  memoffset,https://github.com/Gilnaa/memoffset,MIT,Gilad Naaman <gilad.naaman@gmail.com>
244
244
  memory-stats,https://github.com/Arc-blroth/memory-stats,MIT OR Apache-2.0,Arc-blroth <45273859+Arc-blroth@users.noreply.github.com>
245
- microseh,https://github.com/sonodima/microseh,MIT,sonodima
246
245
  mime,https://github.com/hyperium/mime,MIT OR Apache-2.0,Sean McArthur <sean@seanmonstar.com>
247
246
  mime_guess,https://github.com/abonander/mime_guess,MIT,Austin Bonander <austin.bonander@gmail.com>
248
247
  minicov,https://github.com/Amanieu/minicov,Apache-2.0 OR MIT,Amanieu d'Antras <amanieu@gmail.com>
@@ -277,6 +276,9 @@ object,https://github.com/gimli-rs/object,Apache-2.0 OR MIT,The object Authors
277
276
  once_cell,https://github.com/matklad/once_cell,MIT OR Apache-2.0,Aleksey Kladov <aleksey.kladov@gmail.com>
278
277
  oorandom,https://hg.sr.ht/~icefox/oorandom,MIT,Simon Heath <icefox@dreamquest.io>
279
278
  openssl-probe,https://github.com/alexcrichton/openssl-probe,MIT OR Apache-2.0,Alex Crichton <alex@alexcrichton.com>
279
+ opentelemetry,https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry,Apache-2.0,The opentelemetry Authors
280
+ opentelemetry-proto,https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-proto,Apache-2.0,The opentelemetry-proto Authors
281
+ opentelemetry_sdk,https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-sdk,Apache-2.0,The opentelemetry_sdk Authors
280
282
  os_info,https://github.com/stanislav-tkach/os_info,MIT,"Jan Schulte <hello@unexpected-co.de>, Stanislav Tkach <stanislav.tkach@gmail.com>"
281
283
  page_size,https://github.com/Elzair/page_size_rs,MIT OR Apache-2.0,Philip Woods <elzairthesorcerer@gmail.com>
282
284
  parking,https://github.com/smol-rs/parking,Apache-2.0 OR MIT,"Stjepan Glavina <stjepang@gmail.com>, The Rust Project Developers"
@@ -320,7 +322,6 @@ protoc-bin-vendored-macos-aarch_64,https://github.com/stepancheg/rust-protoc-bin
320
322
  protoc-bin-vendored-macos-x86_64,https://github.com/stepancheg/rust-protoc-bin-vendored,MIT,Stepan Koltsov <stepan.koltsov@gmail.com>
321
323
  protoc-bin-vendored-win32,https://github.com/stepancheg/rust-protoc-bin-vendored,MIT,Stepan Koltsov <stepan.koltsov@gmail.com>
322
324
  pyo3,https://github.com/pyo3/pyo3,MIT OR Apache-2.0,PyO3 Project and Contributors <https://github.com/PyO3>
323
- pyo3-build-config,https://github.com/pyo3/pyo3,MIT OR Apache-2.0,PyO3 Project and Contributors <https://github.com/PyO3>
324
325
  pyo3-ffi,https://github.com/pyo3/pyo3,MIT OR Apache-2.0,PyO3 Project and Contributors <https://github.com/PyO3>
325
326
  pyo3-macros,https://github.com/pyo3/pyo3,MIT OR Apache-2.0,PyO3 Project and Contributors <https://github.com/PyO3>
326
327
  pyo3-macros-backend,https://github.com/pyo3/pyo3,MIT OR Apache-2.0,PyO3 Project and Contributors <https://github.com/PyO3>
@@ -374,9 +375,7 @@ sdd,https://github.com/wvwwvwwv/scalable-delayed-dealloc,Apache-2.0,wvwwvwwv <wv
374
375
  security-framework,https://github.com/kornelski/rust-security-framework,MIT OR Apache-2.0,"Steven Fackler <sfackler@gmail.com>, Kornel <kornel@geekhood.net>"
375
376
  security-framework-sys,https://github.com/kornelski/rust-security-framework,MIT OR Apache-2.0,"Steven Fackler <sfackler@gmail.com>, Kornel <kornel@geekhood.net>"
376
377
  semver,https://github.com/dtolnay/semver,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
377
- 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>"
378
378
  serde,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>"
379
- serde-bool,https://github.com/x52dev/serde-utils,MIT OR Apache-2.0,Rob Ede <robjtede@icloud.com>
380
379
  serde-transcode,https://github.com/sfackler/serde-transcode,MIT OR Apache-2.0,Steven Fackler <sfackler@palantir.com>
381
380
  serde_bytes,https://github.com/serde-rs/bytes,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
382
381
  serde_core,https://github.com/serde-rs/serde,MIT OR Apache-2.0,"Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>"
@@ -388,7 +387,6 @@ serde_regex,https://github.com/tailhook/serde-regex,MIT OR Apache-2.0,paul@colom
388
387
  serde_spanned,https://github.com/toml-rs/toml,MIT OR Apache-2.0,The serde_spanned Authors
389
388
  serde_with,https://github.com/jonasbb/serde_with,MIT OR Apache-2.0,"Jonas Bushart, Marcin Kaźmierczak"
390
389
  serde_with_macros,https://github.com/jonasbb/serde_with,MIT OR Apache-2.0,Jonas Bushart
391
- serde_yaml,https://github.com/dtolnay/serde-yaml,MIT OR Apache-2.0,David Tolnay <dtolnay@gmail.com>
392
390
  serial_test_derive,https://github.com/palfrey/serial_test,MIT,Tom Parker-Shemilt <palfrey@tevp.net>
393
391
  sha1,https://github.com/RustCrypto/hashes,MIT OR Apache-2.0,RustCrypto Developers
394
392
  sha2,https://github.com/RustCrypto/hashes,MIT OR Apache-2.0,RustCrypto Developers
@@ -475,7 +473,6 @@ unicase,https://github.com/seanmonstar/unicase,MIT OR Apache-2.0,Sean McArthur <
475
473
  unicode-ident,https://github.com/dtolnay/unicode-ident,(MIT OR Apache-2.0) AND Unicode-DFS-2016,David Tolnay <dtolnay@gmail.com>
476
474
  unicode-width,https://github.com/unicode-rs/unicode-width,MIT OR Apache-2.0,"kwantam <kwantam@gmail.com>, Manish Goregaokar <manishsmail@gmail.com>"
477
475
  unicode-xid,https://github.com/unicode-rs/unicode-xid,MIT OR Apache-2.0,"erick.tryzelaar <erick.tryzelaar@gmail.com>, kwantam <kwantam@gmail.com>, Manish Goregaokar <manishsmail@gmail.com>"
478
- unsafe-libyaml,https://github.com/dtolnay/unsafe-libyaml,MIT,David Tolnay <dtolnay@gmail.com>
479
476
  untrusted,https://github.com/briansmith/untrusted,ISC,Brian Smith <brian@briansmith.org>
480
477
  url,https://github.com/servo/rust-url,MIT OR Apache-2.0,The rust-url developers
481
478
  urlencoding,https://github.com/kornelski/rust_urlencoding,MIT,"Kornel <kornel@geekhood.net>, Bertram Truong <b@bertramtruong.com>"
@@ -505,7 +502,6 @@ web-time,https://github.com/daxpedda/web-time,MIT OR Apache-2.0,The web-time Aut
505
502
  webpki-root-certs,https://github.com/rustls/webpki-roots,CDLA-Permissive-2.0,The webpki-root-certs Authors
506
503
  webpki-roots,https://github.com/rustls/webpki-roots,CDLA-Permissive-2.0,The webpki-roots Authors
507
504
  widestring,https://github.com/VoidStarKat/widestring-rs,MIT OR Apache-2.0,The widestring Authors
508
- winapi,https://github.com/retep998/winapi-rs,MIT,Peter Atashian <retep998@gmail.com>
509
505
  winapi,https://github.com/retep998/winapi-rs,MIT OR Apache-2.0,Peter Atashian <retep998@gmail.com>
510
506
  winapi-i686-pc-windows-gnu,https://github.com/retep998/winapi-rs,MIT OR Apache-2.0,Peter Atashian <retep998@gmail.com>
511
507
  winapi-util,https://github.com/BurntSushi/winapi-util,Unlicense OR MIT,Andrew Gallant <jamslam@gmail.com>
@@ -535,6 +531,7 @@ winver,https://github.com/rhysd/winver,MIT,rhysd <lin90162@yahoo.co.jp>
535
531
  wit-bindgen-rt,https://github.com/bytecodealliance/wit-bindgen,Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT,The wit-bindgen-rt Authors
536
532
  write16,https://github.com/hsivonen/write16,Apache-2.0 OR MIT,The write16 Authors
537
533
  writeable,https://github.com/unicode-org/icu4x,Unicode-3.0,The ICU4X Project Developers
534
+ yaml_serde,https://github.com/yaml/yaml-serde,MIT OR Apache-2.0,YAML Organization <noreply@yaml.org>
538
535
  yansi,https://github.com/SergioBenitez/yansi,MIT OR Apache-2.0,Sergio Benitez <sb@sergio.bz>
539
536
  yoke,https://github.com/unicode-org/icu4x,Unicode-3.0,Manish Goregaokar <manishsmail@gmail.com>
540
537
  yoke-derive,https://github.com/unicode-org/icu4x,Unicode-3.0,Manish Goregaokar <manishsmail@gmail.com>