Please read our documentation for instructions on setting up .NET tracing and details about supported frameworks.
Package | Download |
---|---|
Windows and Linux Installers | See releases |
Datadog.Trace |
|
Datadog.Trace.OpenTracing |
Pipeline Stage | Windows | Linux |
---|---|---|
Build | ||
Unit Tests | ||
Integration Tests |
Datadog Agent: A service that runs on your application servers, accepting trace data from the Datadog Tracer and sending it to Datadog. The Agent is not part of this repo; it's the same Agent to which all Datadog tracers (e.g. Go, Python, Java, Ruby) send data.
Datadog .NET Tracer: This repository. A set of .NET libraries that let you trace any piece of your .NET code. Supports manual instrumentation and can automatically instrument supported libraries out-of-the-box.
- Visual Studio 2019 (16.8) or newer
- Workloads
- Desktop development with C++
- .NET desktop development
- .NET Core cross-platform development
- Optional: ASP.NET and web development (to build samples)
- Individual components
- .NET Framework 4.7 targeting pack
- Workloads
- .NET 5.0 SDK
- .NET 5.0 x86 SDK to run 32-bit tests locally
- Optional: ASP.NET Core 2.1 Runtime to test in .NET Core 2.1 locally.
- Optional: ASP.NET Core 3.0 Runtime to test in .NET Core 3.0 locally.
- Optional: ASP.NET Core 3.1 Runtime to test in .NET Core 3.1 locally.
- Optional: nuget.exe CLI v5.3 or newer
- Optional: WiX Toolset 3.11.1 or newer to build Windows installer (msi)
- WiX Toolset Visual Studio Extension to build installer from Visual Studio
- Optional: Docker for Windows to build Linux binaries and run integration tests on Linux containers. See section on Docker Compose.
- Requires Windows 10 (1607 Anniversary Update, Build 14393 or newer)
Microsoft provides evaluation developer VMs with Windows 10 and Visual Studio pre-installed.
This repository uses Nuke for build automation. To see a list of possible targets run:
.\build.cmd --help
For example:
# Clean and build the main tracer project
.\build.cmd Clean BuildTracerHome
# Build and run managed and native unit tests. Requires BuildTracerHome to have previously been run
.\build.cmd BuildAndRunManagedUnitTests BuildAndRunNativeUnitTests
# Build NuGet packages and MSIs. Requires BuildTracerHome to have previously been run
.\build.cmd PackageTracerHome
# Build and run integration tests. Requires BuildTracerHome to have previously been run
.\build.cmd BuildAndRunWindowsIntegrationTests
The recommended approach for Linux is to build using Docker. You can use this approach for both Windows and Linux hosts. The build_in_docker.sh script automates building a Docker image with the required dependencies, and running the specified Nuke targets. For example:
# Clean and build the main tracer project
./build_in_docker.sh Clean BuildTracerHome
# Build and run managed unit tests. Requires BuildTracerHome to have previously been run
./build_in_docker.sh BuildAndRunManagedUnitTests
# Build and run integration tests. Requires BuildTracerHome to have previously been run
./build_in_docker.sh BuildAndRunLinuxIntegrationTests
Datadog APM
- Datadog APM
- Datadog APM - Tracing .NET Core and .NET 5 Applications
- Datadog APM - Tracing .NET Framework Applications
Microsoft .NET Profiling APIs
OpenTracing
If you have questions, feedback, or feature requests, reach our support.