분산 추적 기능 데모

날아올라돼지야·2024년 8월 30일
0

이 강의에서는 분산 추적 기능이 어떻게 작동하는지 직접 확인해 보겠습니다. 이를 위해 Grafana에서 Tempo를 활용하여 추적 정보를 시각화하고 분석하는 방법을 보여드리겠습니다.

1. Grafana에서 Loki를 통한 로그 조회

먼저 Grafana에 접속한 후, Loki 데이터 소스를 통해 accounts 마이크로서비스의 로그를 조회합니다.

  • Loki 데이터 소스를 선택한 후, accounts 마이크로서비스의 로그를 조회하는 쿼리를 실행합니다.
  • 로그에는 OpenTelemetry를 통해 추가된 trace IDspan ID 정보가 포함되어 있습니다.
INFO  [accounts] [TRACE_ID] [SPAN_ID] - fetchCustomerDetails() method end
  • 로그에서 확인할 수 있듯이, 각 로그 메시지에 로그 레벨, 애플리케이션 이름, trace ID, span ID가 포함되어 있습니다.

2. Trace ID를 사용한 다른 마이크로서비스 로그 조회

다음으로, 앞서 조회한 trace ID를 사용하여 cards 마이크로서비스에서도 동일한 trace ID를 가진 로그를 조회합니다.

  • cards 마이크로서비스의 로그에서도 동일한 trace ID를 확인할 수 있으며, span ID는 해당 마이크로서비스 내에서 고유한 값으로 표시됩니다.

3. Tempo를 통한 추적 정보 시각화

이제 Tempo 데이터 소스를 사용하여 추적 정보를 시각화해보겠습니다.

  • Tempo 데이터 소스를 선택한 후, trace ID를 사용하여 쿼리를 실행합니다.
  • 아래로 스크롤하여 요청이 여러 마이크로서비스를 거치는 과정을 시각적으로 볼 수 있습니다.
Gateway Server -> Accounts Microservice -> Loans Microservice -> Cards Microservice
  • Tempo를 통해 각 마이크로서비스에서 실행된 메서드와 소요된 시간을 확인할 수 있으며, 병목 현상이 발생한 지점을 쉽게 파악할 수 있습니다.

4. Tempo와 다른 도구 비교

  • TempoGrafana와 통합되어 있어, LokiPrometheus와 함께 사용하면 로그, 메트릭, 추적 정보를 모두 한 곳에서 확인할 수 있는 강력한 도구입니다.
  • Zipkin이나 Jaeger와 같은 다른 추적 도구도 있지만, 이들은 Grafana와의 통합이 부족하여 로그나 메트릭 정보를 함께 보기 어려운 단점이 있습니다.

결론

TempoGrafana를 활용하면 분산 추적 정보를 효과적으로 수집하고 시각화할 수 있으며, 이를 통해 마이크로서비스의 성능 문제를 보다 쉽게 파악하고 해결할 수 있습니다. 이 강의에서는 TempoGrafana의 강력한 기능을 활용하여 분산 시스템에서의 문제를 해결하는 방법을 보여드렸습니다.

다음 강의에서 더 깊이 있는 내용을 다루겠습니다. 감사합니다.

profile
무슨 생각하며 사니

0개의 댓글