Перейти к содержимому

Методика расчёта

Этот документ фиксирует публичные правила расчёта стоимости платформы.

  • Модель: PLATFORM_PRICING_V2
  • Статус: Public / normative
  • Дата вступления версии: 4 марта 2026
  • Применение: все начисления после даты вступления версии
  • Scope: ONREZA Compute, ONREZA Functions, статические сайты и CDN, управляемый PostgreSQL и время сборки.

Эта методика задаёт:

  • какие метрики тарифицируются по каждому слою;
  • какие события не тарифицируются;
  • как считаются usage credit, extra usage budget и line items;
  • как применяются округления и итоговая сумма.

Документ не раскрывает внутреннюю инфраструктуру и не описывает реализацию metering pipeline.

  • Invocation — пользовательское выполнение Runtime по запросу
  • Compute CU — единая вычислительная метрика. 1 CU соответствует 1 vCPU + 4 ГБ RAM
  • ONREZA Functions beta — короткие handlers и middleware с одним public BFU-hour meter. Защитные лимиты плана ограничивают выполнение.
  • Egress GB — объём данных, доставленных пользователю
  • Storage GB-Month — хранение артефактов деплоя
  • Image Transforms — трансформации изображений
  • Origin Fetch GB — запросы к origin при cache miss
  • CU Seconds — CU-weighted compute time (cu_size × active_time_seconds)
  • Storage GB-Month — byte-seconds интеграл хранилища за расчётный период; peak/end storage остаются diagnostic/control values
  • Data Transfer GB — сетевой трафик между приложением и базой
  • Database Months — интеграл времени активности баз данных за период
  • Branch Months — интеграл времени активности веток за период

3. Тарификационные и диагностические метрики

Заголовок раздела «3. Тарификационные и диагностические метрики»

Наличие метрики в каталоге не означает отдельное начисление. Диагностические метрики раскрывают состав потребления или применяются для защитных лимитов; ненулевая ставка и итоговый line item определяются текущим тарифом.

Ключ Единица
process_compute_cu_seconds CU-seconds
Ключ Единица
onreza_functions_bfu_seconds BFU-seconds
Ключ Единица
static_egress_gb GB
static_storage_gb_month GB-month
static_image_transforms count
static_origin_fetch_gb GB
Ключ Единица
compute_cu_seconds CU-seconds
storage_gb_month GB-month
transfer_gb GB
database_months database-month
branch_months branch-month
Ключ Единица
build_minutes minutes
  • Фактическое ресурсное потребление ONREZA Compute в CU, включая CPU, память и активное удержание процесса; количество запросов не образует отдельное начисление
  • ONREZA Functions BFU: длительность, память, discounted host idle, response/egress, invocations и cold starts
  • Доставка данных пользователю, хранение статических файлов и трансформация изображений
  • CU-weighted compute, хранилище, трафик и дополнительные ресурсы управляемого PostgreSQL
  • Запросы, отклонённые до запуска пользовательского кода
  • Внутренний service-to-service трафик платформы
  • Health-check и telemetry вызовы
  • Кэш-хиты, не создающие origin egress
  • Системные ретраи без пользовательского ответа
  • Хранение, чтение и запись в KV-хранилище
Q_cpu_seconds = SUM(process_cpu_us) / 1_000_000
Q_memory_gb_seconds = SUM(process_memory_mb_us) / (1024 × 1_000_000)
Q_compute_seconds = SUM(process_active_us) / 1_000_000
Q_process_cu_seconds =
max(Q_cpu_seconds, Q_memory_gb_seconds / 4, Q_compute_seconds × 0.25)

process_active_us не умножается на число параллельных запросов внутри одной sandbox generation. Одновременно живые generations при blue-green replacement являются отдельными allocations и учитываются независимо.

Q_onreza_function_invocations = SUM(onreza_function_invocation_count)
Q_onreza_function_duration_seconds = SUM(onreza_function_duration_us) / 1_000_000
Q_onreza_function_memory_bfu_seconds = SUM(onreza_function_memory_mb_us) / (128 × 1_000_000)
Q_onreza_function_idle_bfu_seconds = SUM(onreza_function_host_idle_mb_us) / (128 × 1_000_000) × 0.25
Q_onreza_function_response_gb = SUM(onreza_function_response_bytes) / (1024³)
Q_onreza_function_egress_gb = SUM(onreza_function_egress_bytes) / (1024³)
Q_onreza_function_bfu_seconds =
max(Q_onreza_function_duration_seconds, Q_onreza_function_memory_bfu_seconds)
+ Q_onreza_function_idle_bfu_seconds
+ Q_onreza_function_invocations × 0.001
+ SUM(onreza_function_cold_start_count) × 0.01
+ (Q_onreza_function_response_gb + Q_onreza_function_egress_gb) × 10

onreza_functions_bfu_seconds тарифицируется блоками по 1 BFU-hour (BlockSize = 3600 BFU-секунд). Per-function attribution counters остаются diagnostic/read-model surface; billing source of truth — workspace usage counter.

Q_static_egress_gb = SUM(static_egress_bytes) / (1024³)
byte_seconds = Σ(artifact_size_bytes × overlap_seconds_in_period)
Q_static_storage_gb_month = byte_seconds / (1024³ × 2_592_000)
Q_static_image_transforms = SUM(static_image_transform_count)
Q_static_origin_fetch_gb = SUM(static_origin_fetch_bytes) / (1024³)

