UI 로그 시작하기 (UI Logs)

UI 로그 시작하기 (UI Logs)

LiteLLM 프록시를 운영하면 "이번 요청이 성공했나, 에러가 났나, 얼마나 토큰을 썼고 비용은 얼마지" 같은 걸 대시보드에서 한눈에 보고 싶어져요. LiteLLM UI의 Logs 페이지는 요청마다 지출(spend)·토큰 사용량·키·팀 이름을 보여주는 관측성 창구예요. 이 장은 그 로그 페이지의 기본 원리와 켜고 끄는 설정을 다룹니다.

출처: 공식문서

개요

기본적으로 어떤 로그가 기록되는지 먼저 정리할게요.

Log Type Tracked by Default
Success Logs ✅ Yes
Error Logs ✅ Yes
Request/Response Content Stored ❌ No by Default, opt in with store_prompts_in_spend_logs

기본적으로 LiteLLM은 요청·응답 내용을 저장하지 않아요. 지출·토큰·키·팀 같은 메타데이터는 추적하되, 실제 프롬프트와 응답 본문은 보관하지 않는 게 기본 동작이에요. 프라이버시 관점에선 오히려 안전한 기본값이죠.

로그 페이지에서 요청/응답 내용 추적하기

요청·응답 내용을 Logs 페이지에서 보고 싶다면 두 곳 중 한 곳에서 켤 수 있어요.

  • UI(재시작 없음): UI Spend Log Settings에서 Logs → Settings → "Store Prompts in Spend Logs" 활성화 → Save. 즉시 적용되고 config보다 우선해요.
  • config: proxy_config.yaml에 추가(재시작 필요):
general_settings:
  store_prompts_in_spend_logs: true

도구(tools) 추적

완료 요청에서 제공되고 호출된 도구를 확인할 수 있어요. 예를 들어 도구가 있는 완료 요청을 보내면:

curl -X POST 'http://localhost:4000/chat/completions' \
  -H 'Authorization: Bearer ***' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "{{openai_large}}",
    "messages": [{"role": "user", "content": "What is the weather?"}],
    "tools": [
      {
        "type": "function",
        "function": {
          "name": "get_weather",
          "description": "Get the current weather",
          "parameters": {
            "type": "object",
            "properties": {
              "location": {"type": "string"}
            }
          }
        }
      }
    ]
  }'

Logs 페이지에서 어떤 도구가 제공됐고 어느 것이 호출됐는지 확인할 수 있어요.

에러 로그 DB 저장 끄기

에러 로그를 DB에 저장하고 싶지 않다면 이 설정으로 끌 수 있어요.

general_settings:
  disable_error_logs: True   # Only disable writing error logs to DB, regular spend logs will still be written unless `disable_spend_logs: True`

지출 로그 DB 저장 끄기

지출 로그를 DB에 저장하고 싶지 않다면 이 설정으로 끕니다.

general_settings:
  disable_spend_logs: True   # Disable writing spend logs to DB

오래된 지출 로그 자동 삭제

지출 로그를 저장하고 있다면 DB를 빠르게 유지하기 위해 주기적으로 삭제하는 게 좋아요. 보관 기간은 두 곳에서 설정할 수 있어요.

  • UI(재시작 없음): UI Spend Log Settings → Logs → Settings → Retention Period 설정 → Save.
  • config: proxy_config.yaml에 추가(재시작 필요):
general_settings:
  maximum_spend_logs_retention_period: "7d"  # Delete logs older than 7 days

  # Optional: how often to run cleanup
  maximum_spend_logs_retention_interval: "1d"  # Run once per day

정리(cleanup)는 보관 기간이 설정됐을 때만 돌아가고, 실행마다 문장당 삭제 행 수, 테이블당 문장 수, 전체 실행의 벽시계 예산으로 제한돼요. 기본값은 문장당 1000행, 테이블당 500문장, 5분이에요. 한도를 만난 실행은 거기서 멈추고 다음 틱에서 같은 기준점부터 재개하므로, 큰 백로그도 여러 번의 실행에 걸쳐 자연스럽게 비워져요.

전체 조절 항목과 기본 일정, 대형 테이블에 대한 가이드는 Spend Logs Deletion 문서를 참고하세요.

무엇이 기록되나?

기록되는 필드의 정확한 스키마는 schema.prisma에서 확인할 수 있어요.

더 알아보기