.NET Tracer for Datadog APM
lucaspimentel readme file: replace CircleCI badge with Azure for Linux builds (#210)
* replace CircleCI badge for Linux

replace CircleCI badge for Linux integration tests with Azure Pipelines

* change links from datadog-apm.visualstudio.com to the new dev.azure.com/datadog-apm

* add download links

* move Installation and Usage to the top

* show build status of `develop` branch, not the latest build of any branch

* link the the build history instead of the latest build's results
Latest commit 0e236c0 Nov 16, 2018
Failed to load latest commit information.
.circleci linux support (#171) Oct 23, 2018
.github/ISSUE_TEMPLATE Update issue templates (#129) Sep 15, 2018
benchmarks fix code style issues found by StyleCop May 8, 2018
ci StackExchange.Redis integration (#130) Sep 17, 2018
deploy/Datadog.Trace.ClrProfiler.WindowsInstaller fix Web API 2 integration when built-in tracing is enabled (#178) Oct 26, 2018
docker version bump 0.5.0 (#181) Oct 29, 2018
lib/coreclr/src add CoreCLR headers to repo (#131) Sep 18, 2018
samples Fix Elasticsearch integration (#211) Nov 15, 2018
scripts version bump 0.5.0 (#181) Oct 29, 2018
src fix whitespace (add missing spaces and remove redundant ones) in C++ … Nov 16, 2018
test Fix Elasticsearch integration (#211) Nov 15, 2018
.clang-format reformat, use c++ 17, add tests Aug 20, 2018
.dockerignore linux support (#171) Oct 23, 2018
.editorconfig remove UTF-8 BOM setting from EditorConfig settings May 9, 2018
.gitattributes keep linux (lf) line endings in bash scripts (#183) Oct 29, 2018
.gitignore linux support (#171) Oct 23, 2018
CONTRIBUTING.md [docs] add CONTRIBUTING.md (#58) Aug 8, 2018
Datadog.Trace.proj Fix CI build process (#77) Aug 24, 2018
Datadog.Trace.sln add mvc4 integration (#167) Oct 10, 2018
Datadog.Trace.snk Initial Profiler API implementation (#47) Jun 18, 2018
Directory.Build.props Sign all assemblies with a strong name (#55) Aug 7, 2018
GlobalSuppressions.cs integration test refactor, support SqlClient on .NET Core (#113) Sep 11, 2018
LICENSE change LICENSE to Apache 2 + NOTICE (#128) Sep 14, 2018
LICENSE-3rdparty.csv add Sigil to license csv file (#187) Nov 1, 2018
NOTICE change LICENSE to Apache 2 + NOTICE (#128) Sep 14, 2018
README.md readme file: replace CircleCI badge with Azure for Linux builds (#210) Nov 16, 2018
build.cake fix Cake path to test projects May 9, 2018
build.ps1 Add Cake build (#35) Jan 25, 2018
build.sh Add Cake build (#35) Jan 25, 2018
datadog-logo-64x64.png add datadog icon to nuget packages (#127) Sep 14, 2018
devenv.bat Elasticsearch integration (#163) Oct 9, 2018
docker-compose.yml linux support (#171) Oct 23, 2018
integrations.json version bump 0.5.0 (#181) Oct 29, 2018
stylecop.json do not suppress xml documentation warnings in `src/` (but add a few t… May 9, 2018
test-integrations.json cleanup CorProfiler (#94) Sep 5, 2018


.NET Tracer for Datadog APM

NOTE: The .NET Tracer is currently in Public Beta.

Installation and Usage

Please read our documentation for instructions on setting up .NET tracing and details about supported frameworks.


Package Download
Windows and Linux Installers Releases page
Datadog.Trace Datadog.Trace
Datadog.Trace.OpenTracing Datadog.Trace.OpenTracing
Datadog.Trace.ClrProfiler.Managed Datadog.Trace.ClrProfiler.Managed

Build Status

OS Tests Status
Windows C# unit tests Build Status
Windows C++ unit tests Build Status
Windows integration tests Build Status
Linux C# unit tests Build Status
Linux integration tests Build Status


The Components

Datadog Trace Agent: A service that runs on your application servers, accepting trace data from the Datadog Tracer and sending it to Datadog. The Trace Agent is not part of this repo; it's the same Trace 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.


Minimum requirements to build the code in this repository:

  • Visual Studio 2017 v15.7 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
  • .NET Core 2.0 SDK or newer
  • Optional: WiX Toolset 3.11.1 or newer to build Windows installer (msi)
    • Requires .NET Framework 3.5 SP2 (install from Windows Features control panel: OptionalFeatures.exe)
    • WiX Toolset VS2017 Extension to build installer from VS2017
  • Optional: Docker for Windows to run some integration tests
    • Requires Windows 10 (1607 Anniversary Update, Build 14393 or newer)

Microsoft provides evaluation developer VMs with Windows 10 with Visual Studio 2017 pre-installed.


Only manual instrumentation is supported on Linux at this time. Projects Datadog.Trace, Datadog.Trace.OpenTracing, and their respective test projects can be built on Linux when targeting .NET Core.


Due to this issue in the .NET Core SDK, to build projects that target the .NET Framework and of , you'll need this workaround.

CoreCLR submodule

This project makes use of git submodules to include required CoreCLR C++ headers. To build the C++ project, clone this repository with the --recurse-submodules option or run the following commands after cloning this repository:

git submodule init
git submodule update

Running tests

The tests require the dependencies specified in docker-compose.yaml to be running on the same machine. For this you need to have docker installed on your machine, and to start the dependencies with ./build.sh --target=dockerup.

To build and run the tests on Windows:


Or on Unix systems:


Further Reading

Datadog APM

Microsoft .NET Profiling APIs


Get in touch

If you have questions, feedback, or feature requests, reach our support.