Skip to content

hbidak/dd-trace-csharp

 
 

Repository files navigation

dd-trace-csharp

Datadog .NET APM is currently in Alpha and is not recommended for use in production.

Please check our documentation for more details.

What is Datadog APM?

Datadog APM traces the path of each request through your application stack, recording the latency of each step along the way. It sends all tracing data to Datadog, where you can easily identify which services or calls are slowing down your application the most.

This repository contains what you need to trace .NET applications. Some quick notes up front:

  • Supports .NET Framework 4.5 or newer
  • Supports .NET Core 2.0 or newer
  • Multiple AppDomains are not supported

Build Status

OS Features Status
Windows manual instrumentation (NuGet), automatic instrumentation (MSI) Build status
Linux manual instrumentation (NuGet) Build status

The Components

Datadog Tracer: an OpenTracing-compatible .NET library that lets you trace any piece of your .NET code.

Datadog APM Agent: a service that runs on your application servers, accepting trace data from the Datadog Tracer and sending it to Datadog. (The APM Agent is not part of this repo; it's the same Agent to which all Datadog tracers—Go, Python, etc—send data)

Getting Started

Before instrumenting your code, install the Datadog APM Agent on your application servers (or locally, if you're just trying out .NET APM).

Development

Dependencies

Windows

In order to build and run all the projects and tests included in this repo you need to have Visual Studio 2017 and the .NET Core 2.0 SDK or newer installed on your machine.

Some tests require you to have Docker for Windows on your machine or to manually install the required dependencies.

Linux

Make sure you have installed:

Because some projects target the desktop framework and of this bug, you'll need this workaround to make the build work.

Setup

This project makes use of git submodules. This means that in order to start developing on this project, you should either clone this repository with the --recurse-submodules option or run the following commands in the cloned 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:

./build.ps1

Or on Unix systems:

./build.sh

Further Reading

Get in touch

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

Packages

No packages published

Languages

  • C++ 71.7%
  • C# 26.8%
  • Other 1.5%