이 글을 검토하기 전에 다음과 같이 Jaeger 환경을 배포해야 합니다:
OpenTracing 프로토콜
OpenTracing은 플랫폼이나 언어에 구애받지 않고 통합된 인터페이스를 가진 분산 추적 프로토콜로, 다양한 분산 추적 시스템의 개발과 접근에 편리하게 사용됩니다.Zipkin과 Jaeger는 모두 OpenTracing 프로토콜을 따릅니다。
분산 추적 시스템 예거
Jaeger는 Uber가 개발한 분산 추적 시스템으로, 이미 Uber에서 대규모로 사용 중입니다. 그리고 2017년 9월 13일 CNCF 오픈 소스 조직에 가입했습니다. Jaeger를 사용하면 전체 분산 시스템의 호출 체인을 시각화할 수 있어 문제를 쉽게 식별하고 해결할 수 있습니다:
기능
- 분산 환경에서의 정보 전달
- 분산 트랜잭션 모니터링
- 교차 프로세스 호출 체인을 시연합니다
- 성능 최적화
- 문제 위치 파악
특성
- HTTP에 비해 UDP를 사용해 데이터를 전송하는 장점은 Jaeger 서비스 다운타임이나 네트워크 전송 문제를 걱정할 필요가 없다는 점입니다. 단점은 전체 통화 체인에 영향을 미치는 패킷 손실입니다.
- 데이터는 Thrift 또는 protobuf(gRPC 전송)를 통해 직렬화되며, 기본값은 Thrift입니다.
수집 전략
- ConstSampler, 전체 컬렉션
- ProbabilisticSampler, 확률 수집, 기본값은 10,000분의 1
- RateLimitingSampler는 초당 일정량의 데이터만 수집할 수 있는 속도 제한 획득 도구입니다
- RemotelyControlledSampler는 현재 시스템 방문 횟수에 따라 수집 전략을 조정하는 동적 수집 전략입니다
ASP.NET 코어는 Jaeger 링크 트레이싱과 연결되어 있습니다
이 프로젝트는 .NET Core 3.1용 프레임워크이며, Nuget은 다음 패키지를 설치합니다:
그중 OpenTracing.Contrib.NetCore는 .NET Core 기반 애플리케이션용 OpenTracing 도구를 제공하며, 이는 단순한 확장 기능이며, 주요 모니터링 방식은 다음과 같습니다:
- ASP.NET 핵심
- 엔터티 프레임워크 코어
- System.Net.Http (HttpClient)
- System.Data.SqlClient
- Microsoft.Data.SqlClient
시작 파일에서 ConfigureServices 메서드는 다음과 같이 구성됩니다:
HomeController 컨트롤러 로그와 시간 소모 코드에서 ITracer를 호출하는 방법은 다음과 같습니다:
웹사이트를 실행하고 /Home/Index 페이지를 방문한 후, 온라인 Jaeger UI를 통해 다음 링크를 확인하세요:http://127.0.0.1:16686/아래 그림에서 보듯이 태그로 소수를 검색할 수 있습니다:
http.url=http://localhost:27138/ 아래에 나와 있습니다:
소스 코드 다운로드:
관광객 여러분, 이 게시물의 숨겨진 내용을 보고 싶으시다면 부탁드립니다 회답
리소스:
하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.
|