지출 한도
워크스페이스 월 지출 한도로 CI와 에이전트가 쓰는 금액에 상한을 두고, 조직 티어의 동시 실행과 월 한도를 확인하기
지출을 막는 장치는 세 겹입니다. 선불 잔액, 워크스페이스마다 정하는 월 지출 한도, 조직 티어의 월 사용 한도입니다. 항상 셋 중 가장 낮은 남은 금액이 적용됩니다
잔액
- 잡을 시작하려면 사용 가능 잔액이 1분 요금 이상이어야 합니다. 아니면
402 insufficient_credit - 실행 중 잔액이 바닥나면 다음 분으로 넘어가기 전에 잡을 멈추고
credit_exhausted로 끝냅니다 - 사용 가능 잔액은 살아 있는 크레딧에서 실행 중 잡이 이미 쓴 금액을 뺀 값입니다. 대기 중인 잡은 잔액을 잡아 두지 않습니다
- 충전 건마다 1년 뒤 만료되고, 만료가 빠른 것부터 씁니다.
xenocast credits의만료 예정줄과 콘솔 결제 화면에서 확인합니다
워크스페이스 월 지출 한도
워크스페이스마다 이번 달(UTC) 지출 상한을 정합니다. 에이전트용 키, CI용 키를 워크스페이스로 나눠 두면 각각 다른 상한을 둘 수 있습니다
콘솔에서 정하기
- 설정 → 워크스페이스(
/console/settings/workspaces)에서 워크스페이스를 엽니다 - 월 지출 한도에서 한도 정하기를 고르고 US$ 정수를 넣거나, 한도 없음을 고릅니다
- 저장합니다. 소유자와 관리자만 바꿀 수 있습니다
분석 → 한도(/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/billingAPI
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에 권하는 설정
- 에이전트용 워크스페이스와 CI용 워크스페이스를 따로 만들고 키도 따로 발급합니다
- 각 워크스페이스에 월 지출 한도를 둡니다. 한도에 닿으면 새 잡만 멈추므로 실행 중인 빌드는 깨지지 않습니다
timeout_minutes를 잡 성격에 맞게 줄입니다. 기본 60분, 액션 기본 30분입니다- 알림에서 잔액 부족과 워크스페이스 한도 메일을 켜 둡니다