Jaeger / Telemetry 텔레메트리 Feat. 예거

IT/EKS 2022. 8. 8. 08:55
반응형

대략 3주 정도 예거트레이서 관련하여 샘플링을 시도해보았댜.

 

한마디 감상문 : 레퍼런스가 참 없어서 맨땅에 헤딩하듯 개발했다. 참고로 쉬운구조가 절대 아니다. 긴장빠셈.

한마디 감상문2 : 트레이서의 코어는 인프라가 아니라, 실제로는 코드부분이다 (예거는 그냥 거들뿐)

한마디 감상문3 : 아 올인원 타입은 절대 깔지마라. 이왕이면 그냥 바로 프로덕션 버전처럼 디커플링된거로 가셈.

한마디 감상문4 : 뭐 인제스터에 ES 인덱스 클리너 등등 겁나 자질구레한거 엄청 붙어있는데, 밑에 볼드체 + 언더라인 한거 구조를 기반으로 나머지 가져다 붙이셈. 

 

아직은 크게 쓰기 힘들다보니, 대략 요약만 하고, 이후 좀 더 내용 보완하겠댜 ㅇㅇ

 

예거 클라리언트 (코드부분)  >  예거 에이전트 (사이드카 컨테이너 or 데몬셋 파드)  >  예거콜렉터  >  예거DB (ES or 카산드라)  

그리고 예거DB를 조회해서 두더지 그림 나오게하는 UI가 바로 예거UI. 그리고 옵션으로 예거UI 접근 가능하게 인그레스나 뭐 프록시 등등 달아줄 수 있음

( 이 위에 구조 그림으로 봐야 이해되는데, 꼭 레퍼런스 보셈. 그래야 트레이서 이해가 감)

 

예거 클라이언트는 2가지가 있댜.

1. 예거 클라이언트 : 오리지널인데 지금 Deprecation. 그냥 시한부 선언받음

2. 텔레메트리 : 트레이서. 추적정보 제공하는 라이브러리. 예거도 얘를 쓰라 함.

 

예거 인프라를 설치하는데는 2가지가 있댜. (올인원은 뺀다.)

1. 예거 오퍼레이터 : 까보면 1만줄짜리 CRD. 쿠버 버전 종속이 엄청 심해서 버전 바뀔때마다 얘도 버전 계속 바껴야함. 자신있으면 이거로 깔고 덤비셈. 

2. 예거트레이싱 : 쿠버네티스 네이티브 리소스로 구성함. 과거 오퍼레이터로 설치할 때, 얘는 베타였음 (대략 21년 1월). 지금은 스테이블 / 릴리즈 버전으로 나온거같음. jaeger tracing 헬름차트 검색해보면 나올거임. 참고로 jaeger-operator 헬름 차트도 있는데, 이건 그냥 CRD를 내가 까냐 아니면 헬름이 까냐 차이임. 난 그냥 jaeger-tracing 을 차트로 깔았음

 

예거 DB도 2종류댜

1. ES : 범용 검색엔진. 그냥 얘가 쉬우니 이거로 까셈.

2. 카산드라 : k-v nosql이댜. 잘 구성할 줄 모르는 사람은 객기부리지 말고 ES로 깔아서 가는거 추천함.

 

예거 에이전트도 2종류댜

1. 데몬셋 : 그냥 각 노드마다 데몬으로 깐다. 제일 쉽다. 추적정보 보낼 때, 앱에서 목적지를 예거 에이전트 데몬의 SVC명으로 입력하면 알아서 집어넣는다. 단점으로, 트레이서 클라이언트 없는 애들의 노드 입장에선 이건 비용 낭비임. 근데 예거 데몬 깔 때, 어떤 노드한테만 줄래? 이것도 선택 가능함 ㅇㅇ

2. 사이드카 컨테이너 : 파드 = 컨테이너1 이 가장 관리하기 쉬운데, 원래 파드는 컨테이너 n개를 조합해서 하나의 서비스로 구성하고, 내부를 로컬호스트로 통신할 수 있게 했다. (아 말은 쉽지 운영관리가 어려워요..) 그래서 실제 어플리케이션 옆으로 예거에이전트 사이드카 컨테이너를 붙여서, 로컬호스트로 추적정보를 컨테이너 로컬호스트로 보내는거다. 인프라 관리 입장에선 쉬운데, 개발자나 데브옵스 입장에서 환장할 노릇 펼쳐지지.. 이거까지 관리하긴 싫거든 ㅇㅇ;

결론 : 모르면 그냥 데몬셋으로 까셈

 

예거 에이전트에 넣어야하는, 실제 추적정보를 수집하는 트레이서 라이브러리 또한 2개댜

이건 그냥 오픈텔레메트리 쓰셈. 필수임.

1. 예거 클라이언트 : 원래 초창기 라이브러리. 지금은 지원 안함. 예거 공홈가서 보셈.

2. 오픈텔레메트리 : 최신버전임. 근데 가이드나 메뉴얼이 참 보는사람으로 하여금 불편하게 되어있음. 앵간한 샘플코드도 없어. 내가 조만간 올려줄테니 기둘리셈 ㅡㅡ; 무튼 강제적으로라도 오픈 텔레메트리 쓰셈. 

 

 

대강 개요는 이렇고, 미술점수가 항상 안좋았고 정장빼고 옷입는거에도 크게 관심없고 꾸미지도 못해서 그냥 하얀건 바탕이요 검정건 글씨다 타입임 ㅇㅇㅇ 이해좀 해줘요들

이 글은 조만간 내가 샘플 개발 앱이랑 도커파일, 헬름차트 등등 어떻게 설치했는지 그 파일들은 공유해서 수정토록 할게 ㅇㅇ

 

 

 

반응형

설정

트랙백

댓글

헬름차트 - 예거 트레이서와 프로메테우스 상호간 버그

IT/EKS 2022. 7. 22. 11:54
반응형

헬름차트로 예거를 설치하고 프로메테우스를 설치하면, 프로메테우스가 기동되지 않는 상태

예거 헬름차트 설치 후, 프로메테우스 파드 재기동이 안됨 ㅇㅇ;

  • 추정 사유 : 예거 에이전트가 환경변수를 프로메테우스 파드로 주입 시, 프로메테우스 측에서 이를 명시하지 않을 경우 오류 발생 
  • 프로메테우스 커뮤니티 측에서는 예거보다는 프로메테우스의 버그로 취급하는 모양이며, 명확한 솔루션이 제공되어 있음 → 예거에이전트 환경변수를 명시적으로 프로메테우스 파드에 추가
  • 레퍼런스
 

[stable/prometheus-operator] JAEGER_AGENT_PORT invalid syntax · Issue #22769 · helm/charts

Describe the bug See report here: prometheus/prometheus#7286. level=error ts=2020-05-23T09:56:29.187Z caller=main.go:508 msg="Unable to init tracing" err="unable to get tracing confi...

github.com

 

오퍼레이터와 CRD를 그렇게 좋아하지 않는 개인 입장에서, 가장 바닐라틱하게 쓰기 위해 예거를 헬름으로 설치했댜

 

근데 이 상태에서 프로메테우스 재기동할 때 이슈가 생겼던 부분이었는데, 한번 동일 이슈일경우 참고해보도록 하쟈 ㅇㅇㅇ

반응형

설정

트랙백

댓글