Примечание: static_storage_gb_month считается как аналитический byte-seconds интеграл по жизненному циклу артефактов.

Q_kaiki_cu_seconds = SUM(kaiki_cu_seconds)
Q_kaiki_cu_hours = Q_kaiki_cu_seconds / 3600
Q_kaiki_storage_gb_month = SUM(kaiki_storage_byte_seconds) / (1024³ × 2_592_000)
Q_kaiki_data_transfer_gb = SUM(kaiki_data_transfer_bytes) / (1024³)
Q_kaiki_database_months = SUM(database_active_seconds) / 2_592_000
Q_kaiki_branch_months = SUM(branch_active_seconds) / 2_592_000

Примечание: compute_cu_seconds = cu_size × active_time_seconds и тарифицируется блоками по 3 600 CU-секунд (1 CU-час). Database-month и branch-month нормализуются по коммерческому месяцу в 30 дней. Storage тарифицируется как GB-month по byte-seconds; peak/end storage используются для диагностики и защитных лимитов, но не как billable quantity. Стоимость storage включает written_data (WAL). На текущих самообслуживаемых тарифах ставки за database-month и branch-month равны нулю; в Enterprise их определяет индивидуальный договор.

build_overlap_seconds_i = overlap_seconds(build_i_started_at..build_i_finished_at, period_start..period_end)
Q_build_minutes = ceil( SUM(build_overlap_seconds_i) / 60 )

Примечание: kv_storage_bytes используется только как показатель для защитного лимита объёма и диагностики; KV storage/read/write не являются billable V1 meters. Примечание: build_minutes считается по пересечению build-window с расчётным периодом; ceil применяется один раз к суммарной длительности периода.

Для любой billable-метрики M quantity считается с первой единицы. Limit_M не вычитается из quantity для экономического расчёта: это reference/control value и защитный порог.

GrossLineAmount_M = charge(Q_used_M, Rate_M)
GrossUsage = Σ GrossLineAmount_M
IncludedCreditApplied = min(GrossUsage, IncludedUsageCredit)
ExtraUsage = max(0, GrossUsage - IncludedUsageCredit)
BlockedUnapprovedUsage = max(0, ExtraUsage - ExtraUsageBudget)
GrossLineAmount_M = Q_used_M × Rate_M
Blocks_M = ceil(Q_used_M / BlockSize_M)
GrossLineAmount_M = Blocks_M × BlockRate_M
Subtotal = ExtraUsage (после применения included usage credit)

Каждый gross line item содержит layer и metric теги для идентификации слоя и метрики. Для Hobby paid extra usage нет: когда GrossUsage >= IncludedUsageCredit, новые billable-операции блокируются. Для Pro paid usage допускается только в пределах ExtraUsageBudget.

  1. Usage и промежуточные quantity считаются без раннего округления
  2. Для per_block сначала применяется ceil количества блоков
  3. Денежные значения line item округляются round_half_up до денежной точности
  4. Сумма формируется из line items после их округления
InvoiceTotal = Subtotal + Adjustments - Credits

Где:

  • Subtotal — сумма всех line items ONREZA Compute, ONREZA Functions, статических сайтов, управляемого PostgreSQL и сборок
  • Adjustments — корректировки начислений
  • Credits — промо/компенсационные кредиты

ONREZA работает на УСН, поэтому НДС не выделяется: в инвойсах и УПД указывается «Без налога (НДС)». Для плательщиков типа ИП и ЮЛ после оплаты автоматически формируется УПД с составом начислений из line items. Подробнее — в разделе Оплата и реквизиты.

Каждый инвойс содержит diagnostics-блок:

  • quantities — нормализованные значения по каждой метрике
  • grossUsage — usage до применения included credit
  • includedUsageCreditApplied — применённый included usage credit
  • extraUsage — usage сверх included credit
  • limits — действующие лимиты и защитные пороги
  • Лимиты ограничивают максимальные extra usage расходы за период
  • При достижении порога могут применяться защитные ограничения
  • Платформа автоматически детектирует резкие аномалии потребления по каждому слою
  • Полный перечень ограничений: Лимиты и квоты
  • Эта страница описывает методику расчёта
  • Текущие ставки, usage credit и лимиты публикуются на Pricing и в биллинге workspace

При расхождении источников:

  1. Индивидуальные коммерческие условия (если есть)
  2. Выставленный инвойс с детализацией line items за конкретный период
  3. Публичная pricing-страница и активные лимиты workspace
  4. Этот appendix как нормативная методика расчёта

Изменения модели публикуются как новая версия (PLATFORM_PRICING_V*) с датой вступления. Для каждой версии фиксируются:

  • список billable-метрик по слоям
  • формулы usage credit и extra usage
  • политика округлений
  • правила применения line items

Ретроактивное изменение уже выставленных и закрытых инвойсов не применяется, кроме случаев явной ошибки начисления.

  1. Возьмите usage по каждой метрике каждого слоя за расчётный период
  2. Примените per_unit или per_block тариф к quantity с первой единицы
  3. Сложите gross line items
  4. Примените included usage credit и extra usage budget
  5. Проверьте округления по правилам раздела 7 и примените корректировки/кредиты/налоги

Все нормативные формулы находятся в разделах 5–8 этого документа.