Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Практические руководства
    • Все руководства
    • Организация сине-зеленого и канареечного развертывания версий веб-сервиса
    • Автоматизация сборки образов с помощью Jenkins и Packer
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Тестирование приложений с помощью GitLab
    • Создание тестовых ВМ через GitLab CI
    • Интеграция GitLab с Tracker
    • Высокопроизводительные вычисления (HPC) на прерываемых ВМ
    • Нагрузочное тестирование gRPC-сервиса
    • HTTPS-тест с постоянной нагрузкой с помощью Phantom
    • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
    • HTTP-тест с нагрузкой по сценарию с помощью Pandora
    • Нагрузочное тестирование с нескольких агентов
    • Запуск внешних агентов для нагрузочного тестирования
    • Нагрузочный тест с помощью JMeter
    • Получение статистики запросов к объектам Object Storage с использованием Query
    • Получение количества запросов к объектам Object Storage
    • Вызов нагрузочного тестирования из GitLab CI
    • Развертывание GitLab Runner на виртуальной машине Compute Cloud
    • Сравнение результатов нагрузочных тестов

В этой статье:

  • Перед началом работы
  • Получение статистики запросов
  1. Разработка и тестирование
  2. Получение количества запросов к объектам Object Storage

Получение количества запросов к объектам Yandex Object Storage

Статья создана
Yandex Cloud
Обновлена 1 апреля 2025 г.
  • Перед началом работы
  • Получение статистики запросов

Получите статистику запросов к объектам Object Storage с помощью языка запросов S3 Select.

Примечание

Чтобы получить информацию о запросах к объектам, включите механизм логирования.

Перед началом работыПеред началом работы

  1. Установите и настройте интерфейс командной строки AWS CLI.
  2. Скачайте и установите утилиту jq.

Получение статистики запросовПолучение статистики запросов

Bash
  1. Выполните запрос в Object Storage и сохраните результат выполнения в файл:

    1. Для удобства работы сохраните:

      • Имя бакета, в котором хранится объект с логами, в переменную $bucket:

        bucket=<имя_бакета>
        
      • Ключ объекта с логами в переменную $key:

        key=<ключ_объекта>
        
      • Выражение для запроса данных объекта на языке S3 Select в переменную $query:

        query='<выражение_для_запроса>'
        

        Примеры выражений:

        • Поиск запросов по коду ответа:

          SELECT "timestamp", request_id, handler, object_key, status, request_time
          FROM S3Object
          WHERE status >= 400
          
        • Поиск долго обрабатываемых запросов:

          SELECT "timestamp", request_id, handler, object_key, status, request_time
          FROM S3Object
          WHERE request_time >= 1000
          
        • Среднее время обработки запросов (с использованием агрегатной функции AVG):

          SELECT AVG(request_time) AS "avg" FROM S3Object
          
    2. Выполните команду:

      aws --endpoint https://storage.yandexcloud.net s3api select-object-content \
        --bucket $bucket \
        --key $key \
        --expression "$query" \
        --expression-type 'SQL' \
        --input-serialization 'JSON={Type=LINES}' \
        --output-serialization 'JSON={}' \
        "output.json"
      
  2. Если в запросе не использовались агрегатные функции, выведите количество запросов для каждого ключа объекта. Для этого выполните агрегирующий запрос при помощи утилиты jq:

    jq .object_key output.json | uniq -c | sort -nr
    

    Результат:

    9 "path/logs/2021-02-10-22-02-25-199f57b5-5601-3210-5d9a-1apl1e5z6b4f"
    7 "path/logs/2021-01-28-11-40-11-580g57b5-9903-1108-6a7a-1ghj1e0e8b0f"
    3 "path/logs/2020-12-09-10-05-31-123f57b5-1853-4120-8d7a-5bcc1e9e9b4f"
    1 "path/logs/2020-12-09-08-11-10-123f57b5-1773-9310-1d2a-5bcc1e9e9b4f"
    1 "path/logs/2020-12-01-14-42-11-493f57b5-1093-4120-8d7a-5bcc1e9e9b4f"
    

Была ли статья полезна?

Предыдущая
Получение статистики запросов к объектам Object Storage с использованием Query
Следующая
Вызов нагрузочного тестирования из GitLab CI
Проект Яндекса
© 2025 ООО «Яндекс.Облако»