.NET OpenTracing 계측
{% alert level="info" %} OpenTracing 지원은 더 이상 사용되지 않는(deprecated) 사양을 기반으로 해요. 오픈 스펙으로 코드를 계측하려면 OpenTelemetry를 사용하세요. Datadog SDK에서 OpenTelemetry 계측 데이터를 처리하는 방법을 시도해 보세요. {% /alert %}
자세한 내용과 정보는 OpenTracing API를 확인하세요.
출처: 문서
본문
설정
{% alert level="danger" %} 참고: v3.0.0부터 OpenTracing 지원을 사용하려면 자동 계측(automatic instrumentation)도 함께 사용해야 해요. 자동 계측과 커스텀 계측 패키지 버전(예: MSI와 NuGet)을 동기화된 상태로 유지하고, 패키지의 메이저 버전을 섞지 않도록 주의하세요. {% /alert %}
OpenTracing 지원을 사용하려면 Datadog.Trace.OpenTracing NuGet 패키지를 애플리케이션에 추가하세요. 애플리케이션 시작 중에 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);
}
메서드 수동 계측
OpenTracing으로 span을 생성하세요.
using (IScope scope = GlobalTracer.Instance.BuildSpan("manual.sortorders").StartActive(finishSpanOnDispose: true))
{
scope.Span.SetTag("resource.name", "<RESOURCE NAME>");
SortOrders();
}
비동기 트레이스
비동기 작업에서 실행되는 코드를 트레이스하려면 동기 코드를 감싸는 것처럼 백그라운드 작업 안에서 새 scope를 만드세요.
Task.Run(
() =>
{
using (IScope scope = GlobalTracer.Instance.BuildSpan("manual.sortorders").StartActive(finishSpanOnDispose: true))
{
scope.Span.SetTag("resource.name", "<RESOURCE NAME>");
SortOrders();
}
});
더 알아보기 (Learn more)
추가로 도움이 되는 문서, 링크, 아티클: