Vitrina Service Resizing v1.0.0

Изображения в нужном

Микросервис для асинхронной обработки изображений. Принимает URL изображения, список размеров и webhook. Конвертирует в оригинальный формат + WebP + AVIF + HEIF для каждого размера. Метрики Prometheus и health checks для Kubernetes.

Что умеет сервис

Мультиформатный вывод
Каждое изображение конвертируется в оригинальный формат, WebP, AVIF и HEIF одновременно — для максимальной совместимости с браузерами.
Гибкий ресайз
В одном запросе можно задать несколько размеров. Режимы вписывания: cover, contain, fill, inside, outside.
Загрузка в S3
Обработанные изображения загружаются в Yandex Object Storage (S3-совместимое) со структурированными ключами.
Webhook-уведомления
По завершении (или при ошибке) отправляет POST-запрос с полным результатом. Автоматические повторные попытки при сбоях.
Асинхронная очередь
Пул воркер-потоков с настраиваемой конкурентностью. Задачи обрабатываются в фоне — без блокировки основного потока.
Наблюдаемость
Встроенные Prometheus-метрики: глубина очереди, перцентили длительности обработки (p50/p95/p99), частота ошибок.

Отправить задачу

POST /api/v1/process/async
curl -X POST http://sis.vitrina.stayday.com/api/v1/process/async \
      -H "X-API-Key: <ваш-ключ>" \
      -H "Content-Type: application/json" \
      -d '{
        "url": "https://example.com/photo.jpg",
        "sizes": [
          { "width": 1200, "height": 800, "fit": "cover" },
          { "width": 400,  "height": 300, "fit": "cover" }
        ],
        "webhook": {
          "url": "https://your-app.com/webhooks/images",
          "data": {
            "object_id": "1",
            "entity_name": "product",
            "entity_id": "42"
          }
        }
      '

Статус сервиса

загрузка…

Метрики в реальном времени

Запросы
Ошибки HTTP
Поставлено в очередь
Выполнено
Ошибок задач
Таймаутов
В очереди
Обрабатывается
Среднее время
мс
p50 (медиана)
мс
p95 время
мс
p99 время
мс
Макс. время
мс
Heap сейчас
МБ
Heap %
%
RSS память
МБ
CPU сейчас
%
CPU среднее
%