.NET OpenTracing Instrumentation
Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel,
n'hésitez pas à nous contacter.
For more details and information, view the OpenTracing API.
Setup
Note: Starting with v3.0.0, OpenTracing support requires you also use automatic instrumentation. You should aim to keep both automatic and custom instrumentation package versions (for example: MSI and NuGet) in sync, and ensure you don't mix major versions of packages.
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();
}
});
Further reading
Documentation, liens et articles supplémentaires utiles: