OpenTelemetry 추적
OpenTelemetry 추적
프록시가 OpenTelemetry(OTLP) 형식으로 추적을 보내도록 설정하는 방법을 알려드려요.
출처: Istio 문서
본문
이 작업은 프록시가 OpenTelemetry(OTLP) 형식으로 추적을 보내도록 설정하는 방법을 보여줘요.
시작하기 전에
업스트림 설정
- 메시 안에
opentelemetry를 설치해요. - 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에서 별도로 만들어졌기 때문에 중복을 피하려고 제거하지 않아요.
함께 보기
- 분산 추적의 개요(리소스 포함)
- opentelemetry lib용 추적 설정