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

Использование ресурсов

ONREZA предоставляет инструменты для мониторинга использования ресурсов и оптимизации затрат.

Исходящий трафик с платформы:

  • HTTP ответы
  • Static assets
  • Edge function responses

Время выполнения сборок:

  • Начало: запуск build команды
  • Конец: завершение (успех/ошибка)

Количество запросов к edge functions:

  • SSR страницы
  • API routes
  • Middleware

Время выполнения серверного кода (SSR + Cloud Functions). 1 CU = 10 миллисекунд CPU time. Подробнее: Compute Units.

  • Storage — текущий размер всех D1 баз данных в workspace (измеряется ежедневно)
  • Rows Read — количество прочитанных строк за период
  • Rows Written — количество записанных строк за период
  • Storage — текущий размер всех KV данных в workspace (измеряется ежедневно)

Workspace → Settings → Usage

Доступные периоды:

  • Текущий месяц
  • Последние 3 месяца
  • Произвольный период (до 1 года)

Графики:

  • Bandwidth по дням
  • Build time по дням
  • Requests по дням
  • Compute Units по дням
  • D1 Storage и операции
  • KV Storage

Таблица по проектам:

  • Использование каждого проекта
  • Процент от общего лимита
  • Тренд (рост/снижение)

На странице Usage отображается прогресс-бар оверадж-расходов относительно Hard Cap:

  • Зелёный — расходы в пределах нормы
  • Жёлтый — приближение к лимиту (>80%)
  • Красный — лимит превышен, операции заблокированы

Project → Settings → Usage

Метрики конкретного проекта:

  • Bandwidth
  • Build time
  • Edge requests
  • Compute Units
  • Deployments count

Настраиваются в Workspace → Settings → Notifications:

  • 50% — лёгкое предупреждение
  • 80% — рекомендация по оптимизации
  • 100% — критическое уведомление

Настройте webhook в Workspace → Settings → Notifications для получения уведомлений о потреблении.

Payload:

{
"event": "usage.warning",
"workspace": "my-workspace",
"metric": "bandwidth",
"current": "80 GB",
"limit": "100 GB",
"percentage": 80,
"timestamp": "2024-01-15T10:30:00Z"
}
ОптимизацияЭкономияСложность
Включить Brotli/Gzip60-80%Просто
Настроить кэширование50-70%Просто
Оптимизировать изображения30-50%Средне
Использовать CDN properly20-40%Просто

Brotli/Gzip:

astro.config.mjs
export default defineConfig({
compressHTML: true,
build: {
format: 'file',
},
});

Кэширование:

Добавьте заголовки кэширования в Project → Settings → Routing Rules → Headers:

PatternHeaderValue
/_astro/*Cache-Controlpublic, max-age=31536000, immutable

Оптимизация изображений:

<!-- Используйте Image компонент -->
import { Image } from 'astro:assets';
<Image src={heroImage} width={800} height={400} alt="Hero" />
ОптимизацияЭкономияСложность
Кэширование dependencies50-70%Просто
Parallel builds30-50%Средне
Оптимизация assets20-30%Средне
Уменьшение bundle size10-20%Сложно

Кэширование dependencies:

ONREZA автоматически кэширует node_modules между сборками при использовании lock-файлов.

Ускорение сборки:

package.json
{
"scripts": {
"build": "astro build --parallel"
}
}
ОптимизацияЭкономияСложность
ISR (Incremental Static Regeneration)60-90%Средне
Edge кэширование50-70%Просто
Static generation100%Зависит от проекта

ISR: настраивается через правила роутинга — добавь revalidate в маршрут манифеста или через UI в настройках деплоя.

ОптимизацияЭкономияСложность
Cleanup старых деплоев30-50%Просто
TTL для KV записей40-60%Просто
Database индексация10-20%Средне

Автоматическая очистка:

В Project → Settings → General настройте “Retain deployments”:

  • Last 10 (экономия ~70%)
  • Last 30
  • All (по умолчанию)

TTL для KV:

// Кэш с TTL
await KV.put('key', value, { expirationTtl: 3600 });

Dashboard показывает:

  • Рост/снижение использования по месяцам
  • Сезонные паттерны
  • Проекты с аномальным потреблением

Dashboard показывает прогноз использования до конца текущего месяца на основе трендов (доступно на Pro плане). Прогнозы рассчитываются для:

  • Bandwidth
  • Build time
  • Compute Units
  • D1 Operations
  • Оверадж-стоимость

Если прогноз показывает превышение Hard Cap, вы увидите предупреждение с рекомендациями.

  1. Проверьте Project → Settings → Usage по проектам
  2. Проверьте access logs на аномалии
  3. Проверьте что нет ботов/скраперов
  4. Проверьте размер assets

Метрики в разных системах могут незначительно отличаться из-за:

  • Разных методов агрегации
  • Времени задержки обработки
  • Исключения internal requests

Ожидаемая разница: < 5%

Если уведомление о превышении лимита пришло ошибочно:

  1. Проверьте текущее использование в dashboard
  2. Убедитесь что выбран правильный период
  3. Обратитесь в поддержку если проблема сохраняется