Skip to main content
트레이싱은 “한 요청이 어디서 실패했는지”를 즉시 보여줘야 합니다. LLM 앱에서는 모델 호출뿐 아니라 검색/툴 호출도 함께 기록해야 합니다.

span 구조 예시

span포함 정보
ingress요청 시간, 사용자 컨텍스트, 입력 길이
retrieval쿼리, top-k, 검색 지연, 문서 ID
llm_call모델명, 토큰 사용량, 응답 시간
tool_call도구명, 인자, 성공/실패 상태
egress최종 응답, safety 결과, 총 지연

트레이싱 설계 원칙

  1. 요청 단위 고유 ID를 끝까지 유지
  2. 개인정보는 저장 전에 마스킹
  3. 샘플링 정책을 환경별로 분리(dev/stage/prod)
  4. 재현에 필요한 최소 컨텍스트를 함께 저장

Langfuse 화면 기준 점검 절차

1) Traces 목록에서 실패 패턴을 먼저 좁힙니다

  • IDs / Names 검색에 run_id 또는 trace name을 넣습니다.
  • 시간 범위를 1d, 7d처럼 고정해서 비교합니다.
  • Observation Levels, Latency, Tokens 컬럼으로 이상치를 찾습니다.
Langfuse traces 목록

2) Trace Detail에서 원인을 확정합니다

  • 우측 상세 패널에서 Preview / Log View / Scores를 순서대로 봅니다.
  • 입력, 출력, 메타데이터, 비용을 함께 확인합니다.
  • 같은 실패가 반복되면 prompt version, tool call, retrieval 입력을 함께 기록합니다.
Langfuse trace detail

장애 분석 질문

  • 실패는 특정 모델에서만 발생하는가
  • 검색 품질 하락이 생성 실패로 이어졌는가
  • 특정 프롬프트 버전에서 에러가 급증했는가
  • 툴 호출 타임아웃이 병목인가
트레이스는 디버깅 로그가 아니라 운영 데이터입니다. 검색 가능한 필드(model, prompt_version, tenant)를 처음부터 설계합니다.

실무 적용 체크리스트

  • 이 문서의 규칙을 실제 서비스 플로우에 매핑했습니다.
  • 측정 지표와 실패 임계값을 숫자로 정의했습니다.
  • 변경 전/후를 비교할 기준 데이터셋 또는 로그를 준비했습니다.
  • 팀 내 공유 문서(런북/가이드)에 반영했습니다.

자주 나는 실수

  1. 기준 지표 없이 개선을 선언합니다.
  2. 한 번에 여러 변수를 바꿔 원인 추적이 불가능해집니다.
  3. 롤백 조건 없이 배포해 장애 복구가 늦어집니다.

다음 문서

다음: 메트릭과 알림

학습 흐름을 이어서 진행합니다.