오픈트레이싱
하이퍼링크 로그인이 보입니다.
OpenTracing은 플랫폼과 벤더에 구애받지 않는 Trace 프로토콜을 개발하여 개발자들이 분산 추적 시스템 구현을 쉽게 추가하거나 교체할 수 있도록 했습니다. 2016년 11월, CNCF 기술 위원회는 OpenTracing 호스팅 프로젝트로 승인하기로 결정했으며, 이는 CNCF의 세 번째 프로젝트이고 첫 번째는 Kubernetes, 두 번째는 Prometheus로, 이는 CNCF가 OpenTracing의 관측 가능성을 매우 중요하게 여긴다는 것을 보여줍니다. 예를 들어, 유명한 Zipkin과 Jaeger는 모두 OpenTracing 프로토콜을 따릅니다.
오픈센서스
하이퍼링크 로그인이 보입니다.
이제 OpenTracing이 도입된 지금, OpenCensus가 이 재미를 어떻게 활용할까 궁금하실 수도 있습니다. 죄송하지만, OpenCensus의 시작자는 구글이며, 구글은 추적 개념을 처음 제안한 회사이고, OpenCensus는 구글 대퍼의 커뮤니티 버전입니다. OpenCensus와 OpenTracing 간의 가장 큰 차이점은 추적 외에도 지표를 포함하고 있다는 점으로, 기본적인 지표 모니터링도 OpenCensus에서 수행할 수 있습니다. 또 다른 차이점은 OpenCensus가 단순한 명세가 아니며, 데이터 수집 에이전트와 수집자 등 모든 것을 담당한다는 점입니다. OpenCensus 역시 많은 팬층을 보유하고 있으며, 최근 가장 큰 뉴스는 마이크로소프트도 가입했다고 발표했다는 점입니다. OpenCensus는 마치 날개 달린 호랑이와 같습니다.
OpenTelemetry란 무엇인가요?
하이퍼링크 로그인이 보입니다.
OpenTelemetry는 OpenTracing 프로젝트와 OpenCensus 프로젝트를 통합하여 텔레메트리 데이터 획득 및 전송을 표준화하기 위한 API 및 라이브러리 세트를 제공합니다. OpenTelemetry는 필요에 따라 데이터를 다양한 백엔드로 전송할 수 있는 안전하고 벤더 중립적인 도구를 제공합니다.
OpenTelemetry 프로젝트는 다음 구성 요소들로 구성되어 있습니다:
- 모든 프로젝트에서 일관된 명세의 사용을 추진합니다
- 명세 기반, 인터페이스 및 구현용 API 포함
- Java, Python, Go, Erlang 등 다양한 언어로 된 SDK(API 구현)
- 익스포터: 데이터를 원하는 백엔드로 전송할 수 있습니다
- 수집기: 텔레메트리 데이터 처리 및 내보내기 위한 공급업체 중립적 구현
Opentelemetry 용어:
트레이스: 분산 시스템을 통한 요청 활동을 기록하며, 트레이스는 스팬의 방향성 비순환 그래프입니다
스팬: 트레이스는 이름 붙여진 시간 기반 연산을 나타냅니다. 스팬은 트레일 트리를 형성하기 위해 둥지를 틀고 있습니다. 각 트레이스는 종단 간 지연을 설명하는 루트 스팬을 포함하며, 그 하위 연산들도 하나 이상의 서브스팬을 가질 수 있습니다.
메트릭스: 서비스에 대해 런타임에 수집된 원시 메트릭 데이터입니다. Opentelemetry에서 정의한 미터법 기기들입니다. 옵서버는 비동기 API를 통해 데이터 수집을 지원하며, 각 수집 구간마다 하나의 데이터를 제공합니다.
컨텍스트: 스팬은 스팬 컨텍스트를 포함하는데, 이는 각 스팬이 속하는 고유 요청을 나타내는 전 세계적으로 고유한 식별자이며, 서비스 경계를 넘어 추적 정보를 전송하는 데 필요한 데이터도 포함합니다. OpenTelemetry는 사용자 정의 속성을 포함할 수 있는 상관관계 컨텍스트도 지원합니다. 상관관계 컨텍스트는 필요하지 않으며, 컴포넌트는 해당 정보를 저장하지 않기로 선택할 수 있습니다.
컨텍스트 전파: 서로 다른 서비스 간에 맥락 정보를 전달하는 방식, 보통 HTTP 헤더를 의미합니다. 컨텍스트 전파는 Opentelemetry 시스템의 핵심 기능 중 하나입니다. 트레이싱 외에도 A/B 테스트 수행과 같은 흥미로운 용도가 있습니다. OpenTelemetry는 여러 프로토콜에 대한 컨텍스트 전파를 지원하여 문제를 피할 수 있지만, 자신의 애플리케이션에서는 단일 방식을 사용하는 것이 가장 좋다는 점을 유념하는 것이 중요합니다.
OpenTelemetry의 장점:
OpenTracing과 OpenCensus를 하나의 오픈 표준으로 통합함으로써, OpenTelemetry는 다음과 같은 편의를 제공합니다:
선택이 쉽다: 두 표준 중 하나를 선택할 필요 없이, OpenTelemetry는 OpenTracing과 OpenCensus 모두와 호환됩니다. 크로스 플랫폼: OpenTelemetry는 다양한 언어와 백엔드를 지원합니다. 기존 도구를 변경하지 않고도 벤더 중립적인 텔레메트리 데이터를 백엔드로 캡처하고 전송할 수 있는 방법을 제공합니다. 단순화된 관측성: OpenTelemetry가 말하듯이, "고품질 텔레메트리는 고품질 텔레메트리를 필요로 한다"고 합니다. 더 많은 벤더들이 OpenTelemetry로 전환하길 바랍니다. OpenTelemetry가 더 편리하고 단일 표준만 테스트하면 되기 때문입니다.
|