일반 - FAQ
로그와 트레이스는 어떻게 다른가요?
로그는 단일 애플리케이션과 해당 애플리케이션에 관련된 이벤트로 제한됩니다. 예를 들어, 사용자가 마이크로서비스 플랫폼에서 호스팅되는 웹 사이트에 로그인하고 해당 사이트에서 구매를 한다면, 여러 애플리케이션에서 해당 사용자와 관련된 로그가 생성될 수 있습니다:
- 프론트엔드 웹 서버
- 인증 서비스
- 재고 서비스
- 결제 처리 백엔드
- 사용자에게 영수증을 보내는 아웃바운드 메일러
이들 각각이 해당 사용자에 대한 무언가를 기록할 수 있으며, 그 데이터는 모두 가치가 있습니다. 그러나 트레이스는 해당 단일 트랜잭션에 걸쳐 모든 개별 구성 요소를 아우르는 사용자의 전체 상호 작용에 대한 단일하고 통합된 뷰를 제공합니다.
이러한 방식으로 트레이스는 단일 활동의 뷰를 보여주기 위해 여러 서비스에서 수집된 이벤트의 모음인 반면, 로그는 해당 로그를 생성한 애플리케이션의 컨텍스트에 종속됩니다.
어떤 신호 유형이 불변인가요?
세 가지 기본 신호 유형(메트릭, 로그, 트레이스) 모두 불변이지만, 일부 구현에서는 이에 대한 보장 수준이 다릅니다. 예를 들어, 로그의 불변성은 많은 거버넌스 프레임워크에서 엄격한 요구 사항이며, 이를 보장하기 위한 많은 도구가 존재합니다. 메트릭과 트레이스도 마찬가지로 항상 불변이어야 합니다.
이로 인해 "잘못된 데이터" 또는 부정확한 데이터를 처리하는 방법에 대한 질문이 생깁니다. AWS observability 서비스에서는 오류로 발생한 메트릭이나 트레이스를 삭제할 수 있는 기능이 없습니다. CloudWatch Logs는 전체 로그 스트림의 삭제를 허용하지만, 수집된 데이터를 소급하여 변경할 수는 없습니다. 이는 의도적인 설계이며, 고객 데이터가 최대한 신중하게 처리되도록 보장하는 중요한 기능입니다.