libdatadog 16.0.1.1.0 → 18.1.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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +2 -2
  3. data/vendor/{libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-18.1.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/LICENSE-3rdparty.yml +8181 -4123
  4. data/vendor/{libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-18.1.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/common.h +585 -123
  5. data/vendor/{libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-18.1.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/crashtracker.h +108 -14
  6. data/vendor/{libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-18.1.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/data-pipeline.h +49 -2
  7. data/vendor/{libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-18.1.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/library-config.h +18 -6
  8. data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/profiling.h +357 -42
  9. data/vendor/{libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-18.1.0/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/telemetry.h +27 -30
  10. data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  11. data/vendor/{libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-18.1.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/LICENSE-3rdparty.yml +8181 -4123
  12. data/vendor/{libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-18.1.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/common.h +585 -123
  13. data/vendor/{libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-18.1.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/crashtracker.h +108 -14
  14. data/vendor/{libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-18.1.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/data-pipeline.h +49 -2
  15. data/vendor/{libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-18.1.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/library-config.h +18 -6
  16. data/vendor/{libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-18.1.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/profiling.h +357 -42
  17. data/vendor/{libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-18.1.0/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/telemetry.h +27 -30
  18. data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  19. data/vendor/{libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-18.1.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/LICENSE-3rdparty.yml +8181 -4123
  20. data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h +585 -123
  21. data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/crashtracker.h +108 -14
  22. data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/data-pipeline.h +49 -2
  23. data/vendor/{libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-18.1.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/include/datadog/library-config.h +18 -6
  24. data/vendor/{libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-18.1.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/include/datadog/profiling.h +357 -42
  25. data/vendor/{libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-18.1.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/include/datadog/telemetry.h +27 -30
  26. data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  27. data/vendor/{libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-18.1.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/LICENSE-3rdparty.yml +8181 -4123
  28. data/vendor/{libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-18.1.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/common.h +585 -123
  29. data/vendor/{libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-18.1.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/crashtracker.h +108 -14
  30. data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/data-pipeline.h +49 -2
  31. data/vendor/{libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-18.1.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/library-config.h +18 -6
  32. data/vendor/{libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-18.1.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/profiling.h +357 -42
  33. data/vendor/{libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-18.1.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/telemetry.h +27 -30
  34. data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  35. metadata +56 -59
  36. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
  37. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
  38. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  39. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
  40. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
  41. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
  42. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
  43. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  44. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
  45. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
  46. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
  47. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
  48. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  49. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
  50. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
  51. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
  52. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -0
  53. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  54. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
  55. /data/vendor/{libdatadog-16.0.1 → libdatadog-18.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
@@ -257,14 +257,18 @@ typedef struct ddog_Vec_Tag_ParseResult {
257
257
  struct ddog_Error *error_message;
258
258
  } ddog_Vec_Tag_ParseResult;
259
259
 
260
- typedef struct ddog_CancellationToken ddog_CancellationToken;
260
+ typedef struct ddog_prof_EncodedProfile ddog_prof_EncodedProfile;
261
261
 
262
262
  typedef struct ddog_prof_Exporter ddog_prof_Exporter;
263
263
 
264
- typedef struct ddog_prof_ProfiledEndpointsStats ddog_prof_ProfiledEndpointsStats;
265
-
266
264
  typedef struct ddog_prof_Exporter_Request ddog_prof_Exporter_Request;
267
265
 
266
+ /**
267
+ * A tag is a combination of a wire_type, stored in the least significant
268
+ * three bits, and the field number that is defined in the .proto file.
269
+ */
270
+ typedef struct ddog_Tag ddog_Tag;
271
+
268
272
  typedef struct ddog_Slice_U8 {
269
273
  /**
270
274
  * Should be non-null and suitably aligned for the underlying type. It is
@@ -327,84 +331,131 @@ typedef struct ddog_prof_Endpoint {
327
331
  };
328
332
  } ddog_prof_Endpoint;
329
333
 
330
- typedef enum ddog_prof_Exporter_NewResult_Tag {
331
- DDOG_PROF_EXPORTER_NEW_RESULT_OK,
332
- DDOG_PROF_EXPORTER_NEW_RESULT_ERR,
333
- } ddog_prof_Exporter_NewResult_Tag;
334
+ /**
335
+ * Represents an object that should only be referred to by its handle.
336
+ * Do not access its member for any reason, only use the C API functions on this struct.
337
+ */
338
+ typedef struct ddog_prof_ProfileExporter {
339
+ struct ddog_prof_Exporter *inner;
340
+ } ddog_prof_ProfileExporter;
334
341
 
335
- typedef struct ddog_prof_Exporter_NewResult {
336
- ddog_prof_Exporter_NewResult_Tag tag;
342
+ /**
343
+ * A generic result type for when an operation may fail,
344
+ * or may return <T> in case of success.
345
+ */
346
+ typedef enum ddog_prof_ProfileExporter_Result_Tag {
347
+ DDOG_PROF_PROFILE_EXPORTER_RESULT_OK_HANDLE_PROFILE_EXPORTER,
348
+ DDOG_PROF_PROFILE_EXPORTER_RESULT_ERR_HANDLE_PROFILE_EXPORTER,
349
+ } ddog_prof_ProfileExporter_Result_Tag;
350
+
351
+ typedef struct ddog_prof_ProfileExporter_Result {
352
+ ddog_prof_ProfileExporter_Result_Tag tag;
337
353
  union {
338
354
  struct {
339
- struct ddog_prof_Exporter *ok;
355
+ struct ddog_prof_ProfileExporter ok;
340
356
  };
341
357
  struct {
342
358
  struct ddog_Error err;
343
359
  };
344
360
  };
345
- } ddog_prof_Exporter_NewResult;
361
+ } ddog_prof_ProfileExporter_Result;
346
362
 
347
- typedef enum ddog_prof_Option_Error_Tag {
348
- DDOG_PROF_OPTION_ERROR_SOME_ERROR,
349
- DDOG_PROF_OPTION_ERROR_NONE_ERROR,
350
- } ddog_prof_Option_Error_Tag;
363
+ /**
364
+ * A generic result type for when an operation may fail,
365
+ * but there's nothing to return in the case of success.
366
+ */
367
+ typedef enum ddog_VoidResult_Tag {
368
+ DDOG_VOID_RESULT_OK,
369
+ DDOG_VOID_RESULT_ERR,
370
+ } ddog_VoidResult_Tag;
351
371
 
352
- typedef struct ddog_prof_Option_Error {
353
- ddog_prof_Option_Error_Tag tag;
372
+ typedef struct ddog_VoidResult {
373
+ ddog_VoidResult_Tag tag;
354
374
  union {
355
375
  struct {
356
- struct ddog_Error some;
376
+ /**
377
+ * Do not use the value of Ok. This value only exists to overcome
378
+ * Rust -> C code generation.
379
+ */
380
+ bool ok;
381
+ };
382
+ struct {
383
+ struct ddog_Error err;
357
384
  };
358
385
  };
359
- } ddog_prof_Option_Error;
386
+ } ddog_VoidResult;
360
387
 
361
- typedef struct ddog_prof_Option_Error ddog_prof_MaybeError;
388
+ /**
389
+ * Represents an object that should only be referred to by its handle.
390
+ * Do not access its member for any reason, only use the C API functions on this struct.
391
+ */
392
+ typedef struct ddog_prof_Request {
393
+ struct ddog_prof_Exporter_Request *inner;
394
+ } ddog_prof_Request;
362
395
 
363
- typedef enum ddog_prof_Exporter_Request_BuildResult_Tag {
364
- DDOG_PROF_EXPORTER_REQUEST_BUILD_RESULT_OK,
365
- DDOG_PROF_EXPORTER_REQUEST_BUILD_RESULT_ERR,
366
- } ddog_prof_Exporter_Request_BuildResult_Tag;
396
+ /**
397
+ * A generic result type for when an operation may fail,
398
+ * or may return <T> in case of success.
399
+ */
400
+ typedef enum ddog_prof_Request_Result_Tag {
401
+ DDOG_PROF_REQUEST_RESULT_OK_HANDLE_REQUEST,
402
+ DDOG_PROF_REQUEST_RESULT_ERR_HANDLE_REQUEST,
403
+ } ddog_prof_Request_Result_Tag;
367
404
 
368
- typedef struct ddog_prof_Exporter_Request_BuildResult {
369
- ddog_prof_Exporter_Request_BuildResult_Tag tag;
405
+ typedef struct ddog_prof_Request_Result {
406
+ ddog_prof_Request_Result_Tag tag;
370
407
  union {
371
408
  struct {
372
- struct ddog_prof_Exporter_Request *ok;
409
+ struct ddog_prof_Request ok;
373
410
  };
374
411
  struct {
375
412
  struct ddog_Error err;
376
413
  };
377
414
  };
378
- } ddog_prof_Exporter_Request_BuildResult;
415
+ } ddog_prof_Request_Result;
379
416
 
380
417
  /**
381
- * Represents time since the Unix Epoch in seconds plus nanoseconds.
418
+ * Represents an object that should only be referred to by its handle.
419
+ * Do not access its member for any reason, only use the C API functions on this struct.
382
420
  */
383
- typedef struct ddog_Timespec {
384
- int64_t seconds;
385
- uint32_t nanoseconds;
386
- } ddog_Timespec;
421
+ typedef struct ddog_prof_EncodedProfile {
422
+ struct ddog_prof_EncodedProfile *inner;
423
+ } ddog_prof_EncodedProfile;
387
424
 
388
425
  typedef struct ddog_HttpStatus {
389
426
  uint16_t code;
390
427
  } ddog_HttpStatus;
391
428
 
392
- typedef enum ddog_prof_Exporter_SendResult_Tag {
393
- DDOG_PROF_EXPORTER_SEND_RESULT_HTTP_RESPONSE,
394
- DDOG_PROF_EXPORTER_SEND_RESULT_ERR,
395
- } ddog_prof_Exporter_SendResult_Tag;
429
+ /**
430
+ * A generic result type for when an operation may fail,
431
+ * or may return <T> in case of success.
432
+ */
433
+ typedef enum ddog_prof_Result_HttpStatus_Tag {
434
+ DDOG_PROF_RESULT_HTTP_STATUS_OK_HTTP_STATUS,
435
+ DDOG_PROF_RESULT_HTTP_STATUS_ERR_HTTP_STATUS,
436
+ } ddog_prof_Result_HttpStatus_Tag;
396
437
 
397
- typedef struct ddog_prof_Exporter_SendResult {
398
- ddog_prof_Exporter_SendResult_Tag tag;
438
+ typedef struct ddog_prof_Result_HttpStatus {
439
+ ddog_prof_Result_HttpStatus_Tag tag;
399
440
  union {
400
441
  struct {
401
- struct ddog_HttpStatus http_response;
442
+ struct ddog_HttpStatus ok;
402
443
  };
403
444
  struct {
404
445
  struct ddog_Error err;
405
446
  };
406
447
  };
407
- } ddog_prof_Exporter_SendResult;
448
+ } ddog_prof_Result_HttpStatus;
449
+
450
+ typedef struct ddog_OpaqueCancellationToken ddog_prof_TokioCancellationToken;
451
+
452
+ /**
453
+ * Represents an object that should only be referred to by its handle.
454
+ * Do not access its member for any reason, only use the C API functions on this struct.
455
+ */
456
+ typedef struct ddog_CancellationToken {
457
+ ddog_prof_TokioCancellationToken *inner;
458
+ } ddog_CancellationToken;
408
459
 
409
460
  /**
410
461
  * Represents a profile. Do not access its member for any reason, only use
@@ -537,10 +588,6 @@ typedef struct ddog_prof_Function {
537
588
  */
538
589
  ddog_CharSlice filename;
539
590
  struct ddog_prof_ManagedStringId filename_id;
540
- /**
541
- * Line number in source file.
542
- */
543
- int64_t start_line;
544
591
  } ddog_prof_Function;
545
592
 
546
593
  typedef struct ddog_prof_Location {
@@ -659,12 +706,26 @@ typedef struct ddog_prof_Slice_Usize {
659
706
  uintptr_t len;
660
707
  } ddog_prof_Slice_Usize;
661
708
 
662
- typedef struct ddog_prof_EncodedProfile {
663
- struct ddog_Timespec start;
664
- struct ddog_Timespec end;
665
- struct ddog_Vec_U8 buffer;
666
- struct ddog_prof_ProfiledEndpointsStats *endpoints_stats;
667
- } ddog_prof_EncodedProfile;
709
+ /**
710
+ * A generic result type for when an operation may fail,
711
+ * or may return <T> in case of success.
712
+ */
713
+ typedef enum ddog_prof_Result_ByteSlice_Tag {
714
+ DDOG_PROF_RESULT_BYTE_SLICE_OK_BYTE_SLICE,
715
+ DDOG_PROF_RESULT_BYTE_SLICE_ERR_BYTE_SLICE,
716
+ } ddog_prof_Result_ByteSlice_Tag;
717
+
718
+ typedef struct ddog_prof_Result_ByteSlice {
719
+ ddog_prof_Result_ByteSlice_Tag tag;
720
+ union {
721
+ struct {
722
+ ddog_ByteSlice ok;
723
+ };
724
+ struct {
725
+ struct ddog_Error err;
726
+ };
727
+ };
728
+ } ddog_prof_Result_ByteSlice;
668
729
 
669
730
  typedef enum ddog_prof_Profile_SerializeResult_Tag {
670
731
  DDOG_PROF_PROFILE_SERIALIZE_RESULT_OK,
@@ -683,53 +744,205 @@ typedef struct ddog_prof_Profile_SerializeResult {
683
744
  };
684
745
  } ddog_prof_Profile_SerializeResult;
685
746
 
686
- typedef enum ddog_prof_ManagedStringStorageNewResult_Tag {
687
- DDOG_PROF_MANAGED_STRING_STORAGE_NEW_RESULT_OK,
688
- DDOG_PROF_MANAGED_STRING_STORAGE_NEW_RESULT_ERR,
689
- } ddog_prof_ManagedStringStorageNewResult_Tag;
747
+ /**
748
+ * Represents time since the Unix Epoch in seconds plus nanoseconds.
749
+ */
750
+ typedef struct ddog_Timespec {
751
+ int64_t seconds;
752
+ uint32_t nanoseconds;
753
+ } ddog_Timespec;
690
754
 
691
- typedef struct ddog_prof_ManagedStringStorageNewResult {
692
- ddog_prof_ManagedStringStorageNewResult_Tag tag;
755
+ /**
756
+ * Opaque identifier for the profiler generation
757
+ */
758
+ typedef struct ddog_prof_Generation {
759
+ uint64_t id;
760
+ } ddog_prof_Generation;
761
+
762
+ typedef struct OpaqueFunctionId {
763
+ uint32_t _0;
764
+ } OpaqueFunctionId;
765
+
766
+ typedef struct ddog_prof_FunctionId {
767
+ struct ddog_prof_Generation generation;
768
+ struct OpaqueFunctionId id;
769
+ } ddog_prof_FunctionId;
770
+
771
+ /**
772
+ * A generic result type for when an operation may fail,
773
+ * or may return <T> in case of success.
774
+ */
775
+ typedef enum ddog_prof_FunctionId_Result_Tag {
776
+ DDOG_PROF_FUNCTION_ID_RESULT_OK_GENERATIONAL_ID_FUNCTION_ID,
777
+ DDOG_PROF_FUNCTION_ID_RESULT_ERR_GENERATIONAL_ID_FUNCTION_ID,
778
+ } ddog_prof_FunctionId_Result_Tag;
779
+
780
+ typedef struct ddog_prof_FunctionId_Result {
781
+ ddog_prof_FunctionId_Result_Tag tag;
693
782
  union {
694
783
  struct {
695
- struct ddog_prof_ManagedStringStorage ok;
784
+ struct ddog_prof_FunctionId ok;
696
785
  };
697
786
  struct {
698
787
  struct ddog_Error err;
699
788
  };
700
789
  };
701
- } ddog_prof_ManagedStringStorageNewResult;
790
+ } ddog_prof_FunctionId_Result;
702
791
 
703
- typedef enum ddog_prof_ManagedStringStorageInternResult_Tag {
704
- DDOG_PROF_MANAGED_STRING_STORAGE_INTERN_RESULT_OK,
705
- DDOG_PROF_MANAGED_STRING_STORAGE_INTERN_RESULT_ERR,
706
- } ddog_prof_ManagedStringStorageInternResult_Tag;
792
+ /**
793
+ * Represents an offset into the Profile's string table. Note that it cannot
794
+ * exceed u32 because an entire protobuf message must not be larger than or
795
+ * equal to 2 GiB. By the time you encode the tag and length prefix for each
796
+ * string, there's no way to get this many unique-ish strings without first
797
+ * exceeding the protobuf 2 GiB limit.
798
+ *
799
+ * A value of 0 means "no string" or "empty string" (they are synonymous).
800
+ */
801
+ typedef struct OpaqueStringId {
802
+ uint32_t _0;
803
+ } OpaqueStringId;
804
+ #define OpaqueStringId_ZERO (OpaqueStringId){ ._0 = 0 }
707
805
 
708
- typedef struct ddog_prof_ManagedStringStorageInternResult {
709
- ddog_prof_ManagedStringStorageInternResult_Tag tag;
806
+ typedef struct OpaqueStringId OpaqueStringId;
807
+
808
+ typedef struct ddog_prof_StringId {
809
+ struct ddog_prof_Generation generation;
810
+ OpaqueStringId id;
811
+ } ddog_prof_StringId;
812
+
813
+ typedef struct OpaqueLabelId {
814
+ uint32_t _0;
815
+ } OpaqueLabelId;
816
+
817
+ typedef struct ddog_prof_LabelId {
818
+ struct ddog_prof_Generation generation;
819
+ struct OpaqueLabelId id;
820
+ } ddog_prof_LabelId;
821
+
822
+ /**
823
+ * A generic result type for when an operation may fail,
824
+ * or may return <T> in case of success.
825
+ */
826
+ typedef enum ddog_prof_LabelId_Result_Tag {
827
+ DDOG_PROF_LABEL_ID_RESULT_OK_GENERATIONAL_ID_LABEL_ID,
828
+ DDOG_PROF_LABEL_ID_RESULT_ERR_GENERATIONAL_ID_LABEL_ID,
829
+ } ddog_prof_LabelId_Result_Tag;
830
+
831
+ typedef struct ddog_prof_LabelId_Result {
832
+ ddog_prof_LabelId_Result_Tag tag;
710
833
  union {
711
834
  struct {
712
- struct ddog_prof_ManagedStringId ok;
835
+ struct ddog_prof_LabelId ok;
713
836
  };
714
837
  struct {
715
838
  struct ddog_Error err;
716
839
  };
717
840
  };
718
- } ddog_prof_ManagedStringStorageInternResult;
841
+ } ddog_prof_LabelId_Result;
719
842
 
720
- typedef struct ddog_prof_Slice_CharSlice {
843
+ typedef struct OpaqueLabelSetId {
844
+ uint32_t _0;
845
+ } OpaqueLabelSetId;
846
+
847
+ typedef struct ddog_prof_LabelSetId {
848
+ struct ddog_prof_Generation generation;
849
+ struct OpaqueLabelSetId id;
850
+ } ddog_prof_LabelSetId;
851
+
852
+ /**
853
+ * A generic result type for when an operation may fail,
854
+ * or may return <T> in case of success.
855
+ */
856
+ typedef enum ddog_prof_LabelSetId_Result_Tag {
857
+ DDOG_PROF_LABEL_SET_ID_RESULT_OK_GENERATIONAL_ID_LABEL_SET_ID,
858
+ DDOG_PROF_LABEL_SET_ID_RESULT_ERR_GENERATIONAL_ID_LABEL_SET_ID,
859
+ } ddog_prof_LabelSetId_Result_Tag;
860
+
861
+ typedef struct ddog_prof_LabelSetId_Result {
862
+ ddog_prof_LabelSetId_Result_Tag tag;
863
+ union {
864
+ struct {
865
+ struct ddog_prof_LabelSetId ok;
866
+ };
867
+ struct {
868
+ struct ddog_Error err;
869
+ };
870
+ };
871
+ } ddog_prof_LabelSetId_Result;
872
+
873
+ typedef struct ddog_prof_Slice_LabelId {
721
874
  /**
722
875
  * Should be non-null and suitably aligned for the underlying type. It is
723
876
  * allowed but not recommended for the pointer to be null when the len is
724
877
  * zero.
725
878
  */
726
- const ddog_CharSlice *ptr;
879
+ const struct ddog_prof_LabelId *ptr;
727
880
  /**
728
881
  * The number of elements (not bytes) that `.ptr` points to. Must be less
729
882
  * than or equal to [isize::MAX].
730
883
  */
731
884
  uintptr_t len;
732
- } ddog_prof_Slice_CharSlice;
885
+ } ddog_prof_Slice_LabelId;
886
+
887
+ typedef struct OpaqueLocationId {
888
+ uint32_t _0;
889
+ } OpaqueLocationId;
890
+
891
+ typedef struct ddog_prof_LocationId {
892
+ struct ddog_prof_Generation generation;
893
+ struct OpaqueLocationId id;
894
+ } ddog_prof_LocationId;
895
+
896
+ /**
897
+ * A generic result type for when an operation may fail,
898
+ * or may return <T> in case of success.
899
+ */
900
+ typedef enum ddog_prof_LocationId_Result_Tag {
901
+ DDOG_PROF_LOCATION_ID_RESULT_OK_GENERATIONAL_ID_LOCATION_ID,
902
+ DDOG_PROF_LOCATION_ID_RESULT_ERR_GENERATIONAL_ID_LOCATION_ID,
903
+ } ddog_prof_LocationId_Result_Tag;
904
+
905
+ typedef struct ddog_prof_LocationId_Result {
906
+ ddog_prof_LocationId_Result_Tag tag;
907
+ union {
908
+ struct {
909
+ struct ddog_prof_LocationId ok;
910
+ };
911
+ struct {
912
+ struct ddog_Error err;
913
+ };
914
+ };
915
+ } ddog_prof_LocationId_Result;
916
+
917
+ typedef struct OpaqueMappingId {
918
+ uint32_t _0;
919
+ } OpaqueMappingId;
920
+
921
+ typedef struct ddog_prof_MappingId {
922
+ struct ddog_prof_Generation generation;
923
+ struct OpaqueMappingId id;
924
+ } ddog_prof_MappingId;
925
+
926
+ /**
927
+ * A generic result type for when an operation may fail,
928
+ * or may return <T> in case of success.
929
+ */
930
+ typedef enum ddog_prof_StringId_Result_Tag {
931
+ DDOG_PROF_STRING_ID_RESULT_OK_GENERATIONAL_ID_STRING_ID,
932
+ DDOG_PROF_STRING_ID_RESULT_ERR_GENERATIONAL_ID_STRING_ID,
933
+ } ddog_prof_StringId_Result_Tag;
934
+
935
+ typedef struct ddog_prof_StringId_Result {
936
+ ddog_prof_StringId_Result_Tag tag;
937
+ union {
938
+ struct {
939
+ struct ddog_prof_StringId ok;
940
+ };
941
+ struct {
942
+ struct ddog_Error err;
943
+ };
944
+ };
945
+ } ddog_prof_StringId_Result;
733
946
 
734
947
  typedef struct ddog_prof_Slice_ManagedStringId {
735
948
  /**
@@ -745,6 +958,170 @@ typedef struct ddog_prof_Slice_ManagedStringId {
745
958
  uintptr_t len;
746
959
  } ddog_prof_Slice_ManagedStringId;
747
960
 
961
+ typedef struct ddog_prof_MutSlice_GenerationalIdStringId {
962
+ /**
963
+ * Should be non-null and suitably aligned for the underlying type. It is
964
+ * allowed but not recommended for the pointer to be null when the len is
965
+ * zero.
966
+ */
967
+ struct ddog_prof_StringId *ptr;
968
+ /**
969
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
970
+ * than or equal to [isize::MAX].
971
+ */
972
+ uintptr_t len;
973
+ } ddog_prof_MutSlice_GenerationalIdStringId;
974
+
975
+ /**
976
+ * A generic result type for when an operation may fail,
977
+ * or may return <T> in case of success.
978
+ */
979
+ typedef enum ddog_prof_MappingId_Result_Tag {
980
+ DDOG_PROF_MAPPING_ID_RESULT_OK_GENERATIONAL_ID_MAPPING_ID,
981
+ DDOG_PROF_MAPPING_ID_RESULT_ERR_GENERATIONAL_ID_MAPPING_ID,
982
+ } ddog_prof_MappingId_Result_Tag;
983
+
984
+ typedef struct ddog_prof_MappingId_Result {
985
+ ddog_prof_MappingId_Result_Tag tag;
986
+ union {
987
+ struct {
988
+ struct ddog_prof_MappingId ok;
989
+ };
990
+ struct {
991
+ struct ddog_Error err;
992
+ };
993
+ };
994
+ } ddog_prof_MappingId_Result;
995
+
996
+ typedef struct OpaqueStackTraceId {
997
+ uint32_t _0;
998
+ } OpaqueStackTraceId;
999
+
1000
+ typedef struct ddog_prof_StackTraceId {
1001
+ struct ddog_prof_Generation generation;
1002
+ struct OpaqueStackTraceId id;
1003
+ } ddog_prof_StackTraceId;
1004
+
1005
+ /**
1006
+ * A generic result type for when an operation may fail,
1007
+ * or may return <T> in case of success.
1008
+ */
1009
+ typedef enum ddog_prof_StackTraceId_Result_Tag {
1010
+ DDOG_PROF_STACK_TRACE_ID_RESULT_OK_GENERATIONAL_ID_STACK_TRACE_ID,
1011
+ DDOG_PROF_STACK_TRACE_ID_RESULT_ERR_GENERATIONAL_ID_STACK_TRACE_ID,
1012
+ } ddog_prof_StackTraceId_Result_Tag;
1013
+
1014
+ typedef struct ddog_prof_StackTraceId_Result {
1015
+ ddog_prof_StackTraceId_Result_Tag tag;
1016
+ union {
1017
+ struct {
1018
+ struct ddog_prof_StackTraceId ok;
1019
+ };
1020
+ struct {
1021
+ struct ddog_Error err;
1022
+ };
1023
+ };
1024
+ } ddog_prof_StackTraceId_Result;
1025
+
1026
+ typedef struct ddog_prof_Slice_LocationId {
1027
+ /**
1028
+ * Should be non-null and suitably aligned for the underlying type. It is
1029
+ * allowed but not recommended for the pointer to be null when the len is
1030
+ * zero.
1031
+ */
1032
+ const struct ddog_prof_LocationId *ptr;
1033
+ /**
1034
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
1035
+ * than or equal to [isize::MAX].
1036
+ */
1037
+ uintptr_t len;
1038
+ } ddog_prof_Slice_LocationId;
1039
+
1040
+ typedef struct ddog_prof_Slice_CharSlice {
1041
+ /**
1042
+ * Should be non-null and suitably aligned for the underlying type. It is
1043
+ * allowed but not recommended for the pointer to be null when the len is
1044
+ * zero.
1045
+ */
1046
+ const ddog_CharSlice *ptr;
1047
+ /**
1048
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
1049
+ * than or equal to [isize::MAX].
1050
+ */
1051
+ uintptr_t len;
1052
+ } ddog_prof_Slice_CharSlice;
1053
+
1054
+ /**
1055
+ * A generic result type for when an operation may fail,
1056
+ * or may return <T> in case of success.
1057
+ */
1058
+ typedef enum ddog_prof_Result_Generation_Tag {
1059
+ DDOG_PROF_RESULT_GENERATION_OK_GENERATION,
1060
+ DDOG_PROF_RESULT_GENERATION_ERR_GENERATION,
1061
+ } ddog_prof_Result_Generation_Tag;
1062
+
1063
+ typedef struct ddog_prof_Result_Generation {
1064
+ ddog_prof_Result_Generation_Tag tag;
1065
+ union {
1066
+ struct {
1067
+ struct ddog_prof_Generation ok;
1068
+ };
1069
+ struct {
1070
+ struct ddog_Error err;
1071
+ };
1072
+ };
1073
+ } ddog_prof_Result_Generation;
1074
+
1075
+ typedef enum ddog_prof_ManagedStringStorageNewResult_Tag {
1076
+ DDOG_PROF_MANAGED_STRING_STORAGE_NEW_RESULT_OK,
1077
+ DDOG_PROF_MANAGED_STRING_STORAGE_NEW_RESULT_ERR,
1078
+ } ddog_prof_ManagedStringStorageNewResult_Tag;
1079
+
1080
+ typedef struct ddog_prof_ManagedStringStorageNewResult {
1081
+ ddog_prof_ManagedStringStorageNewResult_Tag tag;
1082
+ union {
1083
+ struct {
1084
+ struct ddog_prof_ManagedStringStorage ok;
1085
+ };
1086
+ struct {
1087
+ struct ddog_Error err;
1088
+ };
1089
+ };
1090
+ } ddog_prof_ManagedStringStorageNewResult;
1091
+
1092
+ typedef enum ddog_prof_ManagedStringStorageInternResult_Tag {
1093
+ DDOG_PROF_MANAGED_STRING_STORAGE_INTERN_RESULT_OK,
1094
+ DDOG_PROF_MANAGED_STRING_STORAGE_INTERN_RESULT_ERR,
1095
+ } ddog_prof_ManagedStringStorageInternResult_Tag;
1096
+
1097
+ typedef struct ddog_prof_ManagedStringStorageInternResult {
1098
+ ddog_prof_ManagedStringStorageInternResult_Tag tag;
1099
+ union {
1100
+ struct {
1101
+ struct ddog_prof_ManagedStringId ok;
1102
+ };
1103
+ struct {
1104
+ struct ddog_Error err;
1105
+ };
1106
+ };
1107
+ } ddog_prof_ManagedStringStorageInternResult;
1108
+
1109
+ typedef enum ddog_prof_Option_Error_Tag {
1110
+ DDOG_PROF_OPTION_ERROR_SOME_ERROR,
1111
+ DDOG_PROF_OPTION_ERROR_NONE_ERROR,
1112
+ } ddog_prof_Option_Error_Tag;
1113
+
1114
+ typedef struct ddog_prof_Option_Error {
1115
+ ddog_prof_Option_Error_Tag tag;
1116
+ union {
1117
+ struct {
1118
+ struct ddog_Error some;
1119
+ };
1120
+ };
1121
+ } ddog_prof_Option_Error;
1122
+
1123
+ typedef struct ddog_prof_Option_Error ddog_prof_MaybeError;
1124
+
748
1125
  typedef enum ddog_StringWrapperResult_Tag {
749
1126
  DDOG_STRING_WRAPPER_RESULT_OK,
750
1127
  DDOG_STRING_WRAPPER_RESULT_ERR,
@@ -762,12 +1139,16 @@ typedef struct ddog_StringWrapperResult {
762
1139
  };
763
1140
  } ddog_StringWrapperResult;
764
1141
 
1142
+ typedef struct ddog_prof_StringId ddog_prof_StringId;
1143
+
765
1144
  typedef enum ddog_ConfigurationOrigin {
766
1145
  DDOG_CONFIGURATION_ORIGIN_ENV_VAR,
767
1146
  DDOG_CONFIGURATION_ORIGIN_CODE,
768
1147
  DDOG_CONFIGURATION_ORIGIN_DD_CONFIG,
769
1148
  DDOG_CONFIGURATION_ORIGIN_REMOTE_CONFIG,
770
1149
  DDOG_CONFIGURATION_ORIGIN_DEFAULT,
1150
+ DDOG_CONFIGURATION_ORIGIN_LOCAL_STABLE_CONFIG,
1151
+ DDOG_CONFIGURATION_ORIGIN_FLEET_STABLE_CONFIG,
771
1152
  } ddog_ConfigurationOrigin;
772
1153
 
773
1154
  typedef enum ddog_LogLevel {
@@ -899,6 +1280,7 @@ typedef enum ddog_crasht_OpTypes {
899
1280
 
900
1281
  /**
901
1282
  * See https://man7.org/linux/man-pages/man2/sigaction.2.html
1283
+ * MUST REMAIN IN SYNC WITH THE ENUM IN emit_sigcodes.c
902
1284
  */
903
1285
  typedef enum ddog_crasht_SiCodes {
904
1286
  DDOG_CRASHT_SI_CODES_BUS_ADRALN,
@@ -906,6 +1288,14 @@ typedef enum ddog_crasht_SiCodes {
906
1288
  DDOG_CRASHT_SI_CODES_BUS_MCEERR_AO,
907
1289
  DDOG_CRASHT_SI_CODES_BUS_MCEERR_AR,
908
1290
  DDOG_CRASHT_SI_CODES_BUS_OBJERR,
1291
+ DDOG_CRASHT_SI_CODES_ILL_BADSTK,
1292
+ DDOG_CRASHT_SI_CODES_ILL_COPROC,
1293
+ DDOG_CRASHT_SI_CODES_ILL_ILLADR,
1294
+ DDOG_CRASHT_SI_CODES_ILL_ILLOPC,
1295
+ DDOG_CRASHT_SI_CODES_ILL_ILLOPN,
1296
+ DDOG_CRASHT_SI_CODES_ILL_ILLTRP,
1297
+ DDOG_CRASHT_SI_CODES_ILL_PRVOPC,
1298
+ DDOG_CRASHT_SI_CODES_ILL_PRVREG,
909
1299
  DDOG_CRASHT_SI_CODES_SEGV_ACCERR,
910
1300
  DDOG_CRASHT_SI_CODES_SEGV_BNDERR,
911
1301
  DDOG_CRASHT_SI_CODES_SEGV_MAPERR,
@@ -926,10 +1316,37 @@ typedef enum ddog_crasht_SiCodes {
926
1316
  * See https://man7.org/linux/man-pages/man7/signal.7.html
927
1317
  */
928
1318
  typedef enum ddog_crasht_SignalNames {
1319
+ DDOG_CRASHT_SIGNAL_NAMES_SIGHUP,
1320
+ DDOG_CRASHT_SIGNAL_NAMES_SIGINT,
1321
+ DDOG_CRASHT_SIGNAL_NAMES_SIGQUIT,
1322
+ DDOG_CRASHT_SIGNAL_NAMES_SIGILL,
1323
+ DDOG_CRASHT_SIGNAL_NAMES_SIGTRAP,
929
1324
  DDOG_CRASHT_SIGNAL_NAMES_SIGABRT,
930
1325
  DDOG_CRASHT_SIGNAL_NAMES_SIGBUS,
1326
+ DDOG_CRASHT_SIGNAL_NAMES_SIGFPE,
1327
+ DDOG_CRASHT_SIGNAL_NAMES_SIGKILL,
1328
+ DDOG_CRASHT_SIGNAL_NAMES_SIGUSR1,
931
1329
  DDOG_CRASHT_SIGNAL_NAMES_SIGSEGV,
1330
+ DDOG_CRASHT_SIGNAL_NAMES_SIGUSR2,
1331
+ DDOG_CRASHT_SIGNAL_NAMES_SIGPIPE,
1332
+ DDOG_CRASHT_SIGNAL_NAMES_SIGALRM,
1333
+ DDOG_CRASHT_SIGNAL_NAMES_SIGTERM,
1334
+ DDOG_CRASHT_SIGNAL_NAMES_SIGCHLD,
1335
+ DDOG_CRASHT_SIGNAL_NAMES_SIGCONT,
1336
+ DDOG_CRASHT_SIGNAL_NAMES_SIGSTOP,
1337
+ DDOG_CRASHT_SIGNAL_NAMES_SIGTSTP,
1338
+ DDOG_CRASHT_SIGNAL_NAMES_SIGTTIN,
1339
+ DDOG_CRASHT_SIGNAL_NAMES_SIGTTOU,
1340
+ DDOG_CRASHT_SIGNAL_NAMES_SIGURG,
1341
+ DDOG_CRASHT_SIGNAL_NAMES_SIGXCPU,
1342
+ DDOG_CRASHT_SIGNAL_NAMES_SIGXFSZ,
1343
+ DDOG_CRASHT_SIGNAL_NAMES_SIGVTALRM,
1344
+ DDOG_CRASHT_SIGNAL_NAMES_SIGPROF,
1345
+ DDOG_CRASHT_SIGNAL_NAMES_SIGWINCH,
1346
+ DDOG_CRASHT_SIGNAL_NAMES_SIGIO,
932
1347
  DDOG_CRASHT_SIGNAL_NAMES_SIGSYS,
1348
+ DDOG_CRASHT_SIGNAL_NAMES_SIGEMT,
1349
+ DDOG_CRASHT_SIGNAL_NAMES_SIGINFO,
933
1350
  DDOG_CRASHT_SIGNAL_NAMES_UNKNOWN,
934
1351
  } ddog_crasht_SignalNames;
935
1352
 
@@ -958,31 +1375,6 @@ typedef struct ddog_crasht_StackFrame ddog_crasht_StackFrame;
958
1375
 
959
1376
  typedef struct ddog_crasht_StackTrace ddog_crasht_StackTrace;
960
1377
 
961
- /**
962
- * A generic result type for when an operation may fail,
963
- * but there's nothing to return in the case of success.
964
- */
965
- typedef enum ddog_VoidResult_Tag {
966
- DDOG_VOID_RESULT_OK,
967
- DDOG_VOID_RESULT_ERR,
968
- } ddog_VoidResult_Tag;
969
-
970
- typedef struct ddog_VoidResult {
971
- ddog_VoidResult_Tag tag;
972
- union {
973
- struct {
974
- /**
975
- * Do not use the value of Ok. This value only exists to overcome
976
- * Rust -> C code generation.
977
- */
978
- bool ok;
979
- };
980
- struct {
981
- struct ddog_Error err;
982
- };
983
- };
984
- } ddog_VoidResult;
985
-
986
1378
  typedef struct ddog_crasht_Slice_CharSlice {
987
1379
  /**
988
1380
  * Should be non-null and suitably aligned for the underlying type. It is
@@ -997,26 +1389,46 @@ typedef struct ddog_crasht_Slice_CharSlice {
997
1389
  uintptr_t len;
998
1390
  } ddog_crasht_Slice_CharSlice;
999
1391
 
1392
+ typedef struct ddog_crasht_Slice_I32 {
1393
+ /**
1394
+ * Should be non-null and suitably aligned for the underlying type. It is
1395
+ * allowed but not recommended for the pointer to be null when the len is
1396
+ * zero.
1397
+ */
1398
+ const int32_t *ptr;
1399
+ /**
1400
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
1401
+ * than or equal to [isize::MAX].
1402
+ */
1403
+ uintptr_t len;
1404
+ } ddog_crasht_Slice_I32;
1405
+
1000
1406
  typedef struct ddog_crasht_Config {
1001
1407
  struct ddog_crasht_Slice_CharSlice additional_files;
1002
1408
  bool create_alt_stack;
1003
- bool use_alt_stack;
1409
+ bool demangle_names;
1004
1410
  /**
1005
1411
  * The endpoint to send the crash report to (can be a file://).
1006
1412
  * If None, the crashtracker will infer the agent host from env variables.
1007
1413
  */
1008
1414
  const struct ddog_Endpoint *endpoint;
1415
+ /**
1416
+ * Optional filename for a unix domain socket if the receiver is used asynchonously
1417
+ */
1418
+ ddog_CharSlice optional_unix_socket_filename;
1009
1419
  enum ddog_crasht_StacktraceCollection resolve_frames;
1420
+ /**
1421
+ * The set of signals we should be registered for.
1422
+ * If empty, use the default set.
1423
+ */
1424
+ struct ddog_crasht_Slice_I32 signals;
1010
1425
  /**
1011
1426
  * Timeout in milliseconds before the signal handler starts tearing things down to return.
1012
1427
  * This is given as a uint32_t, but the actual timeout needs to fit inside of an i32 (max
1013
1428
  * 2^31-1). This is a limitation of the various interfaces used to guarantee the timeout.
1014
1429
  */
1015
1430
  uint32_t timeout_ms;
1016
- /**
1017
- * Optional filename for a unix domain socket if the receiver is used asynchonously
1018
- */
1019
- ddog_CharSlice optional_unix_socket_filename;
1431
+ bool use_alt_stack;
1020
1432
  } ddog_crasht_Config;
1021
1433
 
1022
1434
  typedef struct ddog_crasht_EnvVar {
@@ -1062,6 +1474,20 @@ typedef struct ddog_crasht_Metadata {
1062
1474
  const struct ddog_Vec_Tag *tags;
1063
1475
  } ddog_crasht_Metadata;
1064
1476
 
1477
+ typedef struct ddog_crasht_Slice_CInt {
1478
+ /**
1479
+ * Should be non-null and suitably aligned for the underlying type. It is
1480
+ * allowed but not recommended for the pointer to be null when the len is
1481
+ * zero.
1482
+ */
1483
+ const int *ptr;
1484
+ /**
1485
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
1486
+ * than or equal to [isize::MAX].
1487
+ */
1488
+ uintptr_t len;
1489
+ } ddog_crasht_Slice_CInt;
1490
+
1065
1491
  /**
1066
1492
  * A generic result type for when an operation may fail,
1067
1493
  * or may return <T> in case of success.
@@ -1206,6 +1632,12 @@ typedef enum ddog_TraceExporterErrorCode {
1206
1632
  DDOG_TRACE_EXPORTER_ERROR_CODE_TIMED_OUT,
1207
1633
  } ddog_TraceExporterErrorCode;
1208
1634
 
1635
+ /**
1636
+ * Structure containing the agent response to a trace payload
1637
+ * MUST be freed with `ddog_trace_exporter_response_free`
1638
+ */
1639
+ typedef struct ddog_TraceExporterResponse ddog_TraceExporterResponse;
1640
+
1209
1641
  /**
1210
1642
  * The TraceExporter ingest traces from the tracers serialized as messagepack and forward them to
1211
1643
  * the agent while applying some transformation.
@@ -1244,31 +1676,28 @@ typedef struct ddog_TraceExporterError {
1244
1676
  } ddog_TraceExporterError;
1245
1677
 
1246
1678
  /**
1247
- * `AgentResponse` structure holds agent response information upon successful request.
1679
+ * FFI compatible configuration for the TelemetryClient.
1248
1680
  */
1249
- typedef struct ddog_AgentResponse {
1681
+ typedef struct ddog_TelemetryClientConfig {
1250
1682
  /**
1251
- * Sampling rate for the current service.
1683
+ * How often telemetry should be sent, in milliseconds.
1252
1684
  */
1253
- double rate;
1254
- } ddog_AgentResponse;
1255
-
1256
- typedef enum ddog_LibraryConfigName {
1257
- DDOG_LIBRARY_CONFIG_NAME_DD_APM_TRACING_ENABLED,
1258
- DDOG_LIBRARY_CONFIG_NAME_DD_RUNTIME_METRICS_ENABLED,
1259
- DDOG_LIBRARY_CONFIG_NAME_DD_LOGS_INJECTION,
1260
- DDOG_LIBRARY_CONFIG_NAME_DD_PROFILING_ENABLED,
1261
- DDOG_LIBRARY_CONFIG_NAME_DD_DATA_STREAMS_ENABLED,
1262
- DDOG_LIBRARY_CONFIG_NAME_DD_APPSEC_ENABLED,
1263
- DDOG_LIBRARY_CONFIG_NAME_DD_IAST_ENABLED,
1264
- DDOG_LIBRARY_CONFIG_NAME_DD_DYNAMIC_INSTRUMENTATION_ENABLED,
1265
- DDOG_LIBRARY_CONFIG_NAME_DD_DATA_JOBS_ENABLED,
1266
- DDOG_LIBRARY_CONFIG_NAME_DD_APPSEC_SCA_ENABLED,
1267
- DDOG_LIBRARY_CONFIG_NAME_DD_TRACE_DEBUG,
1268
- DDOG_LIBRARY_CONFIG_NAME_DD_SERVICE,
1269
- DDOG_LIBRARY_CONFIG_NAME_DD_ENV,
1270
- DDOG_LIBRARY_CONFIG_NAME_DD_VERSION,
1271
- } ddog_LibraryConfigName;
1685
+ uint64_t interval;
1686
+ /**
1687
+ * A V4 UUID that represents a tracer session. This ID should:
1688
+ * - Be generated when the tracer starts
1689
+ * - Be identical within the context of a host (i.e. multiple threads/processes that belong to
1690
+ * a single instrumented app should share the same runtime_id)
1691
+ * - Be associated with traces to allow correlation between traces and telemetry data
1692
+ */
1693
+ ddog_CharSlice runtime_id;
1694
+ /**
1695
+ * Whether to enable debug mode for telemetry.
1696
+ * When enabled, sets the DD-Telemetry-Debug-Enabled header to true.
1697
+ * Defaults to false.
1698
+ */
1699
+ bool debug_enabled;
1700
+ } ddog_TelemetryClientConfig;
1272
1701
 
1273
1702
  typedef enum ddog_LibraryConfigSource {
1274
1703
  DDOG_LIBRARY_CONFIG_SOURCE_LOCAL_STABLE_CONFIG = 0,
@@ -1328,8 +1757,10 @@ typedef struct ddog_CString {
1328
1757
  } ddog_CString;
1329
1758
 
1330
1759
  typedef struct ddog_LibraryConfig {
1331
- enum ddog_LibraryConfigName name;
1760
+ struct ddog_CString name;
1332
1761
  struct ddog_CString value;
1762
+ enum ddog_LibraryConfigSource source;
1763
+ struct ddog_CString config_id;
1333
1764
  } ddog_LibraryConfig;
1334
1765
 
1335
1766
  /**
@@ -1363,6 +1794,37 @@ typedef struct ddog_Result_VecLibraryConfig {
1363
1794
  };
1364
1795
  } ddog_Result_VecLibraryConfig;
1365
1796
 
1797
+ /**
1798
+ * C-compatible representation of an anonymous file handle
1799
+ */
1800
+ typedef struct ddog_TracerMemfdHandle {
1801
+ /**
1802
+ * File descriptor (relevant only on Linux)
1803
+ */
1804
+ int fd;
1805
+ } ddog_TracerMemfdHandle;
1806
+
1807
+ /**
1808
+ * A generic result type for when an operation may fail,
1809
+ * or may return <T> in case of success.
1810
+ */
1811
+ typedef enum ddog_Result_TracerMemfdHandle_Tag {
1812
+ DDOG_RESULT_TRACER_MEMFD_HANDLE_OK_TRACER_MEMFD_HANDLE,
1813
+ DDOG_RESULT_TRACER_MEMFD_HANDLE_ERR_TRACER_MEMFD_HANDLE,
1814
+ } ddog_Result_TracerMemfdHandle_Tag;
1815
+
1816
+ typedef struct ddog_Result_TracerMemfdHandle {
1817
+ ddog_Result_TracerMemfdHandle_Tag tag;
1818
+ union {
1819
+ struct {
1820
+ struct ddog_TracerMemfdHandle ok;
1821
+ };
1822
+ struct {
1823
+ struct ddog_Error err;
1824
+ };
1825
+ };
1826
+ } ddog_Result_TracerMemfdHandle;
1827
+
1366
1828
  #ifdef __cplusplus
1367
1829
  extern "C" {
1368
1830
  #endif // __cplusplus