이번 포스팅 에서는 사이드 프로젝트로 진행중인 Runner’s Hi 앱에 적용할 로깅 시스템의 초안을 opentelemetry 를 활용해 만들어 보았습니다. 클라이언트에서 발생한 특정 action 을 고유한 ID(Global ID)를 통해 백엔드와 중앙화된 로깅 시스템까지 일관되게 추적하는 것을 목표로 합니다.

전체 플로우

step1. Flutter(Client)에서 user-action이 발생하면 X-Global-ID 를 담아 백엔드로 API 를 호출합니다. step2. Spring Boot(Server)에서는 요청을 수신하고 Header 에서 X-Global-ID 를 추출합니다. 이때, 해당 요청과 관련된 모든 로그와 분산 트레이스(Distributed Trace) 에 이 ID 를 포함하여 전파시킵니다. step3. 이후 모든 로그와 트레이스에는 ID가 자동으로 생성되게 됩니다. step4. 생성된 데이터는 각각의 파이프라인을 통해 Grafana에 모이게 됩니다.

세부 플로우

step 1.

step 2.

step 3.

step 4.