* remove use of RuntimeInformation in NativeMethods and ContainerInfo * add new FrameworkDescription class * use new FrameworkDescription class from Api class to set http headers * clean up xml-doc comments * add "OS" to Resharper's spell-check abbreviations * change Resharper's editor style: don't _always_ chop a ternary expression into multiple lines * revert change to nuget package reference * refactor code into GetVersionFromAssemblyAttributes() * make nuget reference private and add comment * remove unnecessary call to GetTypeInfo() * coalesce more null values to "unknown" * add comment * move the "try/catch" inside the "if" instead of the other way around * remove try/catch, update comment * update log messages * simplify ToString() |
||
|---|---|---|
| .azure-pipelines | ||
| .github | ||
| deploy/Datadog.Trace.ClrProfiler.WindowsInstaller | ||
| docker | ||
| docs | ||
| lib/coreclr/src | ||
| reproduction-dependencies | ||
| reproductions | ||
| sample-libs | ||
| samples | ||
| samples-aspnet | ||
| src | ||
| test | ||
| tools | ||
| .clang-format | ||
| .dockerignore | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| Datadog.Trace.Native.sln | ||
| Datadog.Trace.proj | ||
| Datadog.Trace.sln | ||
| Datadog.Trace.sln.DotSettings | ||
| Datadog.Trace.snk | ||
| Directory.Build.props | ||
| GlobalSuppressions.cs | ||
| LICENSE | ||
| LICENSE-3rdparty.csv | ||
| NOTICE | ||
| PackageVersions.g.props | ||
| PackageVersionsGeneratorDefinitions.json | ||
| Test.Common.props | ||
| datadog-logo-64x64.png | ||
| devenv.bat | ||
| docker-compose.yml | ||
| git-clean.cmd | ||
| integrations.json | ||
| pre-build-events-cpp.bat | ||
| stylecop.json | ||
docs/README.md
.NET Tracer for Datadog APM
Installation and Usage
Please read our documentation for instructions on setting up .NET tracing and details about supported frameworks.
Downloads
| Package | Download |
|---|---|
| Windows and Linux Installers | See releases |
Datadog.Trace |
|
Datadog.Trace.OpenTracing |
|
Datadog.Trace.ClrProfiler.Managed |
Build Status
| Pipeline | Build Status |
|---|---|
| Unit tests | |
| Integration tests |
Development
Components
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.
Windows
Minimum requirements
- Visual Studio 2019 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 Core 2.1 SDK
- Optional: nuget.exe CLI v3.4.4 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 Visual Studio Extension to build installer from Visual Studio
- Requires .NET Framework 3.5 SP2 (install from Windows Features control panel:
- 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.
Building from a command line
From a Developer Command Prompt for VS 2017:
rem Restore NuGet packages
rem nuget.exe is required for command line restore because msbuild doesn't support packages.config
rem (see https://github.com/NuGet/Home/issues/7386)
nuget restore Datadog.Trace.sln
rem Build C# projects (Platform: always AnyCPU)
msbuild Datadog.Trace.proj /t:BuildCsharp /p:Configuration=Release
rem Build NuGet packages
dotnet pack src\Datadog.Trace\Datadog.Trace.csproj
dotnet pack src\Datadog.Trace.OpenTracing\Datadog.Trace.OpenTracing.csproj
dotnet pack src\Datadog.Trace.ClrProfiler.Managed\Datadog.Trace.ClrProfiler.Managed.csproj
rem Build C++ projects (Platform: x64 or x86)
rem The native profiler depends on the Datadog.Trace.ClrProfiler.Managed.Loader C# project so be sure that is built first
msbuild Datadog.Trace.proj /t:BuildCpp /p:Configuration=Release;Platform=x64
rem Build MSI installer (Platform: x64 or x86)
msbuild Datadog.Trace.proj /t:msi /p:Configuration=Release;Platform=x64
Linux
Minimum requirements
To build C# projects and NuGet packages only
To build everything and run integration tests
Building and running tests with Docker Compose
You can use Docker Compose with Linux containers to build Linux binaries and run the test suites. This works on both Linux and Windows hosts.
# build C# projects
docker-compose run build
# build C++ project
docker-compose run Profiler
# run integration tests
docker-compose run IntegrationTests
Further Reading
Datadog APM
Microsoft .NET Profiling APIs
OpenTracing
Get in touch
If you have questions, feedback, or feature requests, reach our support.