libdatadog 16.0.1.1.0-x86_64-linux → 19.1.0.1.0-x86_64-linux
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.
- checksums.yaml +4 -4
- data/lib/libdatadog/version.rb +2 -2
- data/vendor/{libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-19.1.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/LICENSE-3rdparty.yml +19675 -12455
- data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/blazesym.h +435 -229
- data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/common.h +691 -128
- data/vendor/{libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-19.1.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/include/datadog/crashtracker.h +118 -14
- data/vendor/{libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-19.1.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/include/datadog/data-pipeline.h +65 -3
- data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/library-config.h +18 -6
- data/vendor/libdatadog-19.1.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/log.h +63 -0
- data/vendor/{libdatadog-16.0.1/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl → libdatadog-19.1.0/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu}/include/datadog/profiling.h +357 -42
- data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/include/datadog/telemetry.h +27 -30
- data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so +0 -0
- data/vendor/{libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-19.1.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/LICENSE-3rdparty.yml +19675 -12455
- data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/bin/libdatadog-crashtracking-receiver +0 -0
- data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/blazesym.h +435 -229
- data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/common.h +691 -128
- data/vendor/{libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-19.1.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/crashtracker.h +118 -14
- data/vendor/{libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-19.1.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/data-pipeline.h +65 -3
- data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/library-config.h +18 -6
- data/vendor/libdatadog-19.1.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/log.h +63 -0
- data/vendor/{libdatadog-16.0.1/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu → libdatadog-19.1.0/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl}/include/datadog/profiling.h +357 -42
- data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/include/datadog/telemetry.h +27 -30
- data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/lib/libdatadog_profiling.so +0 -0
- metadata +32 -33
- /data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/LICENSE +0 -0
- /data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/NOTICE +0 -0
- /data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/bin/libdatadog-crashtracking-receiver +0 -0
- /data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux/libdatadog-x86_64-unknown-linux-gnu/lib/pkgconfig/datadog_profiling_with_rpath.pc +0 -0
- /data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/LICENSE +0 -0
- /data/vendor/{libdatadog-16.0.1 → libdatadog-19.1.0}/x86_64-linux-musl/libdatadog-x86_64-alpine-linux-musl/NOTICE +0 -0
- /data/vendor/{libdatadog-16.0.1 → libdatadog-19.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
|
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,124 @@ typedef struct ddog_prof_Endpoint {
|
|
327
331
|
};
|
328
332
|
} ddog_prof_Endpoint;
|
329
333
|
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
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;
|
341
|
+
|
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;
|
334
350
|
|
335
|
-
typedef struct
|
336
|
-
|
351
|
+
typedef struct ddog_prof_ProfileExporter_Result {
|
352
|
+
ddog_prof_ProfileExporter_Result_Tag tag;
|
337
353
|
union {
|
338
354
|
struct {
|
339
|
-
struct
|
355
|
+
struct ddog_prof_ProfileExporter ok;
|
340
356
|
};
|
341
357
|
struct {
|
342
358
|
struct ddog_Error err;
|
343
359
|
};
|
344
360
|
};
|
345
|
-
}
|
361
|
+
} ddog_prof_ProfileExporter_Result;
|
346
362
|
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
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
|
353
|
-
|
372
|
+
typedef struct ddog_VoidResult {
|
373
|
+
ddog_VoidResult_Tag tag;
|
354
374
|
union {
|
355
375
|
struct {
|
356
|
-
struct ddog_Error
|
376
|
+
struct ddog_Error err;
|
357
377
|
};
|
358
378
|
};
|
359
|
-
}
|
379
|
+
} ddog_VoidResult;
|
360
380
|
|
361
|
-
|
381
|
+
/**
|
382
|
+
* Represents an object that should only be referred to by its handle.
|
383
|
+
* Do not access its member for any reason, only use the C API functions on this struct.
|
384
|
+
*/
|
385
|
+
typedef struct ddog_prof_Request {
|
386
|
+
struct ddog_prof_Exporter_Request *inner;
|
387
|
+
} ddog_prof_Request;
|
362
388
|
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
389
|
+
/**
|
390
|
+
* A generic result type for when an operation may fail,
|
391
|
+
* or may return <T> in case of success.
|
392
|
+
*/
|
393
|
+
typedef enum ddog_prof_Request_Result_Tag {
|
394
|
+
DDOG_PROF_REQUEST_RESULT_OK_HANDLE_REQUEST,
|
395
|
+
DDOG_PROF_REQUEST_RESULT_ERR_HANDLE_REQUEST,
|
396
|
+
} ddog_prof_Request_Result_Tag;
|
367
397
|
|
368
|
-
typedef struct
|
369
|
-
|
398
|
+
typedef struct ddog_prof_Request_Result {
|
399
|
+
ddog_prof_Request_Result_Tag tag;
|
370
400
|
union {
|
371
401
|
struct {
|
372
|
-
struct
|
402
|
+
struct ddog_prof_Request ok;
|
373
403
|
};
|
374
404
|
struct {
|
375
405
|
struct ddog_Error err;
|
376
406
|
};
|
377
407
|
};
|
378
|
-
}
|
408
|
+
} ddog_prof_Request_Result;
|
379
409
|
|
380
410
|
/**
|
381
|
-
* Represents
|
411
|
+
* Represents an object that should only be referred to by its handle.
|
412
|
+
* Do not access its member for any reason, only use the C API functions on this struct.
|
382
413
|
*/
|
383
|
-
typedef struct
|
384
|
-
|
385
|
-
|
386
|
-
} ddog_Timespec;
|
414
|
+
typedef struct ddog_prof_EncodedProfile {
|
415
|
+
struct ddog_prof_EncodedProfile *inner;
|
416
|
+
} ddog_prof_EncodedProfile;
|
387
417
|
|
388
418
|
typedef struct ddog_HttpStatus {
|
389
419
|
uint16_t code;
|
390
420
|
} ddog_HttpStatus;
|
391
421
|
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
422
|
+
/**
|
423
|
+
* A generic result type for when an operation may fail,
|
424
|
+
* or may return <T> in case of success.
|
425
|
+
*/
|
426
|
+
typedef enum ddog_prof_Result_HttpStatus_Tag {
|
427
|
+
DDOG_PROF_RESULT_HTTP_STATUS_OK_HTTP_STATUS,
|
428
|
+
DDOG_PROF_RESULT_HTTP_STATUS_ERR_HTTP_STATUS,
|
429
|
+
} ddog_prof_Result_HttpStatus_Tag;
|
396
430
|
|
397
|
-
typedef struct
|
398
|
-
|
431
|
+
typedef struct ddog_prof_Result_HttpStatus {
|
432
|
+
ddog_prof_Result_HttpStatus_Tag tag;
|
399
433
|
union {
|
400
434
|
struct {
|
401
|
-
struct ddog_HttpStatus
|
435
|
+
struct ddog_HttpStatus ok;
|
402
436
|
};
|
403
437
|
struct {
|
404
438
|
struct ddog_Error err;
|
405
439
|
};
|
406
440
|
};
|
407
|
-
}
|
441
|
+
} ddog_prof_Result_HttpStatus;
|
442
|
+
|
443
|
+
typedef struct ddog_OpaqueCancellationToken ddog_prof_TokioCancellationToken;
|
444
|
+
|
445
|
+
/**
|
446
|
+
* Represents an object that should only be referred to by its handle.
|
447
|
+
* Do not access its member for any reason, only use the C API functions on this struct.
|
448
|
+
*/
|
449
|
+
typedef struct ddog_CancellationToken {
|
450
|
+
ddog_prof_TokioCancellationToken *inner;
|
451
|
+
} ddog_CancellationToken;
|
408
452
|
|
409
453
|
/**
|
410
454
|
* Represents a profile. Do not access its member for any reason, only use
|
@@ -537,10 +581,6 @@ typedef struct ddog_prof_Function {
|
|
537
581
|
*/
|
538
582
|
ddog_CharSlice filename;
|
539
583
|
struct ddog_prof_ManagedStringId filename_id;
|
540
|
-
/**
|
541
|
-
* Line number in source file.
|
542
|
-
*/
|
543
|
-
int64_t start_line;
|
544
584
|
} ddog_prof_Function;
|
545
585
|
|
546
586
|
typedef struct ddog_prof_Location {
|
@@ -659,12 +699,26 @@ typedef struct ddog_prof_Slice_Usize {
|
|
659
699
|
uintptr_t len;
|
660
700
|
} ddog_prof_Slice_Usize;
|
661
701
|
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
702
|
+
/**
|
703
|
+
* A generic result type for when an operation may fail,
|
704
|
+
* or may return <T> in case of success.
|
705
|
+
*/
|
706
|
+
typedef enum ddog_prof_Result_ByteSlice_Tag {
|
707
|
+
DDOG_PROF_RESULT_BYTE_SLICE_OK_BYTE_SLICE,
|
708
|
+
DDOG_PROF_RESULT_BYTE_SLICE_ERR_BYTE_SLICE,
|
709
|
+
} ddog_prof_Result_ByteSlice_Tag;
|
710
|
+
|
711
|
+
typedef struct ddog_prof_Result_ByteSlice {
|
712
|
+
ddog_prof_Result_ByteSlice_Tag tag;
|
713
|
+
union {
|
714
|
+
struct {
|
715
|
+
ddog_ByteSlice ok;
|
716
|
+
};
|
717
|
+
struct {
|
718
|
+
struct ddog_Error err;
|
719
|
+
};
|
720
|
+
};
|
721
|
+
} ddog_prof_Result_ByteSlice;
|
668
722
|
|
669
723
|
typedef enum ddog_prof_Profile_SerializeResult_Tag {
|
670
724
|
DDOG_PROF_PROFILE_SERIALIZE_RESULT_OK,
|
@@ -683,53 +737,205 @@ typedef struct ddog_prof_Profile_SerializeResult {
|
|
683
737
|
};
|
684
738
|
} ddog_prof_Profile_SerializeResult;
|
685
739
|
|
686
|
-
|
687
|
-
|
688
|
-
|
689
|
-
|
740
|
+
/**
|
741
|
+
* Represents time since the Unix Epoch in seconds plus nanoseconds.
|
742
|
+
*/
|
743
|
+
typedef struct ddog_Timespec {
|
744
|
+
int64_t seconds;
|
745
|
+
uint32_t nanoseconds;
|
746
|
+
} ddog_Timespec;
|
690
747
|
|
691
|
-
|
692
|
-
|
748
|
+
/**
|
749
|
+
* Opaque identifier for the profiler generation
|
750
|
+
*/
|
751
|
+
typedef struct ddog_prof_Generation {
|
752
|
+
uint64_t id;
|
753
|
+
} ddog_prof_Generation;
|
754
|
+
|
755
|
+
typedef struct OpaqueFunctionId {
|
756
|
+
uint32_t _0;
|
757
|
+
} OpaqueFunctionId;
|
758
|
+
|
759
|
+
typedef struct ddog_prof_FunctionId {
|
760
|
+
struct ddog_prof_Generation generation;
|
761
|
+
struct OpaqueFunctionId id;
|
762
|
+
} ddog_prof_FunctionId;
|
763
|
+
|
764
|
+
/**
|
765
|
+
* A generic result type for when an operation may fail,
|
766
|
+
* or may return <T> in case of success.
|
767
|
+
*/
|
768
|
+
typedef enum ddog_prof_FunctionId_Result_Tag {
|
769
|
+
DDOG_PROF_FUNCTION_ID_RESULT_OK_GENERATIONAL_ID_FUNCTION_ID,
|
770
|
+
DDOG_PROF_FUNCTION_ID_RESULT_ERR_GENERATIONAL_ID_FUNCTION_ID,
|
771
|
+
} ddog_prof_FunctionId_Result_Tag;
|
772
|
+
|
773
|
+
typedef struct ddog_prof_FunctionId_Result {
|
774
|
+
ddog_prof_FunctionId_Result_Tag tag;
|
693
775
|
union {
|
694
776
|
struct {
|
695
|
-
struct
|
777
|
+
struct ddog_prof_FunctionId ok;
|
696
778
|
};
|
697
779
|
struct {
|
698
780
|
struct ddog_Error err;
|
699
781
|
};
|
700
782
|
};
|
701
|
-
}
|
783
|
+
} ddog_prof_FunctionId_Result;
|
702
784
|
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
785
|
+
/**
|
786
|
+
* Represents an offset into the Profile's string table. Note that it cannot
|
787
|
+
* exceed u32 because an entire protobuf message must not be larger than or
|
788
|
+
* equal to 2 GiB. By the time you encode the tag and length prefix for each
|
789
|
+
* string, there's no way to get this many unique-ish strings without first
|
790
|
+
* exceeding the protobuf 2 GiB limit.
|
791
|
+
*
|
792
|
+
* A value of 0 means "no string" or "empty string" (they are synonymous).
|
793
|
+
*/
|
794
|
+
typedef struct OpaqueStringId {
|
795
|
+
uint32_t _0;
|
796
|
+
} OpaqueStringId;
|
797
|
+
#define OpaqueStringId_ZERO (OpaqueStringId){ ._0 = 0 }
|
707
798
|
|
708
|
-
typedef struct
|
709
|
-
|
799
|
+
typedef struct OpaqueStringId OpaqueStringId;
|
800
|
+
|
801
|
+
typedef struct ddog_prof_StringId {
|
802
|
+
struct ddog_prof_Generation generation;
|
803
|
+
OpaqueStringId id;
|
804
|
+
} ddog_prof_StringId;
|
805
|
+
|
806
|
+
typedef struct OpaqueLabelId {
|
807
|
+
uint32_t _0;
|
808
|
+
} OpaqueLabelId;
|
809
|
+
|
810
|
+
typedef struct ddog_prof_LabelId {
|
811
|
+
struct ddog_prof_Generation generation;
|
812
|
+
struct OpaqueLabelId id;
|
813
|
+
} ddog_prof_LabelId;
|
814
|
+
|
815
|
+
/**
|
816
|
+
* A generic result type for when an operation may fail,
|
817
|
+
* or may return <T> in case of success.
|
818
|
+
*/
|
819
|
+
typedef enum ddog_prof_LabelId_Result_Tag {
|
820
|
+
DDOG_PROF_LABEL_ID_RESULT_OK_GENERATIONAL_ID_LABEL_ID,
|
821
|
+
DDOG_PROF_LABEL_ID_RESULT_ERR_GENERATIONAL_ID_LABEL_ID,
|
822
|
+
} ddog_prof_LabelId_Result_Tag;
|
823
|
+
|
824
|
+
typedef struct ddog_prof_LabelId_Result {
|
825
|
+
ddog_prof_LabelId_Result_Tag tag;
|
710
826
|
union {
|
711
827
|
struct {
|
712
|
-
struct
|
828
|
+
struct ddog_prof_LabelId ok;
|
713
829
|
};
|
714
830
|
struct {
|
715
831
|
struct ddog_Error err;
|
716
832
|
};
|
717
833
|
};
|
718
|
-
}
|
834
|
+
} ddog_prof_LabelId_Result;
|
719
835
|
|
720
|
-
typedef struct
|
836
|
+
typedef struct OpaqueLabelSetId {
|
837
|
+
uint32_t _0;
|
838
|
+
} OpaqueLabelSetId;
|
839
|
+
|
840
|
+
typedef struct ddog_prof_LabelSetId {
|
841
|
+
struct ddog_prof_Generation generation;
|
842
|
+
struct OpaqueLabelSetId id;
|
843
|
+
} ddog_prof_LabelSetId;
|
844
|
+
|
845
|
+
/**
|
846
|
+
* A generic result type for when an operation may fail,
|
847
|
+
* or may return <T> in case of success.
|
848
|
+
*/
|
849
|
+
typedef enum ddog_prof_LabelSetId_Result_Tag {
|
850
|
+
DDOG_PROF_LABEL_SET_ID_RESULT_OK_GENERATIONAL_ID_LABEL_SET_ID,
|
851
|
+
DDOG_PROF_LABEL_SET_ID_RESULT_ERR_GENERATIONAL_ID_LABEL_SET_ID,
|
852
|
+
} ddog_prof_LabelSetId_Result_Tag;
|
853
|
+
|
854
|
+
typedef struct ddog_prof_LabelSetId_Result {
|
855
|
+
ddog_prof_LabelSetId_Result_Tag tag;
|
856
|
+
union {
|
857
|
+
struct {
|
858
|
+
struct ddog_prof_LabelSetId ok;
|
859
|
+
};
|
860
|
+
struct {
|
861
|
+
struct ddog_Error err;
|
862
|
+
};
|
863
|
+
};
|
864
|
+
} ddog_prof_LabelSetId_Result;
|
865
|
+
|
866
|
+
typedef struct ddog_prof_Slice_LabelId {
|
721
867
|
/**
|
722
868
|
* Should be non-null and suitably aligned for the underlying type. It is
|
723
869
|
* allowed but not recommended for the pointer to be null when the len is
|
724
870
|
* zero.
|
725
871
|
*/
|
726
|
-
const
|
872
|
+
const struct ddog_prof_LabelId *ptr;
|
727
873
|
/**
|
728
874
|
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
729
875
|
* than or equal to [isize::MAX].
|
730
876
|
*/
|
731
877
|
uintptr_t len;
|
732
|
-
}
|
878
|
+
} ddog_prof_Slice_LabelId;
|
879
|
+
|
880
|
+
typedef struct OpaqueLocationId {
|
881
|
+
uint32_t _0;
|
882
|
+
} OpaqueLocationId;
|
883
|
+
|
884
|
+
typedef struct ddog_prof_LocationId {
|
885
|
+
struct ddog_prof_Generation generation;
|
886
|
+
struct OpaqueLocationId id;
|
887
|
+
} ddog_prof_LocationId;
|
888
|
+
|
889
|
+
/**
|
890
|
+
* A generic result type for when an operation may fail,
|
891
|
+
* or may return <T> in case of success.
|
892
|
+
*/
|
893
|
+
typedef enum ddog_prof_LocationId_Result_Tag {
|
894
|
+
DDOG_PROF_LOCATION_ID_RESULT_OK_GENERATIONAL_ID_LOCATION_ID,
|
895
|
+
DDOG_PROF_LOCATION_ID_RESULT_ERR_GENERATIONAL_ID_LOCATION_ID,
|
896
|
+
} ddog_prof_LocationId_Result_Tag;
|
897
|
+
|
898
|
+
typedef struct ddog_prof_LocationId_Result {
|
899
|
+
ddog_prof_LocationId_Result_Tag tag;
|
900
|
+
union {
|
901
|
+
struct {
|
902
|
+
struct ddog_prof_LocationId ok;
|
903
|
+
};
|
904
|
+
struct {
|
905
|
+
struct ddog_Error err;
|
906
|
+
};
|
907
|
+
};
|
908
|
+
} ddog_prof_LocationId_Result;
|
909
|
+
|
910
|
+
typedef struct OpaqueMappingId {
|
911
|
+
uint32_t _0;
|
912
|
+
} OpaqueMappingId;
|
913
|
+
|
914
|
+
typedef struct ddog_prof_MappingId {
|
915
|
+
struct ddog_prof_Generation generation;
|
916
|
+
struct OpaqueMappingId id;
|
917
|
+
} ddog_prof_MappingId;
|
918
|
+
|
919
|
+
/**
|
920
|
+
* A generic result type for when an operation may fail,
|
921
|
+
* or may return <T> in case of success.
|
922
|
+
*/
|
923
|
+
typedef enum ddog_prof_StringId_Result_Tag {
|
924
|
+
DDOG_PROF_STRING_ID_RESULT_OK_GENERATIONAL_ID_STRING_ID,
|
925
|
+
DDOG_PROF_STRING_ID_RESULT_ERR_GENERATIONAL_ID_STRING_ID,
|
926
|
+
} ddog_prof_StringId_Result_Tag;
|
927
|
+
|
928
|
+
typedef struct ddog_prof_StringId_Result {
|
929
|
+
ddog_prof_StringId_Result_Tag tag;
|
930
|
+
union {
|
931
|
+
struct {
|
932
|
+
struct ddog_prof_StringId ok;
|
933
|
+
};
|
934
|
+
struct {
|
935
|
+
struct ddog_Error err;
|
936
|
+
};
|
937
|
+
};
|
938
|
+
} ddog_prof_StringId_Result;
|
733
939
|
|
734
940
|
typedef struct ddog_prof_Slice_ManagedStringId {
|
735
941
|
/**
|
@@ -745,6 +951,170 @@ typedef struct ddog_prof_Slice_ManagedStringId {
|
|
745
951
|
uintptr_t len;
|
746
952
|
} ddog_prof_Slice_ManagedStringId;
|
747
953
|
|
954
|
+
typedef struct ddog_prof_MutSlice_GenerationalIdStringId {
|
955
|
+
/**
|
956
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
957
|
+
* allowed but not recommended for the pointer to be null when the len is
|
958
|
+
* zero.
|
959
|
+
*/
|
960
|
+
struct ddog_prof_StringId *ptr;
|
961
|
+
/**
|
962
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
963
|
+
* than or equal to [isize::MAX].
|
964
|
+
*/
|
965
|
+
uintptr_t len;
|
966
|
+
} ddog_prof_MutSlice_GenerationalIdStringId;
|
967
|
+
|
968
|
+
/**
|
969
|
+
* A generic result type for when an operation may fail,
|
970
|
+
* or may return <T> in case of success.
|
971
|
+
*/
|
972
|
+
typedef enum ddog_prof_MappingId_Result_Tag {
|
973
|
+
DDOG_PROF_MAPPING_ID_RESULT_OK_GENERATIONAL_ID_MAPPING_ID,
|
974
|
+
DDOG_PROF_MAPPING_ID_RESULT_ERR_GENERATIONAL_ID_MAPPING_ID,
|
975
|
+
} ddog_prof_MappingId_Result_Tag;
|
976
|
+
|
977
|
+
typedef struct ddog_prof_MappingId_Result {
|
978
|
+
ddog_prof_MappingId_Result_Tag tag;
|
979
|
+
union {
|
980
|
+
struct {
|
981
|
+
struct ddog_prof_MappingId ok;
|
982
|
+
};
|
983
|
+
struct {
|
984
|
+
struct ddog_Error err;
|
985
|
+
};
|
986
|
+
};
|
987
|
+
} ddog_prof_MappingId_Result;
|
988
|
+
|
989
|
+
typedef struct OpaqueStackTraceId {
|
990
|
+
uint32_t _0;
|
991
|
+
} OpaqueStackTraceId;
|
992
|
+
|
993
|
+
typedef struct ddog_prof_StackTraceId {
|
994
|
+
struct ddog_prof_Generation generation;
|
995
|
+
struct OpaqueStackTraceId id;
|
996
|
+
} ddog_prof_StackTraceId;
|
997
|
+
|
998
|
+
/**
|
999
|
+
* A generic result type for when an operation may fail,
|
1000
|
+
* or may return <T> in case of success.
|
1001
|
+
*/
|
1002
|
+
typedef enum ddog_prof_StackTraceId_Result_Tag {
|
1003
|
+
DDOG_PROF_STACK_TRACE_ID_RESULT_OK_GENERATIONAL_ID_STACK_TRACE_ID,
|
1004
|
+
DDOG_PROF_STACK_TRACE_ID_RESULT_ERR_GENERATIONAL_ID_STACK_TRACE_ID,
|
1005
|
+
} ddog_prof_StackTraceId_Result_Tag;
|
1006
|
+
|
1007
|
+
typedef struct ddog_prof_StackTraceId_Result {
|
1008
|
+
ddog_prof_StackTraceId_Result_Tag tag;
|
1009
|
+
union {
|
1010
|
+
struct {
|
1011
|
+
struct ddog_prof_StackTraceId ok;
|
1012
|
+
};
|
1013
|
+
struct {
|
1014
|
+
struct ddog_Error err;
|
1015
|
+
};
|
1016
|
+
};
|
1017
|
+
} ddog_prof_StackTraceId_Result;
|
1018
|
+
|
1019
|
+
typedef struct ddog_prof_Slice_LocationId {
|
1020
|
+
/**
|
1021
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
1022
|
+
* allowed but not recommended for the pointer to be null when the len is
|
1023
|
+
* zero.
|
1024
|
+
*/
|
1025
|
+
const struct ddog_prof_LocationId *ptr;
|
1026
|
+
/**
|
1027
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
1028
|
+
* than or equal to [isize::MAX].
|
1029
|
+
*/
|
1030
|
+
uintptr_t len;
|
1031
|
+
} ddog_prof_Slice_LocationId;
|
1032
|
+
|
1033
|
+
typedef struct ddog_prof_Slice_CharSlice {
|
1034
|
+
/**
|
1035
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
1036
|
+
* allowed but not recommended for the pointer to be null when the len is
|
1037
|
+
* zero.
|
1038
|
+
*/
|
1039
|
+
const ddog_CharSlice *ptr;
|
1040
|
+
/**
|
1041
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
1042
|
+
* than or equal to [isize::MAX].
|
1043
|
+
*/
|
1044
|
+
uintptr_t len;
|
1045
|
+
} ddog_prof_Slice_CharSlice;
|
1046
|
+
|
1047
|
+
/**
|
1048
|
+
* A generic result type for when an operation may fail,
|
1049
|
+
* or may return <T> in case of success.
|
1050
|
+
*/
|
1051
|
+
typedef enum ddog_prof_Result_Generation_Tag {
|
1052
|
+
DDOG_PROF_RESULT_GENERATION_OK_GENERATION,
|
1053
|
+
DDOG_PROF_RESULT_GENERATION_ERR_GENERATION,
|
1054
|
+
} ddog_prof_Result_Generation_Tag;
|
1055
|
+
|
1056
|
+
typedef struct ddog_prof_Result_Generation {
|
1057
|
+
ddog_prof_Result_Generation_Tag tag;
|
1058
|
+
union {
|
1059
|
+
struct {
|
1060
|
+
struct ddog_prof_Generation ok;
|
1061
|
+
};
|
1062
|
+
struct {
|
1063
|
+
struct ddog_Error err;
|
1064
|
+
};
|
1065
|
+
};
|
1066
|
+
} ddog_prof_Result_Generation;
|
1067
|
+
|
1068
|
+
typedef enum ddog_prof_ManagedStringStorageNewResult_Tag {
|
1069
|
+
DDOG_PROF_MANAGED_STRING_STORAGE_NEW_RESULT_OK,
|
1070
|
+
DDOG_PROF_MANAGED_STRING_STORAGE_NEW_RESULT_ERR,
|
1071
|
+
} ddog_prof_ManagedStringStorageNewResult_Tag;
|
1072
|
+
|
1073
|
+
typedef struct ddog_prof_ManagedStringStorageNewResult {
|
1074
|
+
ddog_prof_ManagedStringStorageNewResult_Tag tag;
|
1075
|
+
union {
|
1076
|
+
struct {
|
1077
|
+
struct ddog_prof_ManagedStringStorage ok;
|
1078
|
+
};
|
1079
|
+
struct {
|
1080
|
+
struct ddog_Error err;
|
1081
|
+
};
|
1082
|
+
};
|
1083
|
+
} ddog_prof_ManagedStringStorageNewResult;
|
1084
|
+
|
1085
|
+
typedef enum ddog_prof_ManagedStringStorageInternResult_Tag {
|
1086
|
+
DDOG_PROF_MANAGED_STRING_STORAGE_INTERN_RESULT_OK,
|
1087
|
+
DDOG_PROF_MANAGED_STRING_STORAGE_INTERN_RESULT_ERR,
|
1088
|
+
} ddog_prof_ManagedStringStorageInternResult_Tag;
|
1089
|
+
|
1090
|
+
typedef struct ddog_prof_ManagedStringStorageInternResult {
|
1091
|
+
ddog_prof_ManagedStringStorageInternResult_Tag tag;
|
1092
|
+
union {
|
1093
|
+
struct {
|
1094
|
+
struct ddog_prof_ManagedStringId ok;
|
1095
|
+
};
|
1096
|
+
struct {
|
1097
|
+
struct ddog_Error err;
|
1098
|
+
};
|
1099
|
+
};
|
1100
|
+
} ddog_prof_ManagedStringStorageInternResult;
|
1101
|
+
|
1102
|
+
typedef enum ddog_prof_Option_Error_Tag {
|
1103
|
+
DDOG_PROF_OPTION_ERROR_SOME_ERROR,
|
1104
|
+
DDOG_PROF_OPTION_ERROR_NONE_ERROR,
|
1105
|
+
} ddog_prof_Option_Error_Tag;
|
1106
|
+
|
1107
|
+
typedef struct ddog_prof_Option_Error {
|
1108
|
+
ddog_prof_Option_Error_Tag tag;
|
1109
|
+
union {
|
1110
|
+
struct {
|
1111
|
+
struct ddog_Error some;
|
1112
|
+
};
|
1113
|
+
};
|
1114
|
+
} ddog_prof_Option_Error;
|
1115
|
+
|
1116
|
+
typedef struct ddog_prof_Option_Error ddog_prof_MaybeError;
|
1117
|
+
|
748
1118
|
typedef enum ddog_StringWrapperResult_Tag {
|
749
1119
|
DDOG_STRING_WRAPPER_RESULT_OK,
|
750
1120
|
DDOG_STRING_WRAPPER_RESULT_ERR,
|
@@ -762,12 +1132,16 @@ typedef struct ddog_StringWrapperResult {
|
|
762
1132
|
};
|
763
1133
|
} ddog_StringWrapperResult;
|
764
1134
|
|
1135
|
+
typedef struct ddog_prof_StringId ddog_prof_StringId;
|
1136
|
+
|
765
1137
|
typedef enum ddog_ConfigurationOrigin {
|
766
1138
|
DDOG_CONFIGURATION_ORIGIN_ENV_VAR,
|
767
1139
|
DDOG_CONFIGURATION_ORIGIN_CODE,
|
768
1140
|
DDOG_CONFIGURATION_ORIGIN_DD_CONFIG,
|
769
1141
|
DDOG_CONFIGURATION_ORIGIN_REMOTE_CONFIG,
|
770
1142
|
DDOG_CONFIGURATION_ORIGIN_DEFAULT,
|
1143
|
+
DDOG_CONFIGURATION_ORIGIN_LOCAL_STABLE_CONFIG,
|
1144
|
+
DDOG_CONFIGURATION_ORIGIN_FLEET_STABLE_CONFIG,
|
771
1145
|
} ddog_ConfigurationOrigin;
|
772
1146
|
|
773
1147
|
typedef enum ddog_LogLevel {
|
@@ -899,6 +1273,7 @@ typedef enum ddog_crasht_OpTypes {
|
|
899
1273
|
|
900
1274
|
/**
|
901
1275
|
* See https://man7.org/linux/man-pages/man2/sigaction.2.html
|
1276
|
+
* MUST REMAIN IN SYNC WITH THE ENUM IN emit_sigcodes.c
|
902
1277
|
*/
|
903
1278
|
typedef enum ddog_crasht_SiCodes {
|
904
1279
|
DDOG_CRASHT_SI_CODES_BUS_ADRALN,
|
@@ -906,6 +1281,14 @@ typedef enum ddog_crasht_SiCodes {
|
|
906
1281
|
DDOG_CRASHT_SI_CODES_BUS_MCEERR_AO,
|
907
1282
|
DDOG_CRASHT_SI_CODES_BUS_MCEERR_AR,
|
908
1283
|
DDOG_CRASHT_SI_CODES_BUS_OBJERR,
|
1284
|
+
DDOG_CRASHT_SI_CODES_ILL_BADSTK,
|
1285
|
+
DDOG_CRASHT_SI_CODES_ILL_COPROC,
|
1286
|
+
DDOG_CRASHT_SI_CODES_ILL_ILLADR,
|
1287
|
+
DDOG_CRASHT_SI_CODES_ILL_ILLOPC,
|
1288
|
+
DDOG_CRASHT_SI_CODES_ILL_ILLOPN,
|
1289
|
+
DDOG_CRASHT_SI_CODES_ILL_ILLTRP,
|
1290
|
+
DDOG_CRASHT_SI_CODES_ILL_PRVOPC,
|
1291
|
+
DDOG_CRASHT_SI_CODES_ILL_PRVREG,
|
909
1292
|
DDOG_CRASHT_SI_CODES_SEGV_ACCERR,
|
910
1293
|
DDOG_CRASHT_SI_CODES_SEGV_BNDERR,
|
911
1294
|
DDOG_CRASHT_SI_CODES_SEGV_MAPERR,
|
@@ -926,10 +1309,37 @@ typedef enum ddog_crasht_SiCodes {
|
|
926
1309
|
* See https://man7.org/linux/man-pages/man7/signal.7.html
|
927
1310
|
*/
|
928
1311
|
typedef enum ddog_crasht_SignalNames {
|
1312
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGHUP,
|
1313
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGINT,
|
1314
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGQUIT,
|
1315
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGILL,
|
1316
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGTRAP,
|
929
1317
|
DDOG_CRASHT_SIGNAL_NAMES_SIGABRT,
|
930
1318
|
DDOG_CRASHT_SIGNAL_NAMES_SIGBUS,
|
1319
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGFPE,
|
1320
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGKILL,
|
1321
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGUSR1,
|
931
1322
|
DDOG_CRASHT_SIGNAL_NAMES_SIGSEGV,
|
1323
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGUSR2,
|
1324
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGPIPE,
|
1325
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGALRM,
|
1326
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGTERM,
|
1327
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGCHLD,
|
1328
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGCONT,
|
1329
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGSTOP,
|
1330
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGTSTP,
|
1331
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGTTIN,
|
1332
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGTTOU,
|
1333
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGURG,
|
1334
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGXCPU,
|
1335
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGXFSZ,
|
1336
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGVTALRM,
|
1337
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGPROF,
|
1338
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGWINCH,
|
1339
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGIO,
|
932
1340
|
DDOG_CRASHT_SIGNAL_NAMES_SIGSYS,
|
1341
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGEMT,
|
1342
|
+
DDOG_CRASHT_SIGNAL_NAMES_SIGINFO,
|
933
1343
|
DDOG_CRASHT_SIGNAL_NAMES_UNKNOWN,
|
934
1344
|
} ddog_crasht_SignalNames;
|
935
1345
|
|
@@ -946,6 +1356,12 @@ typedef enum ddog_crasht_StacktraceCollection {
|
|
946
1356
|
*/
|
947
1357
|
DDOG_CRASHT_STACKTRACE_COLLECTION_DISABLED,
|
948
1358
|
DDOG_CRASHT_STACKTRACE_COLLECTION_WITHOUT_SYMBOLS,
|
1359
|
+
/**
|
1360
|
+
* This option uses `backtrace::resolve_frame_unsynchronized()` to gather symbol information
|
1361
|
+
* and also unwind inlined functions. Enabling this feature will not only provide symbolic
|
1362
|
+
* details, but may also yield additional or less stack frames compared to other
|
1363
|
+
* configurations.
|
1364
|
+
*/
|
949
1365
|
DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_INPROCESS_SYMBOLS,
|
950
1366
|
DDOG_CRASHT_STACKTRACE_COLLECTION_ENABLED_WITH_SYMBOLS_IN_RECEIVER,
|
951
1367
|
} ddog_crasht_StacktraceCollection;
|
@@ -958,31 +1374,6 @@ typedef struct ddog_crasht_StackFrame ddog_crasht_StackFrame;
|
|
958
1374
|
|
959
1375
|
typedef struct ddog_crasht_StackTrace ddog_crasht_StackTrace;
|
960
1376
|
|
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
1377
|
typedef struct ddog_crasht_Slice_CharSlice {
|
987
1378
|
/**
|
988
1379
|
* Should be non-null and suitably aligned for the underlying type. It is
|
@@ -997,26 +1388,49 @@ typedef struct ddog_crasht_Slice_CharSlice {
|
|
997
1388
|
uintptr_t len;
|
998
1389
|
} ddog_crasht_Slice_CharSlice;
|
999
1390
|
|
1391
|
+
typedef struct ddog_crasht_Slice_I32 {
|
1392
|
+
/**
|
1393
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
1394
|
+
* allowed but not recommended for the pointer to be null when the len is
|
1395
|
+
* zero.
|
1396
|
+
*/
|
1397
|
+
const int32_t *ptr;
|
1398
|
+
/**
|
1399
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
1400
|
+
* than or equal to [isize::MAX].
|
1401
|
+
*/
|
1402
|
+
uintptr_t len;
|
1403
|
+
} ddog_crasht_Slice_I32;
|
1404
|
+
|
1000
1405
|
typedef struct ddog_crasht_Config {
|
1001
1406
|
struct ddog_crasht_Slice_CharSlice additional_files;
|
1002
1407
|
bool create_alt_stack;
|
1003
|
-
bool
|
1408
|
+
bool demangle_names;
|
1004
1409
|
/**
|
1005
1410
|
* The endpoint to send the crash report to (can be a file://).
|
1006
1411
|
* If None, the crashtracker will infer the agent host from env variables.
|
1007
1412
|
*/
|
1008
1413
|
const struct ddog_Endpoint *endpoint;
|
1414
|
+
/**
|
1415
|
+
* Optional filename for a unix domain socket if the receiver is used asynchonously
|
1416
|
+
*/
|
1417
|
+
ddog_CharSlice optional_unix_socket_filename;
|
1009
1418
|
enum ddog_crasht_StacktraceCollection resolve_frames;
|
1419
|
+
/**
|
1420
|
+
* The set of signals we should be registered for.
|
1421
|
+
* If empty, use the default set.
|
1422
|
+
*/
|
1423
|
+
struct ddog_crasht_Slice_I32 signals;
|
1010
1424
|
/**
|
1011
1425
|
* Timeout in milliseconds before the signal handler starts tearing things down to return.
|
1426
|
+
* If 0, uses the default timeout as specified in
|
1427
|
+
* `datadog_crashtracker::shared::constants::DD_CRASHTRACK_DEFAULT_TIMEOUT`. Otherwise, uses
|
1428
|
+
* the specified timeout value.
|
1012
1429
|
* This is given as a uint32_t, but the actual timeout needs to fit inside of an i32 (max
|
1013
1430
|
* 2^31-1). This is a limitation of the various interfaces used to guarantee the timeout.
|
1014
1431
|
*/
|
1015
1432
|
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;
|
1433
|
+
bool use_alt_stack;
|
1020
1434
|
} ddog_crasht_Config;
|
1021
1435
|
|
1022
1436
|
typedef struct ddog_crasht_EnvVar {
|
@@ -1062,6 +1476,20 @@ typedef struct ddog_crasht_Metadata {
|
|
1062
1476
|
const struct ddog_Vec_Tag *tags;
|
1063
1477
|
} ddog_crasht_Metadata;
|
1064
1478
|
|
1479
|
+
typedef struct ddog_crasht_Slice_CInt {
|
1480
|
+
/**
|
1481
|
+
* Should be non-null and suitably aligned for the underlying type. It is
|
1482
|
+
* allowed but not recommended for the pointer to be null when the len is
|
1483
|
+
* zero.
|
1484
|
+
*/
|
1485
|
+
const int *ptr;
|
1486
|
+
/**
|
1487
|
+
* The number of elements (not bytes) that `.ptr` points to. Must be less
|
1488
|
+
* than or equal to [isize::MAX].
|
1489
|
+
*/
|
1490
|
+
uintptr_t len;
|
1491
|
+
} ddog_crasht_Slice_CInt;
|
1492
|
+
|
1065
1493
|
/**
|
1066
1494
|
* A generic result type for when an operation may fail,
|
1067
1495
|
* or may return <T> in case of success.
|
@@ -1204,8 +1632,20 @@ typedef enum ddog_TraceExporterErrorCode {
|
|
1204
1632
|
DDOG_TRACE_EXPORTER_ERROR_CODE_NETWORK_UNKNOWN,
|
1205
1633
|
DDOG_TRACE_EXPORTER_ERROR_CODE_SERDE,
|
1206
1634
|
DDOG_TRACE_EXPORTER_ERROR_CODE_TIMED_OUT,
|
1635
|
+
DDOG_TRACE_EXPORTER_ERROR_CODE_INTERNAL,
|
1636
|
+
DDOG_TRACE_EXPORTER_ERROR_CODE_PANIC,
|
1207
1637
|
} ddog_TraceExporterErrorCode;
|
1208
1638
|
|
1639
|
+
/**
|
1640
|
+
* Structure containing the agent response to a trace payload
|
1641
|
+
* MUST be freed with `ddog_trace_exporter_response_free`
|
1642
|
+
*
|
1643
|
+
* If the agent payload version is enabled on the trace exporter, and
|
1644
|
+
* the agent response indicates that the payload version hasn't changed,
|
1645
|
+
* the body will be empty.
|
1646
|
+
*/
|
1647
|
+
typedef struct ddog_TraceExporterResponse ddog_TraceExporterResponse;
|
1648
|
+
|
1209
1649
|
/**
|
1210
1650
|
* The TraceExporter ingest traces from the tracers serialized as messagepack and forward them to
|
1211
1651
|
* the agent while applying some transformation.
|
@@ -1236,7 +1676,7 @@ typedef struct ddog_TraceExporter ddog_TraceExporter;
|
|
1236
1676
|
typedef struct ddog_TraceExporterConfig ddog_TraceExporterConfig;
|
1237
1677
|
|
1238
1678
|
/**
|
1239
|
-
*
|
1679
|
+
* Structure that contains error information that `TraceExporter` API can return.
|
1240
1680
|
*/
|
1241
1681
|
typedef struct ddog_TraceExporterError {
|
1242
1682
|
enum ddog_TraceExporterErrorCode code;
|
@@ -1244,31 +1684,28 @@ typedef struct ddog_TraceExporterError {
|
|
1244
1684
|
} ddog_TraceExporterError;
|
1245
1685
|
|
1246
1686
|
/**
|
1247
|
-
*
|
1687
|
+
* FFI compatible configuration for the TelemetryClient.
|
1248
1688
|
*/
|
1249
|
-
typedef struct
|
1689
|
+
typedef struct ddog_TelemetryClientConfig {
|
1250
1690
|
/**
|
1251
|
-
*
|
1691
|
+
* How often telemetry should be sent, in milliseconds.
|
1252
1692
|
*/
|
1253
|
-
|
1254
|
-
|
1255
|
-
|
1256
|
-
|
1257
|
-
|
1258
|
-
|
1259
|
-
|
1260
|
-
|
1261
|
-
|
1262
|
-
|
1263
|
-
|
1264
|
-
|
1265
|
-
|
1266
|
-
|
1267
|
-
|
1268
|
-
|
1269
|
-
DDOG_LIBRARY_CONFIG_NAME_DD_ENV,
|
1270
|
-
DDOG_LIBRARY_CONFIG_NAME_DD_VERSION,
|
1271
|
-
} ddog_LibraryConfigName;
|
1693
|
+
uint64_t interval;
|
1694
|
+
/**
|
1695
|
+
* A V4 UUID that represents a tracer session. This ID should:
|
1696
|
+
* - Be generated when the tracer starts
|
1697
|
+
* - Be identical within the context of a host (i.e. multiple threads/processes that belong to
|
1698
|
+
* a single instrumented app should share the same runtime_id)
|
1699
|
+
* - Be associated with traces to allow correlation between traces and telemetry data
|
1700
|
+
*/
|
1701
|
+
ddog_CharSlice runtime_id;
|
1702
|
+
/**
|
1703
|
+
* Whether to enable debug mode for telemetry.
|
1704
|
+
* When enabled, sets the DD-Telemetry-Debug-Enabled header to true.
|
1705
|
+
* Defaults to false.
|
1706
|
+
*/
|
1707
|
+
bool debug_enabled;
|
1708
|
+
} ddog_TelemetryClientConfig;
|
1272
1709
|
|
1273
1710
|
typedef enum ddog_LibraryConfigSource {
|
1274
1711
|
DDOG_LIBRARY_CONFIG_SOURCE_LOCAL_STABLE_CONFIG = 0,
|
@@ -1328,8 +1765,10 @@ typedef struct ddog_CString {
|
|
1328
1765
|
} ddog_CString;
|
1329
1766
|
|
1330
1767
|
typedef struct ddog_LibraryConfig {
|
1331
|
-
|
1768
|
+
struct ddog_CString name;
|
1332
1769
|
struct ddog_CString value;
|
1770
|
+
enum ddog_LibraryConfigSource source;
|
1771
|
+
struct ddog_CString config_id;
|
1333
1772
|
} ddog_LibraryConfig;
|
1334
1773
|
|
1335
1774
|
/**
|
@@ -1363,13 +1802,130 @@ typedef struct ddog_Result_VecLibraryConfig {
|
|
1363
1802
|
};
|
1364
1803
|
} ddog_Result_VecLibraryConfig;
|
1365
1804
|
|
1805
|
+
/**
|
1806
|
+
* C-compatible representation of an anonymous file handle
|
1807
|
+
*/
|
1808
|
+
typedef struct ddog_TracerMemfdHandle {
|
1809
|
+
/**
|
1810
|
+
* File descriptor (relevant only on Linux)
|
1811
|
+
*/
|
1812
|
+
int fd;
|
1813
|
+
} ddog_TracerMemfdHandle;
|
1814
|
+
|
1815
|
+
/**
|
1816
|
+
* A generic result type for when an operation may fail,
|
1817
|
+
* or may return <T> in case of success.
|
1818
|
+
*/
|
1819
|
+
typedef enum ddog_Result_TracerMemfdHandle_Tag {
|
1820
|
+
DDOG_RESULT_TRACER_MEMFD_HANDLE_OK_TRACER_MEMFD_HANDLE,
|
1821
|
+
DDOG_RESULT_TRACER_MEMFD_HANDLE_ERR_TRACER_MEMFD_HANDLE,
|
1822
|
+
} ddog_Result_TracerMemfdHandle_Tag;
|
1823
|
+
|
1824
|
+
typedef struct ddog_Result_TracerMemfdHandle {
|
1825
|
+
ddog_Result_TracerMemfdHandle_Tag tag;
|
1826
|
+
union {
|
1827
|
+
struct {
|
1828
|
+
struct ddog_TracerMemfdHandle ok;
|
1829
|
+
};
|
1830
|
+
struct {
|
1831
|
+
struct ddog_Error err;
|
1832
|
+
};
|
1833
|
+
};
|
1834
|
+
} ddog_Result_TracerMemfdHandle;
|
1835
|
+
|
1836
|
+
/**
|
1837
|
+
* Log level for filtering log events.
|
1838
|
+
*/
|
1839
|
+
typedef enum ddog_LogEventLevel {
|
1840
|
+
/**
|
1841
|
+
* The "trace" level.
|
1842
|
+
*
|
1843
|
+
* Designates very low priority, often extremely verbose, information.
|
1844
|
+
*/
|
1845
|
+
DDOG_LOG_EVENT_LEVEL_TRACE = 0,
|
1846
|
+
/**
|
1847
|
+
* The "debug" level.
|
1848
|
+
*
|
1849
|
+
* Designates lower priority information.
|
1850
|
+
*/
|
1851
|
+
DDOG_LOG_EVENT_LEVEL_DEBUG = 1,
|
1852
|
+
/**
|
1853
|
+
* The "info" level.
|
1854
|
+
*
|
1855
|
+
* Designates useful information.
|
1856
|
+
*/
|
1857
|
+
DDOG_LOG_EVENT_LEVEL_INFO = 2,
|
1858
|
+
/**
|
1859
|
+
* The "warn" level.
|
1860
|
+
*
|
1861
|
+
* Designates hazardous situations.
|
1862
|
+
*/
|
1863
|
+
DDOG_LOG_EVENT_LEVEL_WARN = 3,
|
1864
|
+
/**
|
1865
|
+
* The "error" level.
|
1866
|
+
*
|
1867
|
+
* Designates very serious errors.
|
1868
|
+
*/
|
1869
|
+
DDOG_LOG_EVENT_LEVEL_ERROR = 4,
|
1870
|
+
} ddog_LogEventLevel;
|
1871
|
+
|
1872
|
+
/**
|
1873
|
+
* Target for standard stream output.
|
1874
|
+
*/
|
1875
|
+
typedef enum ddog_StdTarget {
|
1876
|
+
/**
|
1877
|
+
* Write to standard output (stdout).
|
1878
|
+
*/
|
1879
|
+
DDOG_STD_TARGET_OUT,
|
1880
|
+
/**
|
1881
|
+
* Write to standard error (stderr).
|
1882
|
+
*/
|
1883
|
+
DDOG_STD_TARGET_ERR,
|
1884
|
+
} ddog_StdTarget;
|
1885
|
+
|
1886
|
+
/**
|
1887
|
+
* Configuration for standard stream output.
|
1888
|
+
*/
|
1889
|
+
typedef struct ddog_StdConfig {
|
1890
|
+
/**
|
1891
|
+
* Target stream (stdout or stderr)
|
1892
|
+
*/
|
1893
|
+
enum ddog_StdTarget target;
|
1894
|
+
} ddog_StdConfig;
|
1895
|
+
|
1896
|
+
/**
|
1897
|
+
* Configuration for file output.
|
1898
|
+
*/
|
1899
|
+
typedef struct ddog_FileConfig {
|
1900
|
+
/**
|
1901
|
+
* Path to the log file
|
1902
|
+
*/
|
1903
|
+
ddog_CharSlice path;
|
1904
|
+
/**
|
1905
|
+
* Maximum total number of files (current + rotated) to keep on disk.
|
1906
|
+
* When this limit is exceeded, the oldest rotated files are deleted.
|
1907
|
+
* Set to 0 to disable file cleanup.
|
1908
|
+
*/
|
1909
|
+
uint64_t max_files;
|
1910
|
+
/**
|
1911
|
+
* Maximum size in bytes for each log file.
|
1912
|
+
* Set to 0 to disable size-based rotation.
|
1913
|
+
*/
|
1914
|
+
uint64_t max_size_bytes;
|
1915
|
+
} ddog_FileConfig;
|
1916
|
+
|
1366
1917
|
#ifdef __cplusplus
|
1367
1918
|
extern "C" {
|
1368
1919
|
#endif // __cplusplus
|
1369
1920
|
|
1370
1921
|
/**
|
1922
|
+
* Drops the error. It should not be used after this, though the
|
1923
|
+
* implementation tries to limit the damage in the case of use-after-free and
|
1924
|
+
* double-free scenarios.
|
1925
|
+
*
|
1371
1926
|
* # Safety
|
1372
|
-
*
|
1927
|
+
*
|
1928
|
+
* Only pass null or a pointer to a valid, mutable `ddog_Error`.
|
1373
1929
|
*/
|
1374
1930
|
void ddog_Error_drop(struct ddog_Error *error);
|
1375
1931
|
|
@@ -1475,16 +2031,23 @@ struct ddog_Option_U32 ddog_Option_U32_some(uint32_t v);
|
|
1475
2031
|
struct ddog_Option_U32 ddog_Option_U32_none(void);
|
1476
2032
|
|
1477
2033
|
/**
|
2034
|
+
* Drops a `ddog_StringWrapper`. It should not be used after this, though the
|
2035
|
+
* implementation tries to limit the damage in the case of use-after-free and
|
2036
|
+
* double-free scenarios.
|
2037
|
+
*
|
1478
2038
|
* # Safety
|
1479
|
-
*
|
2039
|
+
*
|
2040
|
+
* Only pass null or a pointer to a valid, mutable `ddog_StringWrapper`.
|
1480
2041
|
*/
|
1481
2042
|
void ddog_StringWrapper_drop(struct ddog_StringWrapper *s);
|
1482
2043
|
|
1483
2044
|
/**
|
1484
|
-
* Returns a CharSlice of the message
|
1485
|
-
*
|
2045
|
+
* Returns a CharSlice of the message.
|
2046
|
+
*
|
1486
2047
|
* # Safety
|
2048
|
+
*
|
1487
2049
|
* Only pass null or a valid reference to a `ddog_StringWrapper`.
|
2050
|
+
* The string should not be mutated nor dropped while the CharSlice is alive.
|
1488
2051
|
*/
|
1489
2052
|
ddog_CharSlice ddog_StringWrapper_message(const struct ddog_StringWrapper *s);
|
1490
2053
|
|