Jaeger

Jaeger

프록시가 추적 요청을 Jaeger로 보내도록 설정하는 방법을 알려드려요.

출처: Istio 문서

본문

이 작업은 프록시가 추적 요청을 Jaeger로 보내도록 설정하는 방법을 보여줘요.

시작하기 전에

업스트림 설정

  1. 메시 안에 jaeger를 설치해요.
  2. (선택) 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로 추적을 보내도록 설정 (선택)

Jaeger/Trace 버전 1.24.0부터... Jaeger lib용 추적 설정을 확인하세요. Jaeger extensions을 설정하세요...

더 알아보기 (Learn more)