libdatadog 13.1.0

dotnet add package libdatadog --version 13.1.0                
NuGet\Install-Package libdatadog -Version 13.1.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="libdatadog" Version="13.1.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add libdatadog --version 13.1.0                
#r "nuget: libdatadog, 13.1.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install libdatadog as a Cake Addin
#addin nuget:?package=libdatadog&version=13.1.0

// Install libdatadog as a Cake Tool
#tool nuget:?package=libdatadog&version=13.1.0                

libdatadog

libdatadog provides a shared library containing common code used in the implementation of Datadog's libraries, including Continuous Profilers.

(In a past life, libdatadog was known as libddprof but it was renamed when we decided to increase its scope).

NOTE: If you're building a new Datadog library/profiler or want to contribute to Datadog's existing tools, you've come to the right place! Otherwise, this is possibly not the droid you were looking for.

Development

Contributing

See CONTRIBUTING.md.

Building

Build libdatadog as usual with cargo build.

Builder crate

To generate a release with the builder crate use cargo build -p builder this will trigger all the necessary steps to create the libraries, binaries, headers and package config files needed to use libdatadog in your project. The default build does not include any capability so in order to add them here is the list of allowed features:

  • profiling: includes the profiling ffi calls and headers to the package.
  • telemetry: adds the telemetry symbols and headers to the package.
  • data-pipeline: includes the data pipeline ffi calls to the library and headers to the package.
  • crashtracker: adds crashtracking capabilities to the package.
  • symbolizer: adds symbolizer capabilities to the package.

In order to set an output directory there's the LIBDD_OUTPUT_FOLDER environment varibale. Here's an example to create a package with all the features and save the relese on /opt/release folder:

LIBDD_OUTPUT_FOLDER=/opt/release cargo build -p builder --features profiling,telemetry,data-pipeline,crashtracker,symbolizer
Build scripts

This is the non-prefered way of building a release, it's use is discouraged and it will be soon deprecated in favour of using the builder crate.

To package a release with the generated ffi header and CMake module, use the build-profiling-ffi.sh / build-telemetry-ffi.sh helper scripts. Here's an example of using on of these scripts, placing the output inside /opt/libdatadog:

bash build-profiling-ffi.sh /opt/libdatadog
Build Dependencies
  • Rust 1.76.0 or newer with cargo
  • cbindgen 0.26
  • cmake and protoc

Running tests

This project uses cargo-nextest to run tests.

cargo nextest run
Installing cargo-nextest

The simplest way to install cargo-nextest is to use cargo install like this.

cargo install --locked 'cargo-nextest@0.9.67'
Skipping tracing integration tests

Tracing integration tests require docker to be installed and running. If you don't have docker installed or you want to skip these tests, you can run:

cargo nextest run -E '!test(tracing_integration_tests::)'

Please note that the locked version is to make sure that it can be built using rust 1.76.0, and if you are using a newer rust version, then it's enough to limit the version to 0.9.*.

Product Compatible and additional computed target framework versions.
native native is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on libdatadog:

Repository Stars
DataDog/dd-trace-dotnet
.NET Client Library for Datadog APM
Version Downloads Last updated
13.1.0 7,327 10/3/2024
13.0.0 2,193 9/13/2024
12.0.0 399 8/5/2024
10.0.0 15,540 6/5/2024
9.0.0 4,853 5/3/2024
8.0.0 6,876 4/10/2024
7.0.0 1,237 3/21/2024
6.0.0 588 2/12/2024
5.0.0 18,916 10/6/2023
4.0.0 1,006 8/31/2023
3.0.0 17,412 7/4/2023
2.2.0 8,659 5/5/2023
2.1.0 5,630 3/31/2023
2.0.0 6,237 2/27/2023
1.0.1 14,472 12/13/2022
1.0.0 1,923 12/5/2022
0.9.0 11,780 10/6/2022
0.8.0 10,824 8/23/2022
0.8.0-rc1 879 8/22/2022
0.7.0 16,097 7/12/2022

Release of libdatadog