OpenTelemetry .NET Automatic Instrumentation
Go to file
Colin Higgins 8e7cb504c0
Consistent Logs for Method Retrieval (#498)
* Log all potentially relevant data in consistent format for method retrieval
2019-09-25 11:31:55 -04:00
.azure-pipelines Load Datadog.Trace.ClrProfiler.Managed via the AppDomain.AssemblyResolve event (#505) 2019-09-18 08:10:16 -07:00
.github update build status badges and other repo docs (#375) 2019-06-06 11:36:30 -04:00
deploy/Datadog.Trace.ClrProfiler.WindowsInstaller Load CLR profiler assembly per AppDomain (#510) 2019-09-24 10:50:03 -07:00
docker Load Datadog.Trace.ClrProfiler.Managed via the AppDomain.AssemblyResolve event (#505) 2019-09-18 08:10:16 -07:00
docs update CI badges to point at master branch (#497) 2019-08-30 10:02:17 -04:00
lib/coreclr/src add CoreCLR headers to repo (#131) 2018-09-18 15:28:22 -04:00
reproduction-dependencies Load CLR profiler assembly per AppDomain (#510) 2019-09-24 10:50:03 -07:00
reproductions Load CLR profiler assembly per AppDomain (#510) 2019-09-24 10:50:03 -07:00
sample-libs Type check enablement (#383) 2019-06-10 10:44:10 -04:00
samples Load CLR profiler assembly per AppDomain (#510) 2019-09-24 10:50:03 -07:00
samples-aspnet fix default json config file path on ASP.NET (#463) 2019-08-13 15:28:48 -04:00
src Consistent Logs for Method Retrieval (#498) 2019-09-25 11:31:55 -04:00
test Consistent Logs for Method Retrieval (#498) 2019-09-25 11:31:55 -04:00
tools Version bump to 1.7.0 (#503) 2019-09-03 16:41:44 -07:00
.clang-format reformat, use c++ 17, add tests 2018-08-20 08:03:42 -04:00
.dockerignore Disable optimizations to avoid AutoMapper error caused by runtime bug (#363) 2019-05-30 19:20:31 -04:00
.editorconfig remove UTF-8 BOM setting from EditorConfig settings 2018-05-09 13:52:16 -04:00
.gitattributes keep linux (lf) line endings in bash scripts (#183) 2018-10-29 16:52:33 -04:00
.gitignore CI Improvement: Build and test sample apps with ranges of package versions (#366) 2019-06-04 14:20:16 -07:00
Datadog.Trace.Native.sln [Windows] Eager assembly load of managed profiler code (#462) 2019-08-12 15:30:05 -07:00
Datadog.Trace.proj Load Datadog.Trace.ClrProfiler.Managed via the AppDomain.AssemblyResolve event (#505) 2019-09-18 08:10:16 -07:00
Datadog.Trace.sln Load CLR profiler assembly per AppDomain (#510) 2019-09-24 10:50:03 -07:00
Datadog.Trace.sln.DotSettings MongoDB type array (#396) 2019-06-12 14:53:33 -04:00
Datadog.Trace.snk Initial Profiler API implementation (#47) 2018-06-18 17:01:11 -04:00
Directory.Build.props Sign all assemblies with a strong name (#55) 2018-08-07 10:06:33 -04:00
GlobalSuppressions.cs Colin/apply safe version ranges (#341) 2019-05-14 16:30:30 -04:00
LICENSE recreate LICENSE file 2019-05-20 14:01:52 -04:00
LICENSE-3rdparty.csv add miniutf to 3rd party license file (#296) 2019-03-28 09:00:36 -04:00
NOTICE License / Documentation cleanup (#357) 2019-05-20 09:10:12 -07:00
PackageVersions.g.props update available nuget package versions (#487) 2019-08-30 14:28:13 -04:00
PackageVersionsGeneratorDefinitions.json Change MaxVersion to MaxVersionInclusive in the NuGetPackageHelper tool (#392) 2019-06-12 12:18:41 -07:00
Test.Common.props Load Datadog.Trace.ClrProfiler.Managed via the AppDomain.AssemblyResolve event (#505) 2019-09-18 08:10:16 -07:00
datadog-logo-64x64.png add datadog icon to nuget packages (#127) 2018-09-14 09:22:58 -04:00
devenv.bat exclude msvsmon.exe from clr profiler 2019-07-11 18:07:23 -04:00
docker-compose.yml Convert AdoNet to MethodBuilder (#489) 2019-08-27 13:51:42 -04:00
git-clean.cmd Integrations: access properties and fields (#235) 2019-01-14 17:28:11 -05:00
integrations.json Version bump to 1.7.0 (#503) 2019-09-03 16:41:44 -07:00
pre-build-events-cpp.bat CI does not use consistent paths for $(SolutionDir) (#332) 2019-04-26 09:49:51 -04:00
stylecop.json do not suppress xml documentation warnings in `src/` (but add a few temporary exclusions) 2018-05-09 14:56:43 -04:00

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
Datadog.Trace.OpenTracing Datadog.Trace.OpenTracing
Datadog.Trace.ClrProfiler.Managed Datadog.Trace.ClrProfiler.Managed

Build Status

Pipeline Build Status
Unit tests Build Status
Integration tests Build Status

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
  • .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
  • 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;Platform=AnyCPU

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)
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.