libdatadog 14.3.1.1.0 → 16.0.1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/lib/libdatadog/version.rb +1 -1
  3. data/vendor/{libdatadog-14.3.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/LICENSE-3rdparty.yml +453 -21
  4. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  5. data/vendor/{libdatadog-14.3.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl → libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu}/include/datadog/common.h +403 -84
  6. data/vendor/libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/crashtracker.h +811 -0
  7. data/vendor/libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h +123 -0
  8. data/vendor/libdatadog-16.0.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/library-config.h +61 -0
  9. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/profiling.h +73 -0
  10. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  11. data/vendor/{libdatadog-14.3.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/LICENSE-3rdparty.yml +453 -21
  12. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  13. data/vendor/{libdatadog-14.3.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl}/include/datadog/common.h +403 -84
  14. data/vendor/libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/crashtracker.h +811 -0
  15. data/vendor/libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/data-pipeline.h +123 -0
  16. data/vendor/libdatadog-16.0.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/library-config.h +61 -0
  17. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/profiling.h +73 -0
  18. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  19. data/vendor/{libdatadog-14.3.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/LICENSE-3rdparty.yml +453 -21
  20. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
  21. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h +403 -84
  22. data/vendor/libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/crashtracker.h +811 -0
  23. data/vendor/libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/data-pipeline.h +123 -0
  24. data/vendor/libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/library-config.h +61 -0
  25. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/profiling.h +73 -0
  26. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
  27. data/vendor/{libdatadog-14.3.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/LICENSE-3rdparty.yml +453 -21
  28. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
  29. data/vendor/{libdatadog-14.3.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu → libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/common.h +403 -84
  30. data/vendor/libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/crashtracker.h +811 -0
  31. data/vendor/libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/data-pipeline.h +123 -0
  32. data/vendor/libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/library-config.h +61 -0
  33. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/profiling.h +73 -0
  34. data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
  35. metadata +54 -50
  36. data/vendor/libdatadog-14.3.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/crashtracker.h +0 -444
  37. data/vendor/libdatadog-14.3.1/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/data-pipeline.h +0 -209
  38. data/vendor/libdatadog-14.3.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/crashtracker.h +0 -444
  39. data/vendor/libdatadog-14.3.1/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/data-pipeline.h +0 -209
  40. data/vendor/libdatadog-14.3.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/crashtracker.h +0 -444
  41. data/vendor/libdatadog-14.3.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/data-pipeline.h +0 -209
  42. data/vendor/libdatadog-14.3.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/crashtracker.h +0 -444
  43. data/vendor/libdatadog-14.3.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/data-pipeline.h +0 -209
  44. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/LICENSE +0 -0
  45. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/NOTICE +0 -0
  46. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
  47. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/include/datadog/telemetry.h +0 -0
  48. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux/libdatadog-aarch64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
  49. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/LICENSE +0 -0
  50. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/NOTICE +0 -0
  51. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
  52. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/include/datadog/telemetry.h +0 -0
  53. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/aarch64-linux-musl/libdatadog-aarch64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
  54. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
  55. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
  56. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h +0 -0
  57. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h +0 -0
  58. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
  59. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
  60. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -0
  61. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/blazesym.h +0 -0
  62. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/telemetry.h +0 -0
  63. /data/vendor/{libdatadog-14.3.1 → libdatadog-16.0.1}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
@@ -458,6 +458,10 @@ typedef struct ddog_prof_Period {
458
458
  int64_t value;
459
459
  } ddog_prof_Period;
460
460
 
461
+ typedef struct ddog_prof_ManagedStringStorage {
462
+ const void *inner;
463
+ } ddog_prof_ManagedStringStorage;
464
+
461
465
  /**
462
466
  * A generic result type for when a profiling operation may fail, but there's
463
467
  * nothing to return in the case of success.
@@ -483,6 +487,10 @@ typedef struct ddog_prof_Profile_Result {
483
487
  };
484
488
  } ddog_prof_Profile_Result;
485
489
 
490
+ typedef struct ddog_prof_ManagedStringId {
491
+ uint32_t value;
492
+ } ddog_prof_ManagedStringId;
493
+
486
494
  typedef struct ddog_prof_Mapping {
487
495
  /**
488
496
  * Address at which the binary (or DLL) is loaded into memory.
@@ -502,12 +510,14 @@ typedef struct ddog_prof_Mapping {
502
510
  * abstractions like "[vdso]".
503
511
  */
504
512
  ddog_CharSlice filename;
513
+ struct ddog_prof_ManagedStringId filename_id;
505
514
  /**
506
515
  * A string that uniquely identifies a particular program version
507
516
  * with high probability. E.g., for binaries generated by GNU tools,
508
517
  * it could be the contents of the .note.gnu.build-id field.
509
518
  */
510
519
  ddog_CharSlice build_id;
520
+ struct ddog_prof_ManagedStringId build_id_id;
511
521
  } ddog_prof_Mapping;
512
522
 
513
523
  typedef struct ddog_prof_Function {
@@ -515,15 +525,18 @@ typedef struct ddog_prof_Function {
515
525
  * Name of the function, in human-readable form if available.
516
526
  */
517
527
  ddog_CharSlice name;
528
+ struct ddog_prof_ManagedStringId name_id;
518
529
  /**
519
530
  * Name of the function, as identified by the system.
520
531
  * For instance, it can be a C++ mangled name.
521
532
  */
522
533
  ddog_CharSlice system_name;
534
+ struct ddog_prof_ManagedStringId system_name_id;
523
535
  /**
524
536
  * Source file containing the function.
525
537
  */
526
538
  ddog_CharSlice filename;
539
+ struct ddog_prof_ManagedStringId filename_id;
527
540
  /**
528
541
  * Line number in source file.
529
542
  */
@@ -577,10 +590,12 @@ typedef struct ddog_Slice_I64 {
577
590
 
578
591
  typedef struct ddog_prof_Label {
579
592
  ddog_CharSlice key;
593
+ struct ddog_prof_ManagedStringId key_id;
580
594
  /**
581
595
  * At most one of the following must be present
582
596
  */
583
597
  ddog_CharSlice str;
598
+ struct ddog_prof_ManagedStringId str_id;
584
599
  int64_t num;
585
600
  /**
586
601
  * Should only be present when num is present.
@@ -592,6 +607,7 @@ typedef struct ddog_prof_Label {
592
607
  * and apply appropriate unit conversions to these.
593
608
  */
594
609
  ddog_CharSlice num_unit;
610
+ struct ddog_prof_ManagedStringId num_unit_id;
595
611
  } ddog_prof_Label;
596
612
 
597
613
  typedef struct ddog_prof_Slice_Label {
@@ -667,6 +683,85 @@ typedef struct ddog_prof_Profile_SerializeResult {
667
683
  };
668
684
  } ddog_prof_Profile_SerializeResult;
669
685
 
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;
690
+
691
+ typedef struct ddog_prof_ManagedStringStorageNewResult {
692
+ ddog_prof_ManagedStringStorageNewResult_Tag tag;
693
+ union {
694
+ struct {
695
+ struct ddog_prof_ManagedStringStorage ok;
696
+ };
697
+ struct {
698
+ struct ddog_Error err;
699
+ };
700
+ };
701
+ } ddog_prof_ManagedStringStorageNewResult;
702
+
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;
707
+
708
+ typedef struct ddog_prof_ManagedStringStorageInternResult {
709
+ ddog_prof_ManagedStringStorageInternResult_Tag tag;
710
+ union {
711
+ struct {
712
+ struct ddog_prof_ManagedStringId ok;
713
+ };
714
+ struct {
715
+ struct ddog_Error err;
716
+ };
717
+ };
718
+ } ddog_prof_ManagedStringStorageInternResult;
719
+
720
+ typedef struct ddog_prof_Slice_CharSlice {
721
+ /**
722
+ * Should be non-null and suitably aligned for the underlying type. It is
723
+ * allowed but not recommended for the pointer to be null when the len is
724
+ * zero.
725
+ */
726
+ const ddog_CharSlice *ptr;
727
+ /**
728
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
729
+ * than or equal to [isize::MAX].
730
+ */
731
+ uintptr_t len;
732
+ } ddog_prof_Slice_CharSlice;
733
+
734
+ typedef struct ddog_prof_Slice_ManagedStringId {
735
+ /**
736
+ * Should be non-null and suitably aligned for the underlying type. It is
737
+ * allowed but not recommended for the pointer to be null when the len is
738
+ * zero.
739
+ */
740
+ const struct ddog_prof_ManagedStringId *ptr;
741
+ /**
742
+ * The number of elements (not bytes) that `.ptr` points to. Must be less
743
+ * than or equal to [isize::MAX].
744
+ */
745
+ uintptr_t len;
746
+ } ddog_prof_Slice_ManagedStringId;
747
+
748
+ typedef enum ddog_StringWrapperResult_Tag {
749
+ DDOG_STRING_WRAPPER_RESULT_OK,
750
+ DDOG_STRING_WRAPPER_RESULT_ERR,
751
+ } ddog_StringWrapperResult_Tag;
752
+
753
+ typedef struct ddog_StringWrapperResult {
754
+ ddog_StringWrapperResult_Tag tag;
755
+ union {
756
+ struct {
757
+ struct ddog_StringWrapper ok;
758
+ };
759
+ struct {
760
+ struct ddog_Error err;
761
+ };
762
+ };
763
+ } ddog_StringWrapperResult;
764
+
670
765
  typedef enum ddog_ConfigurationOrigin {
671
766
  DDOG_CONFIGURATION_ORIGIN_ENV_VAR,
672
767
  DDOG_CONFIGURATION_ORIGIN_CODE,
@@ -755,16 +850,29 @@ typedef struct ddog_ContextKey {
755
850
  enum ddog_MetricType _1;
756
851
  } ddog_ContextKey;
757
852
 
853
+ typedef enum ddog_crasht_BuildIdType {
854
+ DDOG_CRASHT_BUILD_ID_TYPE_GNU,
855
+ DDOG_CRASHT_BUILD_ID_TYPE_GO,
856
+ DDOG_CRASHT_BUILD_ID_TYPE_PDB,
857
+ DDOG_CRASHT_BUILD_ID_TYPE_SHA1,
858
+ } ddog_crasht_BuildIdType;
859
+
758
860
  typedef enum ddog_crasht_DemangleOptions {
759
861
  DDOG_CRASHT_DEMANGLE_OPTIONS_COMPLETE,
760
862
  DDOG_CRASHT_DEMANGLE_OPTIONS_NAME_ONLY,
761
863
  } ddog_crasht_DemangleOptions;
762
864
 
763
- typedef enum ddog_crasht_NormalizedAddressTypes {
764
- DDOG_CRASHT_NORMALIZED_ADDRESS_TYPES_NONE = 0,
765
- DDOG_CRASHT_NORMALIZED_ADDRESS_TYPES_ELF,
766
- DDOG_CRASHT_NORMALIZED_ADDRESS_TYPES_PDB,
767
- } ddog_crasht_NormalizedAddressTypes;
865
+ typedef enum ddog_crasht_ErrorKind {
866
+ DDOG_CRASHT_ERROR_KIND_PANIC,
867
+ DDOG_CRASHT_ERROR_KIND_UNHANDLED_EXCEPTION,
868
+ DDOG_CRASHT_ERROR_KIND_UNIX_SIGNAL,
869
+ } ddog_crasht_ErrorKind;
870
+
871
+ typedef enum ddog_crasht_FileType {
872
+ DDOG_CRASHT_FILE_TYPE_APK,
873
+ DDOG_CRASHT_FILE_TYPE_ELF,
874
+ DDOG_CRASHT_FILE_TYPE_PE,
875
+ } ddog_crasht_FileType;
768
876
 
769
877
  /**
770
878
  * This enum represents operations a the tracked library might be engaged in.
@@ -789,6 +897,42 @@ typedef enum ddog_crasht_OpTypes {
789
897
  DDOG_CRASHT_OP_TYPES_SIZE,
790
898
  } ddog_crasht_OpTypes;
791
899
 
900
+ /**
901
+ * See https://man7.org/linux/man-pages/man2/sigaction.2.html
902
+ */
903
+ typedef enum ddog_crasht_SiCodes {
904
+ DDOG_CRASHT_SI_CODES_BUS_ADRALN,
905
+ DDOG_CRASHT_SI_CODES_BUS_ADRERR,
906
+ DDOG_CRASHT_SI_CODES_BUS_MCEERR_AO,
907
+ DDOG_CRASHT_SI_CODES_BUS_MCEERR_AR,
908
+ DDOG_CRASHT_SI_CODES_BUS_OBJERR,
909
+ DDOG_CRASHT_SI_CODES_SEGV_ACCERR,
910
+ DDOG_CRASHT_SI_CODES_SEGV_BNDERR,
911
+ DDOG_CRASHT_SI_CODES_SEGV_MAPERR,
912
+ DDOG_CRASHT_SI_CODES_SEGV_PKUERR,
913
+ DDOG_CRASHT_SI_CODES_SI_ASYNCIO,
914
+ DDOG_CRASHT_SI_CODES_SI_KERNEL,
915
+ DDOG_CRASHT_SI_CODES_SI_MESGQ,
916
+ DDOG_CRASHT_SI_CODES_SI_QUEUE,
917
+ DDOG_CRASHT_SI_CODES_SI_SIGIO,
918
+ DDOG_CRASHT_SI_CODES_SI_TIMER,
919
+ DDOG_CRASHT_SI_CODES_SI_TKILL,
920
+ DDOG_CRASHT_SI_CODES_SI_USER,
921
+ DDOG_CRASHT_SI_CODES_SYS_SECCOMP,
922
+ DDOG_CRASHT_SI_CODES_UNKNOWN,
923
+ } ddog_crasht_SiCodes;
924
+
925
+ /**
926
+ * See https://man7.org/linux/man-pages/man7/signal.7.html
927
+ */
928
+ typedef enum ddog_crasht_SignalNames {
929
+ DDOG_CRASHT_SIGNAL_NAMES_SIGABRT,
930
+ DDOG_CRASHT_SIGNAL_NAMES_SIGBUS,
931
+ DDOG_CRASHT_SIGNAL_NAMES_SIGSEGV,
932
+ DDOG_CRASHT_SIGNAL_NAMES_SIGSYS,
933
+ DDOG_CRASHT_SIGNAL_NAMES_UNKNOWN,
934
+ } ddog_crasht_SignalNames;
935
+
792
936
  /**
793
937
  * Stacktrace collection occurs in the context of a crashing process.
794
938
  * If the stack is sufficiently corruputed, it is possible (but unlikely),
@@ -806,17 +950,25 @@ typedef enum ddog_crasht_StacktraceCollection {
806
950
  DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_SYMBOLS_IN_RECEIVER,
807
951
  } ddog_crasht_StacktraceCollection;
808
952
 
953
+ typedef struct ddog_crasht_CrashInfo ddog_crasht_CrashInfo;
954
+
955
+ typedef struct ddog_crasht_CrashInfoBuilder ddog_crasht_CrashInfoBuilder;
956
+
957
+ typedef struct ddog_crasht_StackFrame ddog_crasht_StackFrame;
958
+
959
+ typedef struct ddog_crasht_StackTrace ddog_crasht_StackTrace;
960
+
809
961
  /**
810
- * A generic result type for when a crashtracking operation may fail,
962
+ * A generic result type for when an operation may fail,
811
963
  * but there's nothing to return in the case of success.
812
964
  */
813
- typedef enum ddog_crasht_Result_Tag {
814
- DDOG_CRASHT_RESULT_OK,
815
- DDOG_CRASHT_RESULT_ERR,
816
- } ddog_crasht_Result_Tag;
965
+ typedef enum ddog_VoidResult_Tag {
966
+ DDOG_VOID_RESULT_OK,
967
+ DDOG_VOID_RESULT_ERR,
968
+ } ddog_VoidResult_Tag;
817
969
 
818
- typedef struct ddog_crasht_Result {
819
- ddog_crasht_Result_Tag tag;
970
+ typedef struct ddog_VoidResult {
971
+ ddog_VoidResult_Tag tag;
820
972
  union {
821
973
  struct {
822
974
  /**
@@ -829,7 +981,7 @@ typedef struct ddog_crasht_Result {
829
981
  struct ddog_Error err;
830
982
  };
831
983
  };
832
- } ddog_crasht_Result;
984
+ } ddog_VoidResult;
833
985
 
834
986
  typedef struct ddog_crasht_Slice_CharSlice {
835
987
  /**
@@ -910,13 +1062,17 @@ typedef struct ddog_crasht_Metadata {
910
1062
  const struct ddog_Vec_Tag *tags;
911
1063
  } ddog_crasht_Metadata;
912
1064
 
913
- typedef enum ddog_crasht_UsizeResult_Tag {
914
- DDOG_CRASHT_USIZE_RESULT_OK,
915
- DDOG_CRASHT_USIZE_RESULT_ERR,
916
- } ddog_crasht_UsizeResult_Tag;
1065
+ /**
1066
+ * A generic result type for when an operation may fail,
1067
+ * or may return <T> in case of success.
1068
+ */
1069
+ typedef enum ddog_crasht_Result_Usize_Tag {
1070
+ DDOG_CRASHT_RESULT_USIZE_OK_USIZE,
1071
+ DDOG_CRASHT_RESULT_USIZE_ERR_USIZE,
1072
+ } ddog_crasht_Result_Usize_Tag;
917
1073
 
918
- typedef struct ddog_crasht_UsizeResult {
919
- ddog_crasht_UsizeResult_Tag tag;
1074
+ typedef struct ddog_crasht_Result_Usize {
1075
+ ddog_crasht_Result_Usize_Tag tag;
920
1076
  union {
921
1077
  struct {
922
1078
  uintptr_t ok;
@@ -925,124 +1081,287 @@ typedef struct ddog_crasht_UsizeResult {
925
1081
  struct ddog_Error err;
926
1082
  };
927
1083
  };
928
- } ddog_crasht_UsizeResult;
1084
+ } ddog_crasht_Result_Usize;
929
1085
 
930
1086
  /**
931
- * Represents a CrashInfo. Do not access its member for any reason, only use
932
- * the C API functions on this struct.
1087
+ * Represents an object that should only be referred to by its handle.
1088
+ * Do not access its member for any reason, only use the C API functions on this struct.
933
1089
  */
934
- typedef struct ddog_crasht_CrashInfo {
1090
+ typedef struct ddog_crasht_Handle_CrashInfo {
935
1091
  struct ddog_crasht_CrashInfo *inner;
936
- } ddog_crasht_CrashInfo;
1092
+ } ddog_crasht_Handle_CrashInfo;
937
1093
 
938
1094
  /**
939
- * Returned by [ddog_prof_Profile_new].
1095
+ * Represents an object that should only be referred to by its handle.
1096
+ * Do not access its member for any reason, only use the C API functions on this struct.
940
1097
  */
941
- typedef enum ddog_crasht_CrashInfoNewResult_Tag {
1098
+ typedef struct ddog_crasht_Handle_CrashInfoBuilder {
1099
+ struct ddog_crasht_CrashInfoBuilder *inner;
1100
+ } ddog_crasht_Handle_CrashInfoBuilder;
1101
+
1102
+ typedef enum ddog_crasht_CrashInfo_NewResult_Tag {
942
1103
  DDOG_CRASHT_CRASH_INFO_NEW_RESULT_OK,
943
1104
  DDOG_CRASHT_CRASH_INFO_NEW_RESULT_ERR,
944
- } ddog_crasht_CrashInfoNewResult_Tag;
1105
+ } ddog_crasht_CrashInfo_NewResult_Tag;
945
1106
 
946
- typedef struct ddog_crasht_CrashInfoNewResult {
947
- ddog_crasht_CrashInfoNewResult_Tag tag;
1107
+ typedef struct ddog_crasht_CrashInfo_NewResult {
1108
+ ddog_crasht_CrashInfo_NewResult_Tag tag;
948
1109
  union {
949
1110
  struct {
950
- struct ddog_crasht_CrashInfo ok;
1111
+ struct ddog_crasht_Handle_CrashInfo ok;
951
1112
  };
952
1113
  struct {
953
1114
  struct ddog_Error err;
954
1115
  };
955
1116
  };
956
- } ddog_crasht_CrashInfoNewResult;
1117
+ } ddog_crasht_CrashInfo_NewResult;
1118
+
1119
+ typedef struct ddog_crasht_OsInfo {
1120
+ ddog_CharSlice architecture;
1121
+ ddog_CharSlice bitness;
1122
+ ddog_CharSlice os_type;
1123
+ ddog_CharSlice version;
1124
+ } ddog_crasht_OsInfo;
1125
+
1126
+ typedef struct ddog_crasht_ProcInfo {
1127
+ uint32_t pid;
1128
+ } ddog_crasht_ProcInfo;
957
1129
 
958
1130
  typedef struct ddog_crasht_SigInfo {
959
- uint64_t signum;
960
- ddog_CharSlice signame;
1131
+ ddog_CharSlice addr;
1132
+ int code;
1133
+ enum ddog_crasht_SiCodes code_human_readable;
1134
+ int signo;
1135
+ enum ddog_crasht_SignalNames signo_human_readable;
961
1136
  } ddog_crasht_SigInfo;
962
1137
 
963
- typedef struct ddog_crasht_StackFrameNames {
964
- struct ddog_Option_U32 colno;
965
- ddog_CharSlice filename;
966
- struct ddog_Option_U32 lineno;
1138
+ typedef struct ddog_crasht_Span {
1139
+ ddog_CharSlice id;
1140
+ ddog_CharSlice thread_name;
1141
+ } ddog_crasht_Span;
1142
+
1143
+ /**
1144
+ * Represents an object that should only be referred to by its handle.
1145
+ * Do not access its member for any reason, only use the C API functions on this struct.
1146
+ */
1147
+ typedef struct ddog_crasht_Handle_StackTrace {
1148
+ struct ddog_crasht_StackTrace *inner;
1149
+ } ddog_crasht_Handle_StackTrace;
1150
+
1151
+ typedef struct ddog_crasht_ThreadData {
1152
+ bool crashed;
967
1153
  ddog_CharSlice name;
968
- } ddog_crasht_StackFrameNames;
1154
+ struct ddog_crasht_Handle_StackTrace stack;
1155
+ ddog_CharSlice state;
1156
+ } ddog_crasht_ThreadData;
1157
+
1158
+ /**
1159
+ * Represents an object that should only be referred to by its handle.
1160
+ * Do not access its member for any reason, only use the C API functions on this struct.
1161
+ */
1162
+ typedef struct ddog_crasht_Handle_StackFrame {
1163
+ struct ddog_crasht_StackFrame *inner;
1164
+ } ddog_crasht_Handle_StackFrame;
1165
+
1166
+ typedef enum ddog_crasht_StackFrame_NewResult_Tag {
1167
+ DDOG_CRASHT_STACK_FRAME_NEW_RESULT_OK,
1168
+ DDOG_CRASHT_STACK_FRAME_NEW_RESULT_ERR,
1169
+ } ddog_crasht_StackFrame_NewResult_Tag;
1170
+
1171
+ typedef struct ddog_crasht_StackFrame_NewResult {
1172
+ ddog_crasht_StackFrame_NewResult_Tag tag;
1173
+ union {
1174
+ struct {
1175
+ struct ddog_crasht_Handle_StackFrame ok;
1176
+ };
1177
+ struct {
1178
+ struct ddog_Error err;
1179
+ };
1180
+ };
1181
+ } ddog_crasht_StackFrame_NewResult;
1182
+
1183
+ /**
1184
+ * Represent error codes that `Error` struct can hold
1185
+ */
1186
+ typedef enum ddog_TraceExporterErrorCode {
1187
+ DDOG_TRACE_EXPORTER_ERROR_CODE_ADDRESS_IN_USE,
1188
+ DDOG_TRACE_EXPORTER_ERROR_CODE_CONNECTION_ABORTED,
1189
+ DDOG_TRACE_EXPORTER_ERROR_CODE_CONNECTION_REFUSED,
1190
+ DDOG_TRACE_EXPORTER_ERROR_CODE_CONNECTION_RESET,
1191
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_BODY_FORMAT,
1192
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_BODY_TOO_LONG,
1193
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_CLIENT,
1194
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_EMPTY_BODY,
1195
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_PARSE,
1196
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_SERVER,
1197
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_UNKNOWN,
1198
+ DDOG_TRACE_EXPORTER_ERROR_CODE_HTTP_WRONG_STATUS,
1199
+ DDOG_TRACE_EXPORTER_ERROR_CODE_INVALID_ARGUMENT,
1200
+ DDOG_TRACE_EXPORTER_ERROR_CODE_INVALID_DATA,
1201
+ DDOG_TRACE_EXPORTER_ERROR_CODE_INVALID_INPUT,
1202
+ DDOG_TRACE_EXPORTER_ERROR_CODE_INVALID_URL,
1203
+ DDOG_TRACE_EXPORTER_ERROR_CODE_IO_ERROR,
1204
+ DDOG_TRACE_EXPORTER_ERROR_CODE_NETWORK_UNKNOWN,
1205
+ DDOG_TRACE_EXPORTER_ERROR_CODE_SERDE,
1206
+ DDOG_TRACE_EXPORTER_ERROR_CODE_TIMED_OUT,
1207
+ } ddog_TraceExporterErrorCode;
1208
+
1209
+ /**
1210
+ * The TraceExporter ingest traces from the tracers serialized as messagepack and forward them to
1211
+ * the agent while applying some transformation.
1212
+ *
1213
+ * # Proxy
1214
+ * If the input format is set as `Proxy`, the exporter will forward traces to the agent without
1215
+ * deserializing them.
1216
+ *
1217
+ * # Features
1218
+ * When the input format is set to `V04` the TraceExporter will deserialize the traces and perform
1219
+ * some operation before sending them to the agent. The available operations are described below.
1220
+ *
1221
+ * ## V07 Serialization
1222
+ * The Trace exporter can serialize the traces to V07 before sending them to the agent.
1223
+ *
1224
+ * ## Stats computation
1225
+ * The Trace Exporter can compute stats on traces. In this case the trace exporter will start
1226
+ * another task to send stats when a time bucket expire. When this feature is enabled the
1227
+ * TraceExporter drops all spans that may not be sampled by the agent.
1228
+ */
1229
+ typedef struct ddog_TraceExporter ddog_TraceExporter;
1230
+
1231
+ /**
1232
+ * The TraceExporterConfig object will hold the configuration properties for the TraceExporter.
1233
+ * Once the configuration is passed to the TraceExporter constructor the config is no longer
1234
+ * needed by the handle and it can be freed.
1235
+ */
1236
+ typedef struct ddog_TraceExporterConfig ddog_TraceExporterConfig;
1237
+
1238
+ /**
1239
+ * Stucture that contains error information that `TraceExporter` API can return.
1240
+ */
1241
+ typedef struct ddog_TraceExporterError {
1242
+ enum ddog_TraceExporterErrorCode code;
1243
+ char *msg;
1244
+ } ddog_TraceExporterError;
969
1245
 
970
- typedef struct ddog_crasht_Slice_StackFrameNames {
1246
+ /**
1247
+ * `AgentResponse` structure holds agent response information upon successful request.
1248
+ */
1249
+ typedef struct ddog_AgentResponse {
971
1250
  /**
972
- * Should be non-null and suitably aligned for the underlying type. It is
973
- * allowed but not recommended for the pointer to be null when the len is
974
- * zero.
1251
+ * Sampling rate for the current service.
975
1252
  */
976
- const struct ddog_crasht_StackFrameNames *ptr;
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;
1272
+
1273
+ typedef enum ddog_LibraryConfigSource {
1274
+ DDOG_LIBRARY_CONFIG_SOURCE_LOCAL_STABLE_CONFIG = 0,
1275
+ DDOG_LIBRARY_CONFIG_SOURCE_FLEET_STABLE_CONFIG = 1,
1276
+ } ddog_LibraryConfigSource;
1277
+
1278
+ typedef struct ddog_Configurator ddog_Configurator;
1279
+
1280
+ /**
1281
+ * Ffi safe type representing a borrowed null-terminated C array
1282
+ * Equivalent to a std::ffi::CStr
1283
+ */
1284
+ typedef struct ddog_CStr {
977
1285
  /**
978
- * The number of elements (not bytes) that `.ptr` points to. Must be less
979
- * than or equal to [isize::MAX].
1286
+ * Null terminated char array
980
1287
  */
981
- uintptr_t len;
982
- } ddog_crasht_Slice_StackFrameNames;
983
-
984
- typedef struct ddog_crasht_NormalizedAddress {
985
- uint64_t file_offset;
986
- ddog_ByteSlice build_id;
987
- uint64_t age;
988
- ddog_CharSlice path;
989
- enum ddog_crasht_NormalizedAddressTypes typ;
990
- } ddog_crasht_NormalizedAddress;
1288
+ char *ptr;
1289
+ /**
1290
+ * Length of the array, not counting the null-terminator
1291
+ */
1292
+ uintptr_t length;
1293
+ } ddog_CStr;
991
1294
 
992
- typedef struct ddog_crasht_StackFrame {
993
- ddog_CharSlice build_id;
994
- uintptr_t ip;
995
- uintptr_t module_base_address;
996
- struct ddog_crasht_Slice_StackFrameNames names;
997
- struct ddog_crasht_NormalizedAddress normalized_ip;
998
- uintptr_t sp;
999
- uintptr_t symbol_address;
1000
- } ddog_crasht_StackFrame;
1001
-
1002
- typedef struct ddog_crasht_Slice_StackFrame {
1295
+ typedef struct ddog_Slice_CharSlice {
1003
1296
  /**
1004
1297
  * Should be non-null and suitably aligned for the underlying type. It is
1005
1298
  * allowed but not recommended for the pointer to be null when the len is
1006
1299
  * zero.
1007
1300
  */
1008
- const struct ddog_crasht_StackFrame *ptr;
1301
+ const ddog_CharSlice *ptr;
1009
1302
  /**
1010
1303
  * The number of elements (not bytes) that `.ptr` points to. Must be less
1011
1304
  * than or equal to [isize::MAX].
1012
1305
  */
1013
1306
  uintptr_t len;
1014
- } ddog_crasht_Slice_StackFrame;
1307
+ } ddog_Slice_CharSlice;
1015
1308
 
1016
- typedef struct ddog_crasht_ProcInfo {
1017
- uint32_t pid;
1018
- } ddog_crasht_ProcInfo;
1309
+ typedef struct ddog_ProcessInfo {
1310
+ struct ddog_Slice_CharSlice args;
1311
+ struct ddog_Slice_CharSlice envp;
1312
+ ddog_CharSlice language;
1313
+ } ddog_ProcessInfo;
1019
1314
 
1020
1315
  /**
1021
- * A wrapper for returning owned strings from FFI
1316
+ * Ffi safe type representing an owned null-terminated C array
1317
+ * Equivalent to a std::ffi::CString
1022
1318
  */
1023
- typedef struct ddog_crasht_StringWrapper {
1319
+ typedef struct ddog_CString {
1024
1320
  /**
1025
- * This is a String stuffed into the vec.
1321
+ * Null terminated char array
1026
1322
  */
1027
- struct ddog_Vec_U8 message;
1028
- } ddog_crasht_StringWrapper;
1323
+ char *ptr;
1324
+ /**
1325
+ * Length of the array, not counting the null-terminator
1326
+ */
1327
+ uintptr_t length;
1328
+ } ddog_CString;
1029
1329
 
1030
- typedef enum ddog_crasht_StringWrapperResult_Tag {
1031
- DDOG_CRASHT_STRING_WRAPPER_RESULT_OK,
1032
- DDOG_CRASHT_STRING_WRAPPER_RESULT_ERR,
1033
- } ddog_crasht_StringWrapperResult_Tag;
1330
+ typedef struct ddog_LibraryConfig {
1331
+ enum ddog_LibraryConfigName name;
1332
+ struct ddog_CString value;
1333
+ } ddog_LibraryConfig;
1334
+
1335
+ /**
1336
+ * Holds the raw parts of a Rust Vec; it should only be created from Rust,
1337
+ * never from C.
1338
+ */
1339
+ typedef struct ddog_Vec_LibraryConfig {
1340
+ const struct ddog_LibraryConfig *ptr;
1341
+ uintptr_t len;
1342
+ uintptr_t capacity;
1343
+ } ddog_Vec_LibraryConfig;
1344
+
1345
+ /**
1346
+ * A generic result type for when an operation may fail,
1347
+ * or may return <T> in case of success.
1348
+ */
1349
+ typedef enum ddog_Result_VecLibraryConfig_Tag {
1350
+ DDOG_RESULT_VEC_LIBRARY_CONFIG_OK_VEC_LIBRARY_CONFIG,
1351
+ DDOG_RESULT_VEC_LIBRARY_CONFIG_ERR_VEC_LIBRARY_CONFIG,
1352
+ } ddog_Result_VecLibraryConfig_Tag;
1034
1353
 
1035
- typedef struct ddog_crasht_StringWrapperResult {
1036
- ddog_crasht_StringWrapperResult_Tag tag;
1354
+ typedef struct ddog_Result_VecLibraryConfig {
1355
+ ddog_Result_VecLibraryConfig_Tag tag;
1037
1356
  union {
1038
1357
  struct {
1039
- struct ddog_crasht_StringWrapper ok;
1358
+ struct ddog_Vec_LibraryConfig ok;
1040
1359
  };
1041
1360
  struct {
1042
1361
  struct ddog_Error err;
1043
1362
  };
1044
1363
  };
1045
- } ddog_crasht_StringWrapperResult;
1364
+ } ddog_Result_VecLibraryConfig;
1046
1365
 
1047
1366
  #ifdef __cplusplus
1048
1367
  extern "C" {