Trace 정리 Tracing (이하 트레이싱) 추적은 응용 프로그램을 구성하는 다른 서비스에 의해 처리되는 단일 사용자 요청의 진행과정을 추적하는 것이다. 진행 과정의 각 작업은 Span 으로 부르며, 각 스팬에는 단계에 소요된 시간 (대기 시간), 상태, 시간 이벤트, 속성, 링크를 포함하여 작업을 나타낼 수 있는 메타 데이터가 포함된다. 이 추적 정보를 활용해서 애플리케이션의 오류 및 대기 시간 문제를 디버깅 할 수 있다. Trace (이하 추적) 추적은 스팬 트리로 구성된다. 즉, 작업의 흐름 경로를 보여주는 관찰 가능한 신호의 집합이다. 추적 자체는 고유한 16바이트 시퀀스로 표현되는 TraceID 로 식별된다. 트레이싱을 통해서 수집된 추적 정보는 다음과 같이 표현된다. 위의 그림에서와 같이 여러 단계의 작업(스팬)이 호출된 것을 확인할 수 있다. auth: 사용자 인증 여부 검사 cache.Get: 캐시 검증 mysql.Query: 캐시에 존재하지 않아 DB 조회 cache.Put: DB 조회결과 캐시 처리 Exporting (이하 내보내기) 수집된 추적 정보를 다양한 분석을 위해서 여러 가지 백엔드들에 대한 내보내기를 구성해서 처리할 수 있다. 다양한 내보내기 목록등은 Opencensus 를 참고하면 된다. Span (이하 스팬) 스팬은 추적의 단일 작업을 나타낸다. 주로 HTTP 요청, RPC (원격 프로시저 호출: Remote Procedure Call), 데이터베이스 쿼리 또는 코드가 사용자 코드에서 사용하는 경로 등을 나타낸다. 스팬은 트리 구조를 이루기 때문에 상위 스팬의 존재여부에 따라서 상위 스팬과 하위 스팬으로 나뉜다. 각 스팬은 SpanID 로 식별된다. SpanID 와 옵션 바이트들을 합쳐서 Span Context 라고 한다. 동일 프로세스 내에서 스팬 컨텍스트는 컨텍스트 객체로 전달된다. 프로세스 경계를 넘어서면 프로토콜 헤더로 직렬화 된다. 따라서 수신 측은 스팬 컨텍스트를 읽고 하...
MorrisSoft Funny Lab - 재미있는 상상을 만들어보는 실험실