OTCA — 오픈텔레메트리 인증 어소시에이트 · SDK 증거 추적: 사라진 스팬 찾기 · 퀴즈
퀴즈: 스팬이 사라진 경계
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
RECORD_ONLY 결정으로 만든 스팬을 끝냈습니다. 기본 익스포트 처리기에서 기대할 관측은?
- 처리기 종료 관측은 있지만 익스포터 목록은 비어 있다
- sampled가 켜지고 익스포터 목록에도 스팬이 나타난다
- 스팬 컨텍스트가 무효가 되어 trace ID도 사라진다
- 스팬이 끝나지 않아 처리기의 종료 관측도 없다
ParentBased(root=ALWAYS_OFF)에 sampled 원격 부모가 들어왔습니다. 기본 분기에서 자식은?
- root가 꺼져 있으므로 부모 상태와 무관하게 버린다
- 원격 부모의 sampled 결정을 따라 기록하고 내보낸다
- 부모와 다른 trace ID를 새로 만들어 root로 기록한다
- 원격 부모를 무효로 바꾸고 로컬 샘플러만 호출한다
unsampled 부모와 같은 trace ID를 가진 sampled 자식을 ALWAYS_ON으로 만들었습니다. 옳은 해석은?
- sampled 자식이 생겼으므로 버려진 부모 이벤트도 복구됐다
- 같은 trace ID면 부모와 자식의 sampled는 반드시 같다
- 자식 기록 정책은 바꿀 수 있지만 잃은 부모 내용은 복구되지 않는다
- 자식을 기록하면 전송 오류도 자동으로 복구되는 효과가 있다
start_span으로 만든 스팬에서 예외를 잡고 record_exception만 호출했습니다. ERROR 상태도 요구한다면?
- 예외 이벤트가 생겼으므로 ERROR 지정은 필요하지 않다
- 이벤트를 두 번 기록하면 두 번째 호출이 상태를 바꾼다
- 스팬을 끝낸 다음 service.name을 ERROR로 바꾼다
- 예외 이벤트와 별도로 스팬의 ERROR 상태를 지정한다
열린 스팬을 둔 채 force_flush가 True를 반환했고 실제 수신은 0개입니다. 먼저 확인할 것은?
- 스팬을 끝낸 뒤 다시 내보내기 경계를 확인한다
- True이므로 수신기 기록을 성공한 것으로 덮어쓴다
- 스팬을 끝내지 않고 이름만 바꿔 같은 flush를 반복한다
- 요청이 없으므로 sampled 비트가 반드시 꺼졌다고 단정한다
HTTP 400, exporter FAILURE, accepted_spans=0인데 flush=True입니다. 실험 수신 성공 판정은?
- flush가 True이므로 최종 저장까지 성공으로 본다
- 수신기가 거절했으므로 성공으로 판정하지 않는다
- 본문이 도착했으므로 accepted_spans를 1로 해석한다
- 서비스 이름이 같으면 다른 요청의 성공 기록을 대신 쓴다