??? Jaeger v2가 출시됩니다! 블로그 게시물을 읽고 시도해 보세요.
그래프 TD
SDK["OpenTelemetry SDK"] --> |HTTP 또는 gRPC| 수집기
COLLECTOR["예거 콜렉터"] --> 저장[저장소]
수집기 --> |gRPC| 플러그인[스토리지 플러그인]
수집기 --> |gRPC/샘플링| SDK
플러그인 --> 스토어
QUERY[예거 쿼리 서비스] --> 저장
쿼리 --> |gRPC| 플러그인
UI[예거 UI] --> |HTTP| 질문
하위 그래프 애플리케이션 호스트
하위 그래프 사용자 애플리케이션
SDK
끝
끝
Dapper와 OpenZipkin에서 영감을 받은 Jaeger는 Uber Technologies가 만들고 Cloud Native Computing Foundation에 기부한 분산 추적 플랫폼입니다. 마이크로서비스 기반 분산 시스템을 모니터링하는 데 사용할 수 있습니다.
참조:
Jaeger는 Cloud Native Computing Foundation(CNCF)에서 7번째 최상위 프로젝트로 호스팅됩니다(2019년 10월 졸업). 컨테이너 패키지, 동적 스케줄링 및 마이크로서비스 지향 기술의 발전을 형성하는 데 도움을 주고자 하는 회사라면 CNCF 가입을 고려해 보십시오. 참여자 및 Jaeger의 역할에 대한 자세한 내용은 CNCF Jaeger 인큐베이션 발표 및 Jaeger 졸업 발표를 읽어보세요.
Jaeger는 개방형 거버넌스를 갖춘 오픈 소스 프로젝트입니다. 우리는 커뮤니티의 기여를 환영하며 프로젝트를 개선하고 확장하는 데 도움을 드리고 싶습니다. 참여 방법에 대한 몇 가지 아이디어는 다음과 같습니다. 그들 중 다수는 코딩이 필요하지 않습니다.
Jaeger 백엔드는 단일 실패 지점이 없고 비즈니스 요구 사항에 따라 확장되도록 설계되었습니다. 예를 들어 Uber의 Jaeger 설치는 일반적으로 하루에 수십억 개의 범위를 처리합니다.
Jaeger와 OpenTelemetry 프로젝트는 서로 다른 목표를 가지고 있습니다. OpenTelemetry는 애플리케이션이 프로세스 외부의 다양한 원격 측정 데이터를 원하는 수의 측정항목 및 추적 백엔드로 내보낼 수 있도록 여러 언어로 API 및 SDK를 제공하는 것을 목표로 합니다. Jaeger 프로젝트는 주로 추적 원격 측정 데이터를 수신하고 해당 데이터의 처리, 집계, 데이터 마이닝 및 시각화를 제공하는 추적 백엔드입니다. 자세한 내용은 Jaeger 및 OpenTelemetry 블로그 게시물을 참조하세요.
Jaeger는 원래 OpenTracing 표준을 지원하도록 설계되었습니다. 이 용어는 여전히 Jaeger UI에서 사용되지만 개념은 추적의 OpenTelemetry 데이터 모델에 직접 매핑됩니다.
능력 | OpenTracing 개념 | OpenTelemetry 개념 |
---|---|---|
추적을 방향성 비순환 그래프(트리뿐만 아니라)로 표현합니다. | 스팬 참조 | 스팬 링크 |
강력한 유형의 범위 속성 | 스팬 태그 | 범위 속성 |
강력한 유형의 이벤트/로그 | 스팬 로그 | 스팬 이벤트 |
Jaeger 프로젝트에서는 계측을 위해 현재 더 이상 사용되지 않는 Jaeger SDK 대신 OpenTelemetry SDK를 권장합니다.
Jaeger는 점점 더 많은 스토리지 백엔드와 함께 사용될 수 있습니다.
Jaeger 웹 UI는 React와 같은 널리 사용되는 오픈 소스 프레임워크를 사용하여 Javascript로 구현됩니다. v1.0에서는 UI가 대용량 데이터를 효율적으로 처리하고 수만 개의 범위로 트레이스를 표시할 수 있도록 여러 가지 성능 개선 사항이 출시되었습니다(예: 80,000개의 범위로 트레이스를 시도했습니다).
Jaeger 백엔드는 Docker 이미지 모음으로 배포됩니다. 바이너리는 명령줄 옵션, 환경 변수, 다양한 형식(yaml, toml 등)의 구성 파일을 포함한 다양한 구성 방법을 지원합니다.
프로덕션 Kubernetes 클러스터에 Jaeger를 배포하는 권장 방법은 Jaeger Operator를 이용하는 것입니다.
Jaeger Operator는 Jaeger CR에서 Kubernetes 매니페스트를 생성하기 위한 CLI를 제공합니다. 이는 일반 Kubernetes 매니페스트 파일에 대한 대체 소스로 간주될 수 있습니다.
Jaeger 생태계는 Jaeger를 배포하는 대체 방법으로 Helm 차트도 제공합니다.
모든 Jaeger 백엔드 구성요소는 기본적으로 Prometheus 측정항목을 노출합니다(다른 측정항목 백엔드도 지원됨). 로그는 구조화된 로깅 라이브러리 zap을 사용하여 표준 출력에 기록됩니다.
Jaeger의 제3자 보안 감사는 https://github.com/jaegertracing/security-audits에서 확인할 수 있습니다. Jaeger에서 사용 가능한 보안 메커니즘에 대한 요약은 이슈 #1718을 참조하세요.
OpenTelemetry를 사용하여 애플리케이션을 계측하는 것이 좋지만 조직에서 이미 Zipkin 라이브러리를 사용하여 계측에 투자한 경우 해당 코드를 모두 다시 작성할 필요는 없습니다. Jaeger는 HTTP를 통해 Zipkin 형식(Thrift 또는 JSON v1/v2)의 범위를 허용하여 Zipkin과의 하위 호환성을 제공합니다. Zipkin 백엔드에서 전환하는 것은 Zipkin 라이브러리에서 Jaeger 백엔드로 트래픽을 라우팅하는 문제일 뿐입니다.
때로는 유용성 개선이나 새로운 기능 등으로 인해 CLI 플래그가 더 이상 사용되지 않을 수 있습니다. 이러한 상황에서 지원 중단을 도입하는 개발자는 다음 지침을 따라야 합니다.
즉, 더 이상 사용되지 않는 CLI 플래그의 경우 --help
문서에 다음 메시지가 표시될 것으로 예상됩니다.
(deprecated, will be removed after yyyy-mm-dd or in release vX.Y.Z, whichever is later)
더 이상 사용되지 않는 CLI 플래그를 삭제 하기 전에 사용 중단 알림이 포함된 첫 번째 릴리스부터 최소 3개월 의 유예 기간 또는 두 번의 부 버전 범프 (둘 중 더 늦은 날짜 기준)가 제공됩니다.
예를 들어 v1.28.0이 CLI 플래그에 대한 지원 중단 알림을 포함하여 2021년 6월 1일에 릴리스되는 시나리오를 생각해 보세요. 이 플래그는 2021년 9월 1일 또는 v1.30.0 이후까지 더 이상 사용되지 않는 상태로 유지되며 해당 이벤트 중 하나 또는 그 이후에 제거 될 수 있습니다. 앞서 언급한 유예 기간보다 오랫동안 더 이상 사용되지 않을 수 있습니다.
Jaeger 프로젝트는 Go 팀에서 정의한 대로 현재 지원되는 Go 버전을 추적하려고 시도합니다. 지원되지 않는 Go 버전에 대한 지원을 제거하는 것은 주요 변경으로 간주되지 않습니다.
Go 1.21 릴리스부터 Go 버전에 대한 지원이 다음과 같이 업데이트됩니다.
N
이 출시된 후 곧 최신 Go 마이너 버전을 수용하기 위해 빌드 및 테스트 단계가 업데이트됩니다.N
이 출시된 후 곧 Go 버전 N-2
에 대한 지원이 제거되고 버전 N-1
이 최소 필수 버전이 됩니다. Jaeger 프로젝트에서는 계측을 위해 현재 더 이상 사용되지 않는 Jaeger의 기본 SDK 대신 OpenTelemetry SDK를 권장합니다.
기여를 참조하세요.
기여를 참조하세요.
이미 기여해주신 모든 분들께 감사드립니다!
관리자가 되기 위한 규칙은 GOVERNANCE 문서에 정의되어 있습니다. 다음은 Jaeger 프로젝트의 공식 관리자입니다. 문제/PR에 태그를 지정하려면 @jaegertracing/jaeger-maintainers
사용하세요.
jaegertracing org의 일부 리포지토리에는 추가 관리자가 있습니다.
Jaeger 프로젝트에 기여해주신 이전 유지관리자들에게 감사드립니다.
Jaeger 관리자와 기여자는 화상 통화를 통해 정기적으로 만납니다. 최종 사용자를 포함해 누구나 가입할 수 있습니다. 미팅 세부사항은 https://www.jaegertracing.io/get-in-touch/를 참조하세요.
https://www.jaegertracing.io/docs/roadmap/을 참조하세요.
질문, 제안, 버그 보고서가 있으신가요? 다음 채널을 통해 프로젝트 커뮤니티에 접근하세요.
#jaeger
(CNCF Slack에 처음 가입해야 함)jaeger-tracing
메일 그룹제품으로서의 Jaeger는 여러 구성 요소로 구성됩니다. 우리는 계측 라이브러리만 사용하든 전체 엔드투엔드 Jaeger 설치를 사용하든, 프로덕션에서 실행하든 개발 중 문제를 해결하는 데 사용하든 다양한 유형의 사용자를 지원하고자 합니다.
현재 Jaeger를 사용하는 일부 조직에 대해서는 ADOPTERS.md를 참조하세요. 귀하의 조직을 목록에 추가하려면 설문조사 문제에 대해 의견을 남겨주세요.
저작권 (c) Jaeger Authors. 아파치 2.0 라이센스.