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
 
| 
         @@ -12,6 +12,13 @@ 
     | 
|
| 
       12 
12 
     | 
    
         
             
            #include <stdint.h>
         
     | 
| 
       13 
13 
     | 
    
         
             
            #include "common.h"
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
      
 15 
     | 
    
         
            +
            #if defined(_WIN32) && defined(_CRASHTRACKING_COLLECTOR)
         
     | 
| 
      
 16 
     | 
    
         
            +
            #include <werapi.h>
         
     | 
| 
      
 17 
     | 
    
         
            +
            #include <windows.h>
         
     | 
| 
      
 18 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
       15 
22 
     | 
    
         
             
            typedef enum  ddog_crasht_CrashInfoBuilder_NewResult_Tag {
         
     | 
| 
       16 
23 
     | 
    
         
             
              DDOG_CRASHT_CRASH_INFO_BUILDER_NEW_RESULT_OK,
         
     | 
| 
       17 
24 
     | 
    
         
             
              DDOG_CRASHT_CRASH_INFO_BUILDER_NEW_RESULT_ERR,
         
     | 
| 
         @@ -51,23 +58,32 @@ extern "C" { 
     | 
|
| 
       51 
58 
     | 
    
         
             
            #endif // __cplusplus
         
     | 
| 
       52 
59 
     | 
    
         | 
| 
       53 
60 
     | 
    
         
             
            /**
         
     | 
| 
       54 
     | 
    
         
            -
             *  
     | 
| 
       55 
     | 
    
         
            -
             *  
     | 
| 
       56 
     | 
    
         
            -
             *  
     | 
| 
       57 
     | 
    
         
            -
             *  
     | 
| 
       58 
     | 
    
         
            -
             * exit.
         
     | 
| 
      
 61 
     | 
    
         
            +
             * Disables the crashtracker.
         
     | 
| 
      
 62 
     | 
    
         
            +
             * Note that this does not restore the old signal handlers, but rather turns crash-tracking into a
         
     | 
| 
      
 63 
     | 
    
         
            +
             * no-op, and then chains the old handlers.  This means that handlers registered after the
         
     | 
| 
      
 64 
     | 
    
         
            +
             * crashtracker will continue to work as expected.
         
     | 
| 
       59 
65 
     | 
    
         
             
             *
         
     | 
| 
       60 
66 
     | 
    
         
             
             * # Preconditions
         
     | 
| 
       61 
     | 
    
         
            -
             *    
     | 
| 
       62 
     | 
    
         
            -
             *   initialized.
         
     | 
| 
      
 67 
     | 
    
         
            +
             *   None
         
     | 
| 
       63 
68 
     | 
    
         
             
             * # Safety
         
     | 
| 
       64 
     | 
    
         
            -
             *    
     | 
| 
       65 
     | 
    
         
            -
             *   No other crash-handler functions should be called concurrently.
         
     | 
| 
      
 69 
     | 
    
         
            +
             *   None
         
     | 
| 
       66 
70 
     | 
    
         
             
             * # Atomicity
         
     | 
| 
       67 
     | 
    
         
            -
             *   This function is  
     | 
| 
       68 
     | 
    
         
            -
              
     | 
| 
      
 71 
     | 
    
         
            +
             *   This function is atomic and idempotent.  Calling it multiple times is allowed.
         
     | 
| 
      
 72 
     | 
    
         
            +
             */
         
     | 
| 
      
 73 
     | 
    
         
            +
            DDOG_CHECK_RETURN struct ddog_VoidResult ddog_crasht_disable(void);
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
            /**
         
     | 
| 
      
 76 
     | 
    
         
            +
             * Enables the crashtracker, if it had been previously disabled.
         
     | 
| 
      
 77 
     | 
    
         
            +
             * If crashtracking has not been initialized, this function will have no effect.
         
     | 
| 
      
 78 
     | 
    
         
            +
             *
         
     | 
| 
      
 79 
     | 
    
         
            +
             * # Preconditions
         
     | 
| 
      
 80 
     | 
    
         
            +
             *   None
         
     | 
| 
      
 81 
     | 
    
         
            +
             * # Safety
         
     | 
| 
      
 82 
     | 
    
         
            +
             *   None
         
     | 
| 
      
 83 
     | 
    
         
            +
             * # Atomicity
         
     | 
| 
      
 84 
     | 
    
         
            +
             *   This function is atomic and idempotent.  Calling it multiple times is allowed.
         
     | 
| 
       69 
85 
     | 
    
         
             
             */
         
     | 
| 
       70 
     | 
    
         
            -
            DDOG_CHECK_RETURN struct ddog_VoidResult  
     | 
| 
      
 86 
     | 
    
         
            +
            DDOG_CHECK_RETURN struct ddog_VoidResult ddog_crasht_enable(void);
         
     | 
| 
       71 
87 
     | 
    
         | 
| 
       72 
88 
     | 
    
         
             
            /**
         
     | 
| 
       73 
89 
     | 
    
         
             
             * Reinitialize the crash-tracking infrastructure after a fork.
         
     | 
| 
         @@ -110,6 +126,24 @@ struct ddog_VoidResult ddog_crasht_init(struct ddog_crasht_Config config, 
     | 
|
| 
       110 
126 
     | 
    
         
             
                                                    struct ddog_crasht_ReceiverConfig receiver_config,
         
     | 
| 
       111 
127 
     | 
    
         
             
                                                    struct ddog_crasht_Metadata metadata);
         
     | 
| 
       112 
128 
     | 
    
         | 
| 
      
 129 
     | 
    
         
            +
            /**
         
     | 
| 
      
 130 
     | 
    
         
            +
             * Reconfigure the crashtracker and re-enables it.
         
     | 
| 
      
 131 
     | 
    
         
            +
             * If the crashtracker has not been initialized, this function will have no effect.
         
     | 
| 
      
 132 
     | 
    
         
            +
             *
         
     | 
| 
      
 133 
     | 
    
         
            +
             * # Preconditions
         
     | 
| 
      
 134 
     | 
    
         
            +
             *   None.
         
     | 
| 
      
 135 
     | 
    
         
            +
             * # Safety
         
     | 
| 
      
 136 
     | 
    
         
            +
             *   Crash-tracking functions are not reentrant.
         
     | 
| 
      
 137 
     | 
    
         
            +
             *   No other crash-handler functions should be called concurrently.
         
     | 
| 
      
 138 
     | 
    
         
            +
             * # Atomicity
         
     | 
| 
      
 139 
     | 
    
         
            +
             *   This function is not atomic. A crash during its execution may lead to
         
     | 
| 
      
 140 
     | 
    
         
            +
             *   unexpected crash-handling behaviour.
         
     | 
| 
      
 141 
     | 
    
         
            +
             */
         
     | 
| 
      
 142 
     | 
    
         
            +
            DDOG_CHECK_RETURN
         
     | 
| 
      
 143 
     | 
    
         
            +
            struct ddog_VoidResult ddog_crasht_reconfigure(struct ddog_crasht_Config config,
         
     | 
| 
      
 144 
     | 
    
         
            +
                                                           struct ddog_crasht_ReceiverConfig receiver_config,
         
     | 
| 
      
 145 
     | 
    
         
            +
                                                           struct ddog_crasht_Metadata metadata);
         
     | 
| 
      
 146 
     | 
    
         
            +
             
     | 
| 
       113 
147 
     | 
    
         
             
            /**
         
     | 
| 
       114 
148 
     | 
    
         
             
             * Initialize the crash-tracking infrastructure without launching the receiver.
         
     | 
| 
       115 
149 
     | 
    
         
             
             *
         
     | 
| 
         @@ -126,6 +160,11 @@ DDOG_CHECK_RETURN 
     | 
|
| 
       126 
160 
     | 
    
         
             
            struct ddog_VoidResult ddog_crasht_init_without_receiver(struct ddog_crasht_Config config,
         
     | 
| 
       127 
161 
     | 
    
         
             
                                                                     struct ddog_crasht_Metadata metadata);
         
     | 
| 
       128 
162 
     | 
    
         | 
| 
      
 163 
     | 
    
         
            +
            /**
         
     | 
| 
      
 164 
     | 
    
         
            +
             * Returns a list of signals suitable for use in a crashtracker config.
         
     | 
| 
      
 165 
     | 
    
         
            +
             */
         
     | 
| 
      
 166 
     | 
    
         
            +
            struct ddog_crasht_Slice_CInt ddog_crasht_default_signals(void);
         
     | 
| 
      
 167 
     | 
    
         
            +
             
     | 
| 
       129 
168 
     | 
    
         
             
            /**
         
     | 
| 
       130 
169 
     | 
    
         
             
             * Removes all existing additional tags
         
     | 
| 
       131 
170 
     | 
    
         
             
             * Expected to be used after a fork, to reset the additional tags on the child
         
     | 
| 
         @@ -325,6 +364,61 @@ struct ddog_VoidResult ddog_crasht_remove_trace_id(uint64_t id_high, 
     | 
|
| 
       325 
364 
     | 
    
         
             
                                                               uint64_t id_low,
         
     | 
| 
       326 
365 
     | 
    
         
             
                                                               uintptr_t idx);
         
     | 
| 
       327 
366 
     | 
    
         | 
| 
      
 367 
     | 
    
         
            +
            #if (defined(_CRASHTRACKING_COLLECTOR) && defined(_WIN32))
         
     | 
| 
      
 368 
     | 
    
         
            +
            /**
         
     | 
| 
      
 369 
     | 
    
         
            +
             * Initialize the crash-tracking infrastructure.
         
     | 
| 
      
 370 
     | 
    
         
            +
             *
         
     | 
| 
      
 371 
     | 
    
         
            +
             * # Preconditions
         
     | 
| 
      
 372 
     | 
    
         
            +
             *   None.
         
     | 
| 
      
 373 
     | 
    
         
            +
             * # Safety
         
     | 
| 
      
 374 
     | 
    
         
            +
             *   Crash-tracking functions are not reentrant.
         
     | 
| 
      
 375 
     | 
    
         
            +
             *   No other crash-handler functions should be called concurrently.
         
     | 
| 
      
 376 
     | 
    
         
            +
             * # Atomicity
         
     | 
| 
      
 377 
     | 
    
         
            +
             *   This function is not atomic. A crash during its execution may lead to
         
     | 
| 
      
 378 
     | 
    
         
            +
             *   unexpected crash-handling behaviour.
         
     | 
| 
      
 379 
     | 
    
         
            +
             */
         
     | 
| 
      
 380 
     | 
    
         
            +
            DDOG_CHECK_RETURN
         
     | 
| 
      
 381 
     | 
    
         
            +
            bool ddog_crasht_init_windows(ddog_CharSlice module,
         
     | 
| 
      
 382 
     | 
    
         
            +
                                          const struct ddog_Endpoint *endpoint,
         
     | 
| 
      
 383 
     | 
    
         
            +
                                          struct ddog_crasht_Metadata metadata);
         
     | 
| 
      
 384 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 385 
     | 
    
         
            +
             
     | 
| 
      
 386 
     | 
    
         
            +
            #if (defined(_CRASHTRACKING_COLLECTOR) && defined(_WIN32))
         
     | 
| 
      
 387 
     | 
    
         
            +
            HRESULT OutOfProcessExceptionEventSignatureCallback(const void *_context,
         
     | 
| 
      
 388 
     | 
    
         
            +
                                                                const WER_RUNTIME_EXCEPTION_INFORMATION *_exception_information,
         
     | 
| 
      
 389 
     | 
    
         
            +
                                                                int32_t _index,
         
     | 
| 
      
 390 
     | 
    
         
            +
                                                                uint16_t *_name,
         
     | 
| 
      
 391 
     | 
    
         
            +
                                                                uint32_t *_name_size,
         
     | 
| 
      
 392 
     | 
    
         
            +
                                                                uint16_t *_value,
         
     | 
| 
      
 393 
     | 
    
         
            +
                                                                uint32_t *_value_size);
         
     | 
| 
      
 394 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 395 
     | 
    
         
            +
             
     | 
| 
      
 396 
     | 
    
         
            +
            #if (defined(_CRASHTRACKING_COLLECTOR) && defined(_WIN32))
         
     | 
| 
      
 397 
     | 
    
         
            +
            HRESULT OutOfProcessExceptionEventDebuggerLaunchCallback(const void *_context,
         
     | 
| 
      
 398 
     | 
    
         
            +
                                                                     const WER_RUNTIME_EXCEPTION_INFORMATION *_exception_information,
         
     | 
| 
      
 399 
     | 
    
         
            +
                                                                     BOOL *_is_custom_debugger,
         
     | 
| 
      
 400 
     | 
    
         
            +
                                                                     uint16_t *_debugger_launch,
         
     | 
| 
      
 401 
     | 
    
         
            +
                                                                     uint32_t *_debugger_launch_size,
         
     | 
| 
      
 402 
     | 
    
         
            +
                                                                     BOOL *_is_debugger_auto_launch);
         
     | 
| 
      
 403 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 404 
     | 
    
         
            +
             
     | 
| 
      
 405 
     | 
    
         
            +
            #if (defined(_CRASHTRACKING_COLLECTOR) && defined(_WIN32))
         
     | 
| 
      
 406 
     | 
    
         
            +
            HRESULT OutOfProcessExceptionEventCallback(const void *context,
         
     | 
| 
      
 407 
     | 
    
         
            +
                                                       const WER_RUNTIME_EXCEPTION_INFORMATION *exception_information,
         
     | 
| 
      
 408 
     | 
    
         
            +
                                                       BOOL *_ownership_claimed,
         
     | 
| 
      
 409 
     | 
    
         
            +
                                                       uint16_t *_event_name,
         
     | 
| 
      
 410 
     | 
    
         
            +
                                                       uint32_t *_size,
         
     | 
| 
      
 411 
     | 
    
         
            +
                                                       uint32_t *_signature_count);
         
     | 
| 
      
 412 
     | 
    
         
            +
            #endif
         
     | 
| 
      
 413 
     | 
    
         
            +
             
     | 
| 
      
 414 
     | 
    
         
            +
            /**
         
     | 
| 
      
 415 
     | 
    
         
            +
             * # Safety
         
     | 
| 
      
 416 
     | 
    
         
            +
             * The `crash_info` can be null, but if non-null it must point to a Builder made by this module,
         
     | 
| 
      
 417 
     | 
    
         
            +
             * which has not previously been dropped.
         
     | 
| 
      
 418 
     | 
    
         
            +
             */
         
     | 
| 
      
 419 
     | 
    
         
            +
            DDOG_CHECK_RETURN
         
     | 
| 
      
 420 
     | 
    
         
            +
            struct ddog_VoidResult ddog_crasht_CrashInfo_demangle_names(struct ddog_crasht_Handle_CrashInfo *crash_info);
         
     | 
| 
      
 421 
     | 
    
         
            +
             
     | 
| 
       328 
422 
     | 
    
         
             
            /**
         
     | 
| 
       329 
423 
     | 
    
         
             
             * # Safety
         
     | 
| 
       330 
424 
     | 
    
         
             
             * The `builder` can be null, but if non-null it must point to a Frame
         
     | 
| 
         @@ -585,6 +679,16 @@ struct ddog_VoidResult ddog_crasht_CrashInfoBuilder_with_uuid(struct ddog_crasht 
     | 
|
| 
       585 
679 
     | 
    
         
             
            DDOG_CHECK_RETURN
         
     | 
| 
       586 
680 
     | 
    
         
             
            struct ddog_VoidResult ddog_crasht_CrashInfoBuilder_with_uuid_random(struct ddog_crasht_Handle_CrashInfoBuilder *builder);
         
     | 
| 
       587 
681 
     | 
    
         | 
| 
      
 682 
     | 
    
         
            +
            /**
         
     | 
| 
      
 683 
     | 
    
         
            +
             * # Safety
         
     | 
| 
      
 684 
     | 
    
         
            +
             * The `crash_info` can be null, but if non-null it must point to a Builder made by this module,
         
     | 
| 
      
 685 
     | 
    
         
            +
             * which has not previously been dropped.
         
     | 
| 
      
 686 
     | 
    
         
            +
             * The CharSlice must be valid.
         
     | 
| 
      
 687 
     | 
    
         
            +
             */
         
     | 
| 
      
 688 
     | 
    
         
            +
            DDOG_CHECK_RETURN
         
     | 
| 
      
 689 
     | 
    
         
            +
            struct ddog_VoidResult ddog_crasht_CrashInfoBuilder_with_message(struct ddog_crasht_Handle_CrashInfoBuilder *builder,
         
     | 
| 
      
 690 
     | 
    
         
            +
                                                                             ddog_CharSlice message);
         
     | 
| 
      
 691 
     | 
    
         
            +
             
     | 
| 
       588 
692 
     | 
    
         
             
            /**
         
     | 
| 
       589 
693 
     | 
    
         
             
             * Create a new StackFrame, and returns an opaque reference to it.
         
     | 
| 
       590 
694 
     | 
    
         
             
             * # Safety
         
     | 
| 
         @@ -782,7 +886,7 @@ struct ddog_StringWrapperResult ddog_crasht_demangle(ddog_CharSlice name, 
     | 
|
| 
       782 
886 
     | 
    
         
             
             * signal handler is dangerous, so we fork a sidecar to do the stuff we aren't
         
     | 
| 
       783 
887 
     | 
    
         
             
             * allowed to do in the handler.
         
     | 
| 
       784 
888 
     | 
    
         
             
             *
         
     | 
| 
       785 
     | 
    
         
            -
             * See comments in [crashtracker/lib.rs] for a full architecture description.
         
     | 
| 
      
 889 
     | 
    
         
            +
             * See comments in [datadog-crashtracker/lib.rs] for a full architecture description.
         
     | 
| 
       786 
890 
     | 
    
         
             
             * # Safety
         
     | 
| 
       787 
891 
     | 
    
         
             
             * No safety concerns
         
     | 
| 
       788 
892 
     | 
    
         
             
             */
         
     | 
| 
         @@ -796,7 +900,7 @@ DDOG_CHECK_RETURN struct ddog_VoidResult ddog_crasht_receiver_entry_point_stdin( 
     | 
|
| 
       796 
900 
     | 
    
         
             
             * signal handler is dangerous, so we fork a sidecar to do the stuff we aren't
         
     | 
| 
       797 
901 
     | 
    
         
             
             * allowed to do in the handler.
         
     | 
| 
       798 
902 
     | 
    
         
             
             *
         
     | 
| 
       799 
     | 
    
         
            -
             * See comments in [ 
     | 
| 
      
 903 
     | 
    
         
            +
             * See comments in [datadog-crashtracker/lib.rs] for a full architecture
         
     | 
| 
       800 
904 
     | 
    
         
             
             * description.
         
     | 
| 
       801 
905 
     | 
    
         
             
             * # Safety
         
     | 
| 
       802 
906 
     | 
    
         
             
             * No safety concerns
         
     | 
| 
         @@ -21,6 +21,18 @@ extern "C" { 
     | 
|
| 
       21 
21 
     | 
    
         
             
             */
         
     | 
| 
       22 
22 
     | 
    
         
             
            void ddog_trace_exporter_error_free(struct ddog_TraceExporterError *error);
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
      
 24 
     | 
    
         
            +
            /**
         
     | 
| 
      
 25 
     | 
    
         
            +
             * Return a read-only pointer to the response body. This pointer is only valid as long as
         
     | 
| 
      
 26 
     | 
    
         
            +
             * `response` is valid.
         
     | 
| 
      
 27 
     | 
    
         
            +
             */
         
     | 
| 
      
 28 
     | 
    
         
            +
            const char *ddog_trace_exporter_response_get_body(const struct ddog_TraceExporterResponse *response);
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
            /**
         
     | 
| 
      
 31 
     | 
    
         
            +
             * Free `response` and all its contents. After being called response will not point to a valid
         
     | 
| 
      
 32 
     | 
    
         
            +
             * memory address so any further actions on it could lead to undefined behavior.
         
     | 
| 
      
 33 
     | 
    
         
            +
             */
         
     | 
| 
      
 34 
     | 
    
         
            +
            void ddog_trace_exporter_response_free(struct ddog_TraceExporterResponse *response);
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
       24 
36 
     | 
    
         
             
            void ddog_trace_exporter_config_new(struct ddog_TraceExporterConfig **out_handle);
         
     | 
| 
       25 
37 
     | 
    
         | 
| 
       26 
38 
     | 
    
         
             
            /**
         
     | 
| 
         @@ -65,7 +77,7 @@ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_hostname(struct d 
     | 
|
| 
       65 
77 
     | 
    
         
             
                                                                                    ddog_CharSlice hostname);
         
     | 
| 
       66 
78 
     | 
    
         | 
| 
       67 
79 
     | 
    
         
             
            /**
         
     | 
| 
       68 
     | 
    
         
            -
             * Sets  
     | 
| 
      
 80 
     | 
    
         
            +
             * Sets environment information to be included in the headers request.
         
     | 
| 
       69 
81 
     | 
    
         
             
             */
         
     | 
| 
       70 
82 
     | 
    
         
             
            struct ddog_TraceExporterError *ddog_trace_exporter_config_set_env(struct ddog_TraceExporterConfig *config,
         
     | 
| 
       71 
83 
     | 
    
         
             
                                                                               ddog_CharSlice env);
         
     | 
| 
         @@ -79,6 +91,56 @@ struct ddog_TraceExporterError *ddog_trace_exporter_config_set_version(struct dd 
     | 
|
| 
       79 
91 
     | 
    
         
             
            struct ddog_TraceExporterError *ddog_trace_exporter_config_set_service(struct ddog_TraceExporterConfig *config,
         
     | 
| 
       80 
92 
     | 
    
         
             
                                                                                   ddog_CharSlice service);
         
     | 
| 
       81 
93 
     | 
    
         | 
| 
      
 94 
     | 
    
         
            +
            /**
         
     | 
| 
      
 95 
     | 
    
         
            +
             * Enables metrics.
         
     | 
| 
      
 96 
     | 
    
         
            +
             */
         
     | 
| 
      
 97 
     | 
    
         
            +
            struct ddog_TraceExporterError *ddog_trace_exporter_config_enable_telemetry(struct ddog_TraceExporterConfig *config,
         
     | 
| 
      
 98 
     | 
    
         
            +
                                                                                        const struct ddog_TelemetryClientConfig *telemetry_cfg);
         
     | 
| 
      
 99 
     | 
    
         
            +
             
     | 
| 
      
 100 
     | 
    
         
            +
            /**
         
     | 
| 
      
 101 
     | 
    
         
            +
             * Set client-side stats computation status.
         
     | 
| 
      
 102 
     | 
    
         
            +
             */
         
     | 
| 
      
 103 
     | 
    
         
            +
            struct ddog_TraceExporterError *ddog_trace_exporter_config_set_compute_stats(struct ddog_TraceExporterConfig *config,
         
     | 
| 
      
 104 
     | 
    
         
            +
                                                                                         bool is_enabled);
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
            /**
         
     | 
| 
      
 107 
     | 
    
         
            +
             * Sets `Datadog-Client-Computed-Stats` header to `true`.
         
     | 
| 
      
 108 
     | 
    
         
            +
             * This indicates that the upstream system has already computed the stats,
         
     | 
| 
      
 109 
     | 
    
         
            +
             * and no further stats computation should be performed.
         
     | 
| 
      
 110 
     | 
    
         
            +
             *
         
     | 
| 
      
 111 
     | 
    
         
            +
             * <div class="warning">
         
     | 
| 
      
 112 
     | 
    
         
            +
             * This method must not be used when `compute_stats` is enabled, as it could
         
     | 
| 
      
 113 
     | 
    
         
            +
             * result in duplicate stats computation.
         
     | 
| 
      
 114 
     | 
    
         
            +
             * </div>
         
     | 
| 
      
 115 
     | 
    
         
            +
             *
         
     | 
| 
      
 116 
     | 
    
         
            +
             * A common use case is in Application Security Monitoring (ASM) scenarios:
         
     | 
| 
      
 117 
     | 
    
         
            +
             * when APM is disabled but ASM is enabled, setting this header to `true`
         
     | 
| 
      
 118 
     | 
    
         
            +
             * ensures that no stats are computed at any level (exporter or agent).
         
     | 
| 
      
 119 
     | 
    
         
            +
             */
         
     | 
| 
      
 120 
     | 
    
         
            +
            struct ddog_TraceExporterError *ddog_trace_exporter_config_set_client_computed_stats(struct ddog_TraceExporterConfig *config,
         
     | 
| 
      
 121 
     | 
    
         
            +
                                                                                                 bool client_computed_stats);
         
     | 
| 
      
 122 
     | 
    
         
            +
             
     | 
| 
      
 123 
     | 
    
         
            +
            /**
         
     | 
| 
      
 124 
     | 
    
         
            +
             * Sets the `X-Datadog-Test-Session-Token` header. Only used for testing with the test agent.
         
     | 
| 
      
 125 
     | 
    
         
            +
             */
         
     | 
| 
      
 126 
     | 
    
         
            +
            struct ddog_TraceExporterError *ddog_trace_exporter_config_set_test_session_token(struct ddog_TraceExporterConfig *config,
         
     | 
| 
      
 127 
     | 
    
         
            +
                                                                                              ddog_CharSlice token);
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
      
 129 
     | 
    
         
            +
            /**
         
     | 
| 
      
 130 
     | 
    
         
            +
             * Enables or disables the rates payload version feature.
         
     | 
| 
      
 131 
     | 
    
         
            +
             * When enabled, the trace exporter checks the payload version in the agent's response.
         
     | 
| 
      
 132 
     | 
    
         
            +
             * If the version hasn't changed since the last payload, the exporter will return an empty
         
     | 
| 
      
 133 
     | 
    
         
            +
             * response.
         
     | 
| 
      
 134 
     | 
    
         
            +
             */
         
     | 
| 
      
 135 
     | 
    
         
            +
            struct ddog_TraceExporterError *ddog_trace_exporter_config_set_rates_payload_version(struct ddog_TraceExporterConfig *config,
         
     | 
| 
      
 136 
     | 
    
         
            +
                                                                                                 bool rates_payload_version);
         
     | 
| 
      
 137 
     | 
    
         
            +
             
     | 
| 
      
 138 
     | 
    
         
            +
            /**
         
     | 
| 
      
 139 
     | 
    
         
            +
             * Sets the timeout in ms for all agent's connections.
         
     | 
| 
      
 140 
     | 
    
         
            +
             */
         
     | 
| 
      
 141 
     | 
    
         
            +
            struct ddog_TraceExporterError *ddog_trace_exporter_config_set_connection_timeout(struct ddog_TraceExporterConfig *config,
         
     | 
| 
      
 142 
     | 
    
         
            +
                                                                                              uint64_t timeout_ms);
         
     | 
| 
      
 143 
     | 
    
         
            +
             
     | 
| 
       82 
144 
     | 
    
         
             
            /**
         
     | 
| 
       83 
145 
     | 
    
         
             
             * Create a new TraceExporter instance.
         
     | 
| 
       84 
146 
     | 
    
         
             
             *
         
     | 
| 
         @@ -109,12 +171,12 @@ void ddog_trace_exporter_free(struct ddog_TraceExporter *handle); 
     | 
|
| 
       109 
171 
     | 
    
         
             
             *   TraceExporter. The memory for the trace must be valid for the life of the call to this
         
     | 
| 
       110 
172 
     | 
    
         
             
             *   function.
         
     | 
| 
       111 
173 
     | 
    
         
             
             * * `trace_count` - The number of traces to send to the Datadog Agent.
         
     | 
| 
       112 
     | 
    
         
            -
             * * ` 
     | 
| 
      
 174 
     | 
    
         
            +
             * * `response_out` - Optional handle to store a pointer to the agent response information.
         
     | 
| 
       113 
175 
     | 
    
         
             
             */
         
     | 
| 
       114 
176 
     | 
    
         
             
            struct ddog_TraceExporterError *ddog_trace_exporter_send(const struct ddog_TraceExporter *handle,
         
     | 
| 
       115 
177 
     | 
    
         
             
                                                                     ddog_ByteSlice trace,
         
     | 
| 
       116 
178 
     | 
    
         
             
                                                                     uintptr_t trace_count,
         
     | 
| 
       117 
     | 
    
         
            -
                                                                     struct  
     | 
| 
      
 179 
     | 
    
         
            +
                                                                     struct ddog_TraceExporterResponse **response_out);
         
     | 
| 
       118 
180 
     | 
    
         | 
| 
       119 
181 
     | 
    
         
             
            #ifdef __cplusplus
         
     | 
| 
       120 
182 
     | 
    
         
             
            }  // extern "C"
         
     | 
| 
         @@ -24,16 +24,12 @@ void ddog_library_configurator_with_fleet_path(struct ddog_Configurator *c, 
     | 
|
| 
       24 
24 
     | 
    
         
             
            void ddog_library_configurator_with_process_info(struct ddog_Configurator *c,
         
     | 
| 
       25 
25 
     | 
    
         
             
                                                             struct ddog_ProcessInfo p);
         
     | 
| 
       26 
26 
     | 
    
         | 
| 
      
 27 
     | 
    
         
            +
            void ddog_library_configurator_with_detect_process_info(struct ddog_Configurator *c);
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
       27 
29 
     | 
    
         
             
            void ddog_library_configurator_drop(struct ddog_Configurator*);
         
     | 
| 
       28 
30 
     | 
    
         | 
| 
       29 
31 
     | 
    
         
             
            struct ddog_Result_VecLibraryConfig ddog_library_configurator_get(const struct ddog_Configurator *configurator);
         
     | 
| 
       30 
32 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
            /**
         
     | 
| 
       32 
     | 
    
         
            -
             * Returns a static null-terminated string, containing the name of the environment variable
         
     | 
| 
       33 
     | 
    
         
            -
             * associated with the library configuration
         
     | 
| 
       34 
     | 
    
         
            -
             */
         
     | 
| 
       35 
     | 
    
         
            -
            struct ddog_CStr ddog_library_config_name_to_env(enum ddog_LibraryConfigName name);
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
33 
     | 
    
         
             
            /**
         
     | 
| 
       38 
34 
     | 
    
         
             
             * Returns a static null-terminated string, containing the name of the environment variable
         
     | 
| 
       39 
35 
     | 
    
         
             
             * associated with the library configuration
         
     | 
| 
         @@ -54,6 +50,22 @@ struct ddog_CStr ddog_library_config_local_stable_config_path(void); 
     | 
|
| 
       54 
50 
     | 
    
         | 
| 
       55 
51 
     | 
    
         
             
            void ddog_library_config_drop(struct ddog_Vec_LibraryConfig);
         
     | 
| 
       56 
52 
     | 
    
         | 
| 
      
 53 
     | 
    
         
            +
            /**
         
     | 
| 
      
 54 
     | 
    
         
            +
             * Store tracer metadata to a file handle
         
     | 
| 
      
 55 
     | 
    
         
            +
             *
         
     | 
| 
      
 56 
     | 
    
         
            +
             * # Safety
         
     | 
| 
      
 57 
     | 
    
         
            +
             *
         
     | 
| 
      
 58 
     | 
    
         
            +
             * Accepts raw C-compatible strings
         
     | 
| 
      
 59 
     | 
    
         
            +
             */
         
     | 
| 
      
 60 
     | 
    
         
            +
            struct ddog_Result_TracerMemfdHandle ddog_store_tracer_metadata(uint8_t schema_version,
         
     | 
| 
      
 61 
     | 
    
         
            +
                                                                            ddog_CharSlice runtime_id,
         
     | 
| 
      
 62 
     | 
    
         
            +
                                                                            ddog_CharSlice tracer_language,
         
     | 
| 
      
 63 
     | 
    
         
            +
                                                                            ddog_CharSlice tracer_version,
         
     | 
| 
      
 64 
     | 
    
         
            +
                                                                            ddog_CharSlice hostname,
         
     | 
| 
      
 65 
     | 
    
         
            +
                                                                            ddog_CharSlice service_name,
         
     | 
| 
      
 66 
     | 
    
         
            +
                                                                            ddog_CharSlice service_env,
         
     | 
| 
      
 67 
     | 
    
         
            +
                                                                            ddog_CharSlice service_version);
         
     | 
| 
      
 68 
     | 
    
         
            +
             
     | 
| 
       57 
69 
     | 
    
         
             
            #ifdef __cplusplus
         
     | 
| 
       58 
70 
     | 
    
         
             
            }  // extern "C"
         
     | 
| 
       59 
71 
     | 
    
         
             
            #endif  // __cplusplus
         
     | 
| 
         @@ -0,0 +1,63 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            // Copyright 2025-Present Datadog, Inc. https://www.datadoghq.com/
         
     | 
| 
      
 2 
     | 
    
         
            +
            // SPDX-License-Identifier: Apache-2.0
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            #ifndef DDOG_LOG_H
         
     | 
| 
      
 6 
     | 
    
         
            +
            #define DDOG_LOG_H
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            #include <stdbool.h>
         
     | 
| 
      
 9 
     | 
    
         
            +
            #include <stddef.h>
         
     | 
| 
      
 10 
     | 
    
         
            +
            #include <stdint.h>
         
     | 
| 
      
 11 
     | 
    
         
            +
            #include <stdio.h>
         
     | 
| 
      
 12 
     | 
    
         
            +
            #include "common.h"
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            /**
         
     | 
| 
      
 15 
     | 
    
         
            +
             * Configures the logger to write to stdout or stderr with the specified configuration.
         
     | 
| 
      
 16 
     | 
    
         
            +
             *
         
     | 
| 
      
 17 
     | 
    
         
            +
             * # Arguments
         
     | 
| 
      
 18 
     | 
    
         
            +
             * * `config` - Configuration for standard stream logging including target
         
     | 
| 
      
 19 
     | 
    
         
            +
             *
         
     | 
| 
      
 20 
     | 
    
         
            +
             * # Errors
         
     | 
| 
      
 21 
     | 
    
         
            +
             * Returns an error if the logger cannot be configured.
         
     | 
| 
      
 22 
     | 
    
         
            +
             */
         
     | 
| 
      
 23 
     | 
    
         
            +
            struct ddog_Error *ddog_logger_configure_std(struct ddog_StdConfig config);
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            /**
         
     | 
| 
      
 26 
     | 
    
         
            +
             * Disables logging by configuring a no-op logger.
         
     | 
| 
      
 27 
     | 
    
         
            +
             *
         
     | 
| 
      
 28 
     | 
    
         
            +
             * # Errors
         
     | 
| 
      
 29 
     | 
    
         
            +
             * Returns an error if the logger cannot be configured.
         
     | 
| 
      
 30 
     | 
    
         
            +
             */
         
     | 
| 
      
 31 
     | 
    
         
            +
            struct ddog_Error *ddog_logger_disable_std(void);
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            /**
         
     | 
| 
      
 34 
     | 
    
         
            +
             * Configures the logger to write to a file with the specified configuration.
         
     | 
| 
      
 35 
     | 
    
         
            +
             *
         
     | 
| 
      
 36 
     | 
    
         
            +
             * # Arguments
         
     | 
| 
      
 37 
     | 
    
         
            +
             * * `config` - Configuration for file logging including path
         
     | 
| 
      
 38 
     | 
    
         
            +
             *
         
     | 
| 
      
 39 
     | 
    
         
            +
             * # Errors
         
     | 
| 
      
 40 
     | 
    
         
            +
             * Returns an error if the logger cannot be configured.
         
     | 
| 
      
 41 
     | 
    
         
            +
             */
         
     | 
| 
      
 42 
     | 
    
         
            +
            struct ddog_Error *ddog_logger_configure_file(struct ddog_FileConfig config);
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
            /**
         
     | 
| 
      
 45 
     | 
    
         
            +
             * Disables file logging by configuring a no-op file writer.
         
     | 
| 
      
 46 
     | 
    
         
            +
             *
         
     | 
| 
      
 47 
     | 
    
         
            +
             * # Errors
         
     | 
| 
      
 48 
     | 
    
         
            +
             * Returns an error if the logger cannot be configured.
         
     | 
| 
      
 49 
     | 
    
         
            +
             */
         
     | 
| 
      
 50 
     | 
    
         
            +
            struct ddog_Error *ddog_logger_disable_file(void);
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            /**
         
     | 
| 
      
 53 
     | 
    
         
            +
             * Sets the global log level.
         
     | 
| 
      
 54 
     | 
    
         
            +
             *
         
     | 
| 
      
 55 
     | 
    
         
            +
             * # Arguments
         
     | 
| 
      
 56 
     | 
    
         
            +
             * * `log_level` - The minimum level for events to be logged
         
     | 
| 
      
 57 
     | 
    
         
            +
             *
         
     | 
| 
      
 58 
     | 
    
         
            +
             * # Errors
         
     | 
| 
      
 59 
     | 
    
         
            +
             * Returns an error if the log level cannot be set.
         
     | 
| 
      
 60 
     | 
    
         
            +
             */
         
     | 
| 
      
 61 
     | 
    
         
            +
            struct ddog_Error *ddog_logger_set_log_level(enum ddog_LogEventLevel log_level);
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
            #endif  /* DDOG_LOG_H */
         
     |