OpenTelemetry & jaeger with WSL2 docker
2022. 11. 30. 14:35ㆍASPNET/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
관련영상
반응형