본문으로 건너뛰기

지출 한도

워크스페이스 월 지출 한도로 CI와 에이전트가 쓰는 금액에 상한을 두고, 조직 티어의 동시 실행과 월 한도를 확인하기

지출을 막는 장치는 세 겹입니다. 선불 잔액, 워크스페이스마다 정하는 월 지출 한도, 조직 티어의 월 사용 한도입니다. 항상 셋 중 가장 낮은 남은 금액이 적용됩니다

잔액

  • 잡을 시작하려면 사용 가능 잔액이 1분 요금 이상이어야 합니다. 아니면 402 insufficient_credit
  • 실행 중 잔액이 바닥나면 다음 분으로 넘어가기 전에 잡을 멈추고 credit_exhausted로 끝냅니다
  • 사용 가능 잔액은 살아 있는 크레딧에서 실행 중 잡이 이미 쓴 금액을 뺀 값입니다. 대기 중인 잡은 잔액을 잡아 두지 않습니다
  • 충전 건마다 1년 뒤 만료되고, 만료가 빠른 것부터 씁니다. xenocast credits의 만료 예정 줄과 콘솔 결제 화면에서 확인합니다

워크스페이스 월 지출 한도

워크스페이스마다 이번 달(UTC) 지출 상한을 정합니다. 에이전트용 키, CI용 키를 워크스페이스로 나눠 두면 각각 다른 상한을 둘 수 있습니다

콘솔에서 정하기

  1. 설정 → 워크스페이스(/console/settings/workspaces)에서 워크스페이스를 엽니다
  2. 월 지출 한도에서 한도 정하기를 고르고 US$ 정수를 넣거나, 한도 없음을 고릅니다
  3. 저장합니다. 소유자와 관리자만 바꿀 수 있습니다

분석 → 한도(/console/usage/limits)의 워크스페이스 지출 한도 표에서 모든 워크스페이스의 이번 달 지출과 한도, 사용률을 한눈에 보고 한도 바꾸기로 이동합니다

동작

  • 이번 달 지출이 한도에 닿으면 그 워크스페이스의 새 잡은 402 workspace_spend_limit로 거절됩니다. 실행 중인 잡은 끝까지 돕니다
  • 다음 달 1일 00:00 UTC에 다시 열립니다. 한도를 올려도 바로 열립니다
  • 지출이 한도의 75%, 90%, 100%에 이르면 소유자와 관리자에게 메일이 갑니다
  • CLI와 MCP는 이 오류를 종료 코드 3과 user_message로 돌려줍니다
워크스페이스의 이번 달 지출 한도에 닿아 잡을 시작하지 않았습니다 (사용 $50.0000 / 한도 $50.0000). 소유자나 관리자가 콘솔에서 한도를 올릴 수 있습니다. 콘솔: https://xenoci.com/console/billing

API

PATCH /v1/organizations/{org_id}/workspaces/{workspace_id}에 monthly_limit_usd(정수 USD, null이면 해제)를 보냅니다. 콘솔 세션 전용이며 API 키로는 바꿀 수 없습니다

조직 티어 한도

티어는 조직 단위이고 누적 충전액에 따라 자동으로 오르며 내려가지 않습니다. 티어마다 두 한도가 있습니다

한도넘으면
동시 실행 잡 수거절하지 않고 대기열(queued, queued_reason = tier_concurrency_limit)에 넣습니다. 조직 대기열 상한까지 차면 429 tier_concurrency_limit과 retry_after_s
월 사용 한도(USD, UTC 달력 월)새 잡만 402 tier_monthly_limit, 실행 중인 잡은 끝까지. 다음 달 1일 00:00 UTC 또는 티어가 오르면 다시 열림

지금 티어와 한도, 사용량은 분석 → 한도(/console/usage/limits)에서 봅니다. 동시 실행 잡, 대기열, 이번 달 지출, API 요청 수의 사용률이 나오고, 다음 티어에 필요한 누적 충전액이 함께 표시됩니다. 표보다 높은 한도가 필요하면 그 화면의 티어 상향 요청으로 문의합니다

API로는 GET /v1/limits(현재 사용량 포함), GET /v1/tiers(티어 표), GET /v1/organizations/{org_id}/tier(조직의 티어)를 읽습니다. 모두 read 키로 됩니다

curl -sS https://xenoci.com/api/runner/v1/limits \
  -H "Authorization: Bearer $XENOCI_API_KEY" -H 'XenoCI-Error-Format: 2'

응답의 주요 필드

필드설명
tier, tier_name지금 티어
concurrency.limit, concurrency.running동시 실행 한도와 지금 실행 중인 잡 수
queue.limit, queue.queued대기열 상한과 대기 중인 잡 수
monthly.limit_usd, monthly.used_usd, monthly.resets_at월 한도, 이번 달 사용액, 초기화 시각
workspaces[]키의 워크스페이스(콘솔은 범위 안 전체)의 월 한도와 이번 달 지출
api_requests요청 속도 감시 창과 기준. enforced: false이면 아직 거절하지 않고 급증 메일만 보냄
next_tier다음 티어의 조건과 한도

에이전트와 CI에 권하는 설정

  1. 에이전트용 워크스페이스와 CI용 워크스페이스를 따로 만들고 키도 따로 발급합니다
  2. 각 워크스페이스에 월 지출 한도를 둡니다. 한도에 닿으면 새 잡만 멈추므로 실행 중인 빌드는 깨지지 않습니다
  3. timeout_minutes를 잡 성격에 맞게 줄입니다. 기본 60분, 액션 기본 30분입니다
  4. 알림에서 잔액 부족과 워크스페이스 한도 메일을 켜 둡니다

다음 단계