Процедура запроса

Процедуру запроса к AppMetrica Logs API можно разделить на два этапа:

Процедура запроса

Запрос на подготовку данных

AppMetrica Logs API принимает запрос и помещает его в очередь для обработки. Если запрос обработан корректно, AppMetrica подготавливает файл для выгрузки. В этом случае API возвращает HTTP-статус 202 Accepted. Если запрос вызвал ошибку, возвращается подходящий код ответа, а тело ответа содержит описание ошибки.

Примечание

Запросы в очереди обрабатываются последовательно (каждый последующий выполняются строго после завершения предыдущего).

Во время выполнения запроса и подготовки файла все идентичные запросы (с такими же параметрами) вернут HTTP-статус 202 Accepted.

Пример запроса:

GET /logs/v1/export/installations.json HTTP/1.1
Host: api.appmetrica.yandex.com
Authorization: OAuth <your_token>

где <your_token> — это OAuth-токен, который можно получить по инструкции.

Пример ответа:

HTTP/1.1 202 Accepted
Content-Type: text/plain

Wait for result

Чтобы получать данные в сжатом виде, необходимо в запросе передать HTTP заголовок Accept-Encoding: gzip.

Запрос на выгрузку данных

Запрос на выгрузку данных идентичен запросу на подготовку. Если запрос на подготовку файла завершен, при следующем идентичном запросе Logs API возвращает HTTP-статус 200 OK. Файл с результатом запроса готов к загрузке.

Файл доступен для загрузки в течение 24 часов по URL первоначального запроса. При повторном запросе по истечении 24 часов, запрос помещается в очередь для обработки и формирования нового файла.

Вы можете вручную запросить повторную обработку запроса с помощью HTTP заголовка Cache-Control:

  • Для формирования нового файла отправить при запросе заголовок Cache-Control: no-cache.
  • Для скачивания файла, который сформирован не более чем N секунд назад, отправить при запросе заголовок Cache-Control: max-age=N. Если файл был создан более чем N секунд назад, AppMetrica формирует новый файл.
  • Для скачивания последнего сформированного файла, если он существует, не отправлять при запросе заголовок Cache-Control.

Как повысить доступность данных

Чтобы повысить доступность выгрузок, рекомендуем во всех запросах к Logs API указывать skip_unavailable_shards=true. Этот параметр позволяет получить данные, даже если часть шардов недоступна. По умолчанию он равен false.

Если все шарды доступны, выгрузка будет полной. Если часть шардов недоступна, Logs API вернет данные только с доступных шардов, и результат может содержать не все записи.

Чтобы отслеживать полноту выгрузок, сохраняйте параметры каждого запроса и HTTP-заголовки ответа при скачивании готового файла. Заголовок Shards-Unavailable содержит процент недоступных шардов:

  • Если значение равно 0, все шарды были доступны.
  • Если значение больше 0, сохраните отметку о неполной выгрузке, чтобы повторить запрос позже.

Проверить текущую доступность Logs API можно с помощью запроса:

GET /management/v1/logsapi/status

Если поле logs_api_availability_status равно disabled, повторите проверку позже. Когда статус изменится на enabled, повторите запрос на выгрузку с исходными параметрами. Убедитесь, что в ответе с готовым файлом Shards-Unavailable равен 0, и замените ранее полученные данные новой выгрузкой, чтобы избежать дублирования.

Выгрузка данных в интерфейсе AppMetrica

Вы можете выгрузить данные в файл в интерфейсе AppMetrica, подробнее см. Выгрузка данных в файл.

Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.

Написать в службу поддержки Предложить улучшение для документации
Написать в Telegram Написать в MAX
Предыдущая
Следующая