이 강의에서는 Opentelemetry와 Tempo가 적용된 마이크로서비스에서 분산 추적이 실제로 어떻게 작동하는지 확인해보겠습니다. 다음 단계에 따라 진행해 보겠습니다.
먼저, docker-compose
명령어를 사용하여 prod 프로파일의 모든 컨테이너를 시작합니다. 이 전에 Opentelemetry 관련 변경 사항을 반영한 최신 도커 이미지를 생성했는지 확인해야 합니다.
docker-compose up -d
컨테이너를 시작한 후, 일부 마이크로서비스(예: accounts, loans, cards)가 오류를 발생시킬 수 있습니다. 이 문제는 Opentelemetry Java 에이전트 로딩으로 인해 컨테이너 초기화가 지연되면서 발생할 수 있습니다.
docker-compose.yml
파일에서 health check 재시도 간격을 늘려 초기화 지연 문제를 해결할 수 있습니다.healthcheck:
test: curl -f http://localhost:8080/actuator/health || exit 1
interval: 20s
retries: 20
변경 사항을 적용한 후, 기존의 컨테이너를 삭제하고 다시 시작합니다.
docker-compose down
docker-compose up -d
docker ps
Postman을 사용하여 몇 가지 API를 테스트합니다.
accounts 마이크로서비스의 계정 생성 API 호출
201
응답과 함께 "Account created successfully" 메시지를 확인합니다.cards 마이크로서비스의 카드 생성 API 호출
loans 마이크로서비스의 대출 생성 API 호출
fetchCustomerDetails API 호출
이제 Grafana 대시보드에서 분산 추적 정보를 확인할 수 있습니다. Grafana에 접속하여 각 요청에 대한 추적 정보를 시각화된 형태로 볼 수 있습니다.
이번 강의에서는 Opentelemetry와 Tempo를 통해 설정된 분산 추적 기능이 실제로 어떻게 작동하는지 확인했습니다. Grafana를 사용하여 추적 정보를 시각화하고 분석할 수 있으며, 이를 통해 복잡한 마이크로서비스 환경에서의 문제를 더욱 쉽게 해결할 수 있습니다.
다음 강의에서는 Grafana에서 분산 추적 데이터를 시각화하는 방법을 더 자세히 살펴보겠습니다.
감사합니다. 다음 강의에서 뵙겠습니다.