.NET Open Standards
OpenTracing
Datadog also supports the OpenTracing standard. For more details and information, view the OpenTracing API.
Setup
For OpenTracing support, add the Datadog.Trace.OpenTracing
NuGet package to your application. During application start-up, initialize the OpenTracing SDK:
using Datadog.Trace.OpenTracing;
public void ConfigureServices(IServiceCollection services)
{
// Create an OpenTracing ITracer with the default setting
OpenTracing.ITracer tracer = OpenTracingTracerFactory.CreateTracer();
// Use the tracer with ASP.NET Core dependency injection
services.AddSingleton<ITracer>(tracer);
// Use the tracer with OpenTracing.GlobalTracer.Instance
GlobalTracer.Register(tracer);
}
Manually instrument a method
Use OpenTracing to create a span.
using (IScope scope = GlobalTracer.Instance.BuildSpan("manual.sortorders").StartActive(finishSpanOnDispose: true))
{
scope.Span.SetTag("resource.name", "<RESOURCE NAME>");
SortOrders();
}
Asynchronous traces
To trace code running in an asynchronous task, create a new scope within the background task, just as you would wrap synchronous code.
Task.Run(
() =>
{
using (IScope scope = GlobalTracer.Instance.BuildSpan("manual.sortorders").StartActive(finishSpanOnDispose: true))
{
scope.Span.SetTag("resource.name", "<RESOURCE NAME>");
SortOrders();
}
});