OpenTelemetry & jaeger with WSL2 docker

2022. 11. 30. 14:35ASPNET/Monitoring

반응형

jaeger all in one docker image 받기

docker pull jaegertracing/all-in-one:1.39

 

docker image 실행

docker run -d --name jaeger \
  -e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \
  -e COLLECTOR_OTLP_ENABLED=true \
  -p 6831:6831/udp \
  -p 6832:6832/udp \
  -p 5778:5778 \
  -p 16686:16686 \
  -p 4317:4317 \
  -p 4318:4318 \
  -p 14250:14250 \
  -p 14268:14268 \
  -p 14269:14269 \
  -p 9411:9411 \
  jaegertracing/all-in-one:1.39

OpenTelemetry 관련 package 설치

현재 OpenTelemetry 관련 .net package 들은 dotnet 7.0 과 통합을 하려는 과정에 있다.

그래서 아직 정식 버전이 나오지 못하고 있다. 그래서 여기서는 prelease 를 사용한다. 

이 내용을 읽는 분들의 시점에서는 정식 버전을 이용할 수 있을지도 모른다. 

dotnet add package OpenTelemetry.Exporter.OpenTelemetryProtocol --prelease
dotnet add package OpenTelemetry.Extensions.Hosting --prerelease
dotnet add package OpenTelemetry.Instrumentation.AspNetCore --prerelease

OTLP 를 이용해서 jaeger 와 실시간으로 연결

builder.Services.AddOpenTelemetryTracing(configure=>
{
    configure.SetResourceBuilder(
        ResourceBuilder.CreateDefault().AddService(builder.Environment.ApplicationName))
    .AddAspNetCoreInstrumentation()
    .AddOtlpExporter(opts =>  opts.Endpoint = new Uri("http://localhost:4317"));
});

uri 는 위에서 설치한 jaegar 의 OLTP 이다. (grpc 로 통신)

 

localhost:16686 으로 접속하여 내용을 확인할 수 있다.

 

windows 를 통해 jaeger 를 설치 했다면 OTLP 를 활성화 하기 위해 다음을 해야 한다.
jaeger-all-in-one --collector.otlp.enabled=true

 

 

관련영상

 

반응형