OpenTelemetry 추적

OpenTelemetry 추적

프록시가 OpenTelemetry(OTLP) 형식으로 추적을 보내도록 설정하는 방법을 알려드려요.

출처: Istio 문서

본문

이 작업은 프록시가 OpenTelemetry(OTLP) 형식으로 추적을 보내도록 설정하는 방법을 보여줘요.

시작하기 전에

업스트림 설정

  1. 메시 안에 opentelemetry를 설치해요.
  2. OTel collector가 OTLP 형식으로 데이터를 받도록 설정되어 있고, metrics/config 맵이 올바르게 설정되어 있는지 확인해요.
$ helm install --namespace istio-system --create-namespace istio-base istio/base --set global.meshID=mesh1
$ helm install --namespace istio-system istiod istio/istiod --set global.meshID=mesh1 --set meshConfig.enableTracing=true --set meshConfig.extensionProviders.otel.address=otel-collector.istio-system:4317

istioctl을 통해서는:

$ istioctl install --set meshConfig.enableTracing=true --set meshConfig.extensionProviders.otel.address=otel-collector.istio-system:4317

추적이 흐르는지 검증

추적 요청이 otel-collector 서비스에 도달할 수 있는지 확인해요. opentelemetry-collector pod의 로그를 확인해서 검증해요. 만약 MZ9 텔레메트리를 받으면 테스트가 성공한 거예요.

$ kubectl logs -f opentelemetry-collector

추적을 테스트할 트래픽 생성

이제 최소한의 추적 테스트 환경을 배포해요:

$ kubectl apply -f @samples/otel-simple-tracing.yaml@

OpenTelemetry UI에서 추적 결과 보기

OpenTelemetry UI를 열어요:

$ kubectl port-forward svc/tracing -n istio-system 4318:4318

추적 데이터가 수집되고 있는지(스팬이 동기화되었는지) 확인하려면 몇 초 기다려요:

$ kubectl -n istio-system logs deploy/opentelemetry-collector --tail 20

정리

port-forward를 중지해요:

$ pkill -f "port-forward.*4318"

테스트 서비스를 제거해요:

$ kubectl delete -f @samples/otel-simple-tracing.yaml@

bookinfo 서비스는 samples에서 별도로 만들어졌기 때문에 중복을 피하려고 제거하지 않아요.

함께 보기

더 알아보기 (Learn more)