Runtime-биллинг: формулы и переменные
Эта страница для точной проверки расчёта: что агрегируется, как применяются лимиты, как получается итоговая сумма.
Нормативная публичная версия методики: Pricing Appendix (Runtime).
1. Канонические переменные (raw)
Заголовок раздела «1. Канонические переменные (raw)»За расчётный период агрегируются счётчики:
invocation_countcpu_usmemory_mb_us(интегралmemory_mb × время)ready_usfrozen_usreserved_usstreaming_us(если включено)websocket_us(если включено)
Все raw-счётчики хранятся без округления.
2. Нормализованные количества (Q)
Заголовок раздела «2. Нормализованные количества (Q)»Q_invocations = SUM(invocation_count)Q_cpu_seconds = SUM(cpu_us) / 1_000_000Q_memory_gb_seconds = SUM(memory_mb_us) / (1024 * 1_000_000)Q_residency_seconds = (SUM(ready_us) + SUM(frozen_us) + SUM(reserved_us)) / 1_000_000Q_streaming_seconds = SUM(streaming_us) / 1_000_000Q_websocket_seconds = SUM(websocket_us) / 1_000_0003. Overage по каждой метрике
Заголовок раздела «3. Overage по каждой метрике»Для любой метрики M:
Q_overage_M = max(0, Q_used_M - Limit_M)Где Limit_M — включённый лимит плана по метрике.
4. Стоимость line item
Заголовок раздела «4. Стоимость line item»Режим per_unit
Заголовок раздела «Режим per_unit»Amount_M = Q_overage_M * Rate_MРежим per_block
Заголовок раздела «Режим per_block»Blocks_M = ceil(Q_overage_M / BlockSize_M)Amount_M = Blocks_M * BlockRate_MИтог по Runtime-части:
RuntimeSubtotal = Σ Amount_M5. Финальная сумма счёта
Заголовок раздела «5. Финальная сумма счёта»InvoiceTotal = RuntimeSubtotal + Adjustments - Credits + TaxesГде:
Adjustments— ручные/системные корректировкиCredits— промокредиты и компенсацииTaxes— налоги по профилю биллинга
6. Политика округлений
Заголовок раздела «6. Политика округлений»- Raw-счётчики: без округления.
Q_*: точность не менее 6 знаков после запятой.- Для
per_block: сначалаceilблоков, потом умножение. - Каждый
Amount_M:round_half_upдо денежной точности. - Общая сумма: после суммирования line items и применений корректировок.
7. Производный индикатор CRU
Заголовок раздела «7. Производный индикатор CRU»CRU может рассчитываться как аналитический индикатор нагрузки (для сравнения проектов/релизов), но обычно не является единственной billable-метрикой.
Пример совместимого индикатора:
CRU_compat = Σ(runtime_seconds_i * configured_vcpu_i * configured_memory_gb_i)8. Мини-пример расчёта
Заголовок раздела «8. Мини-пример расчёта»Пусть за период:
Q_cpu_seconds = 12,800, лимит10,000, ставка0.002за секундуQ_memory_gb_seconds = 41,000, лимит30,000, ставка0.001за GB-sQ_invocations = 2,450,000, лимит2,000,000,per_block1,000 по ставке0.04
Тогда:
CPU: overage = 2,800; amount = 2,800 * 0.002 = 5.60Memory: overage = 11,000; amount = 11,000 * 0.001 = 11.00Invocations: overage = 450,000; blocks = ceil(450,000 / 1,000) = 450; amount = 450 * 0.04 = 18.00RuntimeSubtotal = 34.60Дальше к 34.60 применяются Adjustments, Credits, Taxes по правилам профиля биллинга.