Jaeger
Jaeger
프록시가 추적 요청을 Jaeger로 보내도록 설정하는 방법을 알려드려요.
출처: Istio 문서
본문
이 작업은 프록시가 추적 요청을 Jaeger로 보내도록 설정하는 방법을 보여줘요.
시작하기 전에
업스트림 설정
- 메시 안에
jaeger를 설치해요. - (선택)
jaeger가 OTLP 입력을 받도록 설정해요. 기본적으로 Jaeger는 Zipkin v2 형식으로 추적을 받아요. 이를 변경하려면 터미널에서 다음 명령을 사용해요:
$ jaegertracing/jaeger --collector.otlp.enabled=true
추적이 흐르는지 검증
추적 요청이 jaeger 서비스에 도달할 수 있는지 확인해요:
$ kubectl exec -it $(kubectl get pod -l app=istio-ingressgateway -n istio-system -o jsonpath={.items[0].metadata.name}) -c istio-proxy -n istio-system -- curl -s -o /dev/null -w "%{http_code}" http://jaeger.istio-system:16686/api/traces
추적을 테스트할 트래픽 생성
이제 최소한의 추적 테스트 환경을 배포해요:
$ kubectl apply -f @samples/jaeger-simple-tracing.yaml@
메시 안에서 몇 개의 요청을 생성해요:
$ curl -v http://bookinfo.istio-system:8010/productpage
추적 데이터가 수집되고 있는지(스팬이 동기화되었는지) 확인하려면 몇 초 기다려요:
$ kubectl -n istio-system logs deploy/jaeger --tail 20
Jaeger에서 추적 결과 보기
Jaeger UI를 열어요:
$ kubectl port-forward svc/tracing -n istio-system 16686:16686 &
브라우저에서 http://localhost:16686/ 을 열어요.
아래 스크린샷은 몇 번의 요청 후의 Jaeger UI와 데모 서비스에 대한 추적을 보여줘요.
정리
jaeger를 서빙하는 port-forward를 중지해요:
$ pkill -f "port-forward.*16686"
테스트 서비스를 제거해요:
$ kubectl delete -f @samples/jaeger-simple-tracing.yaml@
bookinfo 서비스는 samples에서 별도로 만들어졌기 때문에 중복을 피하려고 제거하지 않아요.
함께 보기
- 분산 추적의 개요(리소스 포함)
- Jaeger lib용 추적 설정
- 분산 추적 개요를 검토해 보세요
추적이 성공적으로 흐르는지 검증
프록시가 Jaeger로 추적을 보내도록 설정 (선택)
Jaeger/Trace 버전 1.24.0부터... Jaeger lib용 추적 설정을 확인하세요. Jaeger extensions을 설정하세요...