CS 지식

트레이싱(Tracing)이란?

Nowon9159 2023. 7. 19. 17:22
반응형

dynatrace tracing (https://www.dynatrace.com/support/help/observe-and-explore/purepath-distributed-traces)

트레이싱(Tracing)

정의

트레이싱이란 요청이 애플리케이션을 통해 전파될 때 요청이 취하는 경로를 기록하는 관찰 가능성 도구 입니다 . 트레이싱은 특정 요청에 대한 응답으로 시스템이 수행하는 활동을 연결하는 데 도움이 됩니다. 또한 트레이싱은 이러한 활동에 대한 타이밍 정보(예: 시작 시간, 기간 등)를 제공합니다.

 

트레이싱은 프로그램 실행에 대한 정보를 기록하기 위해 로깅을 특수하게 사용하는 것과 관련된다. 이 정보는 일반적으로 프로그래머가 디버깅 목적으로 사용하고 추가로 트레이싱 로그에 포함된 정보의 유형과 세부 정보에 따라 숙련된 시스템 관리자나 기술 지원 담당자 및 소프트웨어 모니터링 도구가 소프트웨어의 일반적인 문제를 진단하는 데 사용한다.

로깅이 이벤트에 의해 트리거되는 개별 로그에 대한 정보를 제공하는 반면, 트레이싱은 애플레케이션에 대한 훨씬 더 광범위하고 지속적인 view를 포함한다. 트레이싱의 목표는 프로그램의 흐름과 데이터 진행 상황을 추적하는 것이다. 따라서 트레이싱에는 훨씬 더 많은 정보가 사용되며, 추적은 logging보다 활동의 노이즈가 훨씬 더 클 수 있다.

트레이싱의 목적은 사후 대응이 아니라 최적화에 중점을 준다. 스택을 추적함으로써 병목 현상을 파악하고 성능 개선에 집중할 수 있다.

문제 발생 시 어떤 경로로 문제가 발생 했는 지 확인할 수 있다. 아래는 예시이다.

  • 어떤 함수로 인해서
  • 함수의 지속 시간
  • 전달된 매개변수
  • 사용자가 함수로 얼마나 깊게 도달했는지?

트레이싱은 필수가 아니며 관련된 데이터로 인해서 트레이싱에 많은 비용이 소요될 수 있음을 알아야한다.

추가되는 복잡성을 감수할 가치가 있는 지, 어떤 가치를 가져다줄 수 있는지 고려해야한다.

트레이싱은 주로 이러한 메트릭을 수집하고 시각화하는 작업이라고 보면 된다.

  • HTTP,gRPC 등의 프로토콜을 사용하는 서버간의 요청 추적
    -> 어느 서버에서 얼마나 시간이 소요 되었는지
  • 서버 내부 프로세싱의 추적
    -> 어떤 함수에서 시간이 얼마나 많이 소요 되었으며, 얼마나 많이 수행했는지

 

장단점

  • 장점 : 
    • 애플리케이션의 최하위 단에서 어떻게 동작하는 지 병목 현상은 일어나지 않는지 등등 구체적인 파악이 가능
    • 성능 개선을 하기 위한 최적화 진행 시에 굉장히 많은 도움이 될 듯
  • 단점 : 
    • 데이터 수집 및 저장에 많은 비용이 소요될 수 있다.

 

내 생각

트레이싱을 써보지 않아서 구체적으로 잘 모르는 것도 있고 이해도가 조금 떨어지는 것 같다.

하지만, 서버 애플리케이션이 동작하는 과정에서의 구체적인 지표를 보여주는 툴인 것같다.

그 과정에서 함수가 실행되는 구체적인 Process 를 알 수 있는 것 같다.
(함수가 어떻게 실행 되었는 지, 함수의 수행 시간은 얼마나 되는 지, 함수가 어디서부터 어디까지 수행 되었는 지)

최적화 시 많은 도움이 될 것이라고 했는데, 이 말이 딱 맞을 것 같다.

허나 트레이싱을 하게 되면 많은 데이터가 수집되고 축적되어 클라우드 사용 시 비용 처리에 문제가 있을 듯 하다.

 

[참조] :

https://www.bmc.com/blogs/monitoring-logging-tracing/

https://ko.wikipedia.org/wiki/%ED%8A%B8%EB%A0%88%EC%9D%B4%EC%8B%B1#:~:text=%ED%8A%B8%EB%A0%88%EC%9D%B4%EC%8B%B1%20(tracing)%EC%9D%80%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%98,%EC%9D%84%20%EB%AA%A9%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%82%AC%EC%9A%A9%EB%90%9C%EB%8B%A4. 

https://blog.naver.com/alice_k106/221832024817

https://coralogix.com/blog/what-is-tracing-everything-to-know/

반응형