В этом разделе описаны возможности получения сырых логов.
Описание лог-файла
Результирующий лог-файл начинается с заголовочной строки, содержащей перечень полей описанных ниже.
Структура лог-файла после заголовочной строки представляет собой таблицу, каждый столбец которой содержит соответствующее поле. Поля следуют друг за другом слева направо и разделены символом горизонтальной табуляции. Каждая строка лог-файла соответствует отдельному запросу, строки разделены символом перевода строки.
Название поля | Описание поля | Пример |
---|---|---|
timestamp | Дата и время в формате UNIX timestamp | 1417135813.178 |
remote_addr | IP-адрес пользователя | 81.19.133.15 |
remote_user | (служебное поле) | - |
time_local | Дата и время в читаемом формате | 2019-09-16 12:00:16+0000 |
request | Путь к файлу или видео потоку | /live/smil:chanel1.smil/m_b1600000_126952.ts |
status | Статус ответа | 200 |
body_bytes_sent | Объём отправленных байт (без заголовка) | 80840 |
out_bytes | Объём отправленных байт (с заголовком) | 81076 |
referrer | Реферер, адрес источника | http://www.site1.ru/ |
useragent | Агент/браузер веб-пользователя | Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36 |
http_x_forwarded_for | Содержимое HTTP-заголовка X-Forwarded-For, может содержать оригинальные IP-адреса пользователя | 192.168.7.114, 192.168.0.205, 81.19.133.15 |
host | Имя хоста запроса | site1.cdn.ru |
torso_id | (служебное поле) | - |
duration | Длительность запроса или части продолжающегося запроса в секундах | 0.616 |
upstream_response_time | Время ответа ориджина или промежуточного узла в секундах. Времена нескольких ответов разделяются запятыми | 0.021 |
upstream_status | Статус ответа ориджина/промежуточного узла (если запрос отдавался не из кэша раздающего узла). Статусы нескольких ответов разделяются запятыми | 200 |
country | Код страны по ISO_3166-1 | RU |
service | Тип услуги (static — "Ускорение загрузки веб контента", media — "Онлайн трансляции и видео по запросу") | media |
cache_status | Кэш-статус запроса (HIT - ответ был отдан из кэша CDN, MISS - запрос был отправлен на ориджин) | HIT |
logtype | (служебное поле) | - |
custom_field | (опционально) некоторые дополнительные значения |
Проверка наличия логов через API
Данный вызов предназначен для проверки существования логов.
Запрос для проверки наличия логов за определённый интервал времени:
URL: https://apicdn.rcloud.ru/app/logs/v1/accounts/<your_account_name>/exists?startdate=<start_date>&enddate=<end_date>
- Тип запроса: GET
- Заголовки: CDN-AUTH-TOKEN
- Обязательные GET-параметры:
- startdate — дата и время начала интервала в формате
YYYY-MM-DDTHH:mm:ssZ
- enddate — дата и время окончания интервала
YYYY-MM-DDTHH:mm:ssZ
- startdate — дата и время начала интервала в формате
- Тип данных ответа: JSON Object или String в случае ошибки
Код ответа | Данные ответа | Формат ответа | Описание |
---|---|---|---|
200 | Информация о наличии логов за определенный интервал времени | JSON | ОК |
400 | None | None | Плохой запрос |
401 | None | None | Нет доступа |
404 | None | None | Не найдено |
500 | None | None | Внутренняя ошибка сервера |
503 | None | None | Сервис недоступен |
Пример запроса
curl -H "CDN-AUTH-TOKEN: $TOKEN" \ 'https://apicdn.rcloud.ru/app/logs/v1/accounts/paejgjuv/exists?startdate=2019-08-01T00:00:00Z&enddate=2019-09-01T00:00:00Z'
Пример успешного ответа
{ "account": "paejgjuv", "startdate": "2019-08-01T00:00:00+0000", "enddate": "2019-09-01T00:00:00+0000", "exists": true }
Пример неуспешного ответа
No startdate or enddate in query
Описание полей из тела ответа:
- account - имя аккаунта;
- startdate - дата и время начала интервала;
- enddate - дата и время окончания интервала;
- exists - статус наличия логов с заданными параметрами, true — наличие минимум одной строки, иначе — false.
Получение лог-файла через API
Запрос к API для получения лог-файла за определённый интервал времени в виде gzip-потока:
URL: https://apicdn.rcloud.ru/app/logs/v1/accounts/<your_account_name>/get?startdate=<start_date>&enddate=<end_date>
- Тип запроса: GET
- Заголовки: CDN-AUTH-TOKEN
- Обязательные GET-параметры:
- startdate — дата и время начала интервала в формате
YYYY-MM-DDTHH:mm:ssZ
- enddate — дата и время окончания интервала
YYYY-MM-DDTHH:mm:ssZ
- startdate — дата и время начала интервала в формате
- Тип данных ответа: gzip-поток
Код ответа | Данные ответа | Формат ответа | Описание |
---|---|---|---|
200 | Логи за определенный интервал времени | gzip-поток | ОК |
400 | None | None | Плохой запрос |
401 | None | None | Нет доступа |
404 | None | None | Не найдено |
500 | None | None | Внутренняя ошибка сервера |
503 | None | None | Сервис недоступен |
Пример запроса
curl -H "CDN-AUTH-TOKEN: $TOKEN" \ 'https://apicdn.rcloud.ru/app/logs/v1/accounts/paejgjuv/get?startdate=2019-08-01T00:00:00Z&enddate=2019-09-01T00:00:00Z'
В теле ответе будет передан лог за временной интервал, указанный в аргументах в виде gzip-потока. Временной интервал соответствует правилу: startdate <= logs_time_interval < enddate. Подробное описание результирующего файла представлено выше.