Skip to main content
이 페이지는 핵심 구현 페이지입니다. 저장 방식 비교는 Trace 저장을, 저장 후 확인·검색은 Trace 확인·검색을 참고하세요.
OpenTelemetry SDK로 생성한 Trace를 Databricks OTLP endpoint를 거쳐 Unity Catalog의 OTel Delta 테이블에 직접 적재합니다. 단계별로 진행합니다.

Step 1 — 사전조건

다음을 준비합니다.
  • Unity Catalog가 활성화된 workspace
  • SQL Warehouse
  • MLflow Python 3.14 이상
  • trace table을 생성할 catalog/schema 권한
  • 쓰기 주체(사용자 또는 service principal) 권한
UC trace storage는 GA이므로 별도 preview 신청이 필요 없습니다.

Step 2 — Experiment와 UC trace location 연결

Experiment를 만들면서 UnityCatalog trace location을 지정합니다.
trace location은 experiment 생성 시점에만 바인딩할 수 있고, 사후 변경이 불가능합니다. 새 catalog/schema로 옮기려면 새 experiment를 만들어야 합니다.

Step 3 — 권한 부여

ALL PRIVILEGES만으로는 부족합니다. USE CATALOG, USE SCHEMA와 각 테이블에 대한 MODIFY·SELECT를 명시적으로 부여해야 합니다.

Step 4 — OTLP Exporter 설정

Databricks OTLP endpoint는 /api/2.0/otel/v1/traces입니다. 다음 헤더가 필요합니다. Trace에는 root span이 반드시 있어야 합니다.
BatchSpanProcessor는 span을 배치로 모아 전송하므로, 프로세스 종료 전 반드시 flush 해야 남은 span이 유실되지 않습니다.

GenAI OTel 속성

MLflow UI가 span을 올바른 type으로 표시하고 입출력·token을 채우려면 아래 GenAI 표준 속성을 씁니다.
gen_ai.input.messages / gen_ai.output.messages와 token usage는 root span에도 설정해야 trace summary와 집계 값이 채워집니다. 또한 커스텀 attribute는 MLflow unified tags로 자동 변환되지 않으므로, 검색에 쓸 tag는 MLflow tag API로 별도 지정하세요.