LabHub
배우기 러닝패스 코스

OTCA — OpenTelemetry Certified Associate

Watch a Trace Join and Break

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

이 실습은 진짜 OpenTelemetry 에서 돕니다

VM 안에 OTel 컬렉터 · Jaeger · 서로를 부르는 서비스 둘이 실제로 떠 있습니다. 요청이 오가고, 스팬이 만들어지고, 컬렉터를 거쳐 Jaeger 에 쌓입니다.

앞 모듈의 트레이싱 실습은 가짜 클러스터에서 돌았습니다. 요청이 오가지 않으니 전파가 끊기는 현상 자체가 일어나지 않았습니다. 그것이 OTCA 가 가장 많이 묻는 자리인데도요.

SDK 를 깔지 않습니다. 서비스가 표준 라이브러리로 OTLP/HTTP 를 직접 만듭니다. OTCA 가 묻는 것이 traceparent 의 생김새와 OTLP 의 모양이라, 손으로 만들어 보는 편이 오히려 시험 범위에 가깝습니다.

처음 뜨는 데 4분쯤 걸립니다.

준비된 것

frontend   http://127.0.0.1:30080   backend 를 부릅니다
backend    obs 네임스페이스 안
컬렉터     설정은 /etc/otelcol/config.yaml
Jaeger     http://127.0.0.1:30686
질의 도구  traces frontend

단계

  1. 요청 하나를 흘려 스팬이 이어지는 것/root/otca/flow.txt 에 담으세요.
  2. traceparent 를 뜯어 /root/otca/traceparent.txt 에 담으세요.
  3. OTLP 로 보낸 것을 확인해 /root/otca/otlp.txt 에 담으세요.
  4. 컬렉터 파이프라인에 프로세서를 넣고 순서가 처리 순서임을 /root/otca/pipeline.txt 에 담으세요.
  5. 전파를 끊어 트레이스가 둘로 갈라지는 것을 /root/otca/broken.txt 에 담으세요.
  6. 리소스 속성과 시맨틱 컨벤션을 /root/otca/semconv.txt 에 담으세요.
  7. 샘플링을 걸고 무엇이 버려지는지 /root/otca/sampling.txt 에 담으세요.
  8. /root/otca/report.mdservices=, broken_traces=, pipeline_order= 세 줄과 설명을 쓰세요.

참고

요청 하나가 남기는 것

요청 하나를 흘려 스팬이 이어지는 것/root/otca/flow.txt 에 담으세요.

응답의 traceId 를 두 서비스에서 비교해 보세요.

헤더 한 줄의 생김새

traceparent 를 뜯어 /root/otca/traceparent.txt 에 담으세요.

00-<32자리>-<16자리>-<2자리> 네 토막입니다.

OTLP 는 저장소가 아니라 프로토콜이다

OTLP 로 보낸 것을 확인해 /root/otca/otlp.txt 에 담으세요.

컬렉터의 debug 익스포터 로그에 받은 스팬 수가 찍힙니다.

프로세서 순서가 처리 순서다

컬렉터 파이프라인에 프로세서를 넣고 순서가 처리 순서임을 /root/otca/pipeline.txt 에 담으세요.

memory_limiter 는 맨 앞, batch 는 맨 뒤입니다. 왜 그런지 생각해 보세요.

전파가 끊기면 무엇이 보이나

전파를 끊어 트레이스가 둘로 갈라지는 것을 /root/otca/broken.txt 에 담으세요.

스팬은 둘 다 남습니다. 하나로 이어지지 않을 뿐입니다.

이름을 마음대로 지으면 안 되는 이유

리소스 속성과 시맨틱 컨벤션을 /root/otca/semconv.txt 에 담으세요.

service.name 은 리소스 속성이고, http.request.method 는 스팬 속성입니다.

무엇을 버릴 것인가

샘플링을 걸고 무엇이 버려지는지 /root/otca/sampling.txt 에 담으세요.

헤드는 맨 앞에서 정하고 되돌릴 수 없습니다. 테일은 다 모아 두고 나중에 고릅니다.

무엇을 배웠나

/root/otca/report.mdservices=, broken_traces=, pipeline_order= 세 줄과 설명을 쓰세요.

services=, broken_traces=, pipeline_order= 세 줄과 설명을 쓰세요.