Модуль сбора статистики позволяет собирать показатели одной из основных метрик по заданным условиям, фильтровать и агрегировать собранные данные. Это позволяет отслеживать метрики, которых нет в общей статистике по трафику.
Чтобы начать собирать статистику, необходимо создать сборщик статистики, который определяет правила агрегации и фильтрации данных.
Основной показатель
Основной показатель — метрика, по которой будет строиться статистика. Доступны метрики:
- количество запросов
- время до первого байта (TTFB)
- объем трафика
Параметры группировки
Собранные значения группируются по одному из 11 параметров группировки с использованием функции агрегации.
Группировка динамических URL
Для параметра URL доступна опция агрегации группировать динамические URL, которая заменяет цифры, hash и UUID (если они занимают целый сегмент URL) на плейсхолдеры.
Пример:
example.com/users/123e4567-e89b-12d3-a456-426655440000
→
example.com/users/{uuid}
------------------------------------------------------
example.com/goods/1341231/buy
→
example.com/goods/{number}/buy
------------------------------------------------------
example.com//1341231/buy
→
example.com/goods/{number}/buy
Выборка
Чтобы ограничить объем собираемых данных, в каждом сборщике статистики указывается принцип выборки. Он определяет, будет сборщик сохранять записи с наибольшим или наименьшим значением основной метрики, а также задает количество сохраняемых записей.
Например, если в сборщике метрики TTFB задана выборка 10 наименьших, каждый период обновления статистики (2 раза в минуту) будут сохранены 10 записей с наименьшим значением TTFB.
Фильтрация
Фильтрация — необязательный шаг, который происходит еще на этапе сбора данных. Каждая запись в «сырой» статистике проверяется по заданными условиями и, если не соответствует им, отбрасывается и не учитывается в итоговой статистике. Это позволяет собирать статистику точечно — например, только по запросам на конкретный URL из конкретной страны.
В настройках фильтрации можно использовать условия из нескольких параметров (логическое И) и добавлять несколько условий (логическое ИЛИ).
Условие состоит из параметра (1), оператора (2) и значения параметра (3).
Каждое условие сверяет параметр запроса с его значением используя оператор. Если условие правдиво (оператор возвращает true), запрос будет учитываться в статистике.
Кнопкой Добавить AND можно добавить еще один параметр к условию. В статистике будут учтены только те запросы, для которых выполнены все параметры в условии (логическое И).
Кнопка Добавить OR создает новое условие (группу параметров). Когда в сборщике есть несколько условий, в статистике будут учтены только те запросы, для которых правдивы все параметры из хотя бы одного условия (логическое ИЛИ).
Список доступных параметров фильтрации с их значениями и операторами:
Название параметра | Описание | Возможные значения | Операторы |
---|---|---|---|
версия HTTP | версия протокола HTTP | HTTP/2 HTTP/1.1 HTTP/1.0 HTTP/0.9 | in |
протокол URL | протокол, указанный в схеме URL запроса | HTTP, HTTPS | in |
тип HTTP-запроса | тип HTTP-запроса, который указывает, какое желаемое действие выполнится для данного ресурса | GET HEAD POST PUT DELETE CONNECT OPTIONS TRACE PATCH | in |
адрес (URL address) | часть URI-адреса запроса | equals in contains startsWith endsWith | |
домен (Host) | HTTP-заголовок Host — содержит имя домена, для которого предназначен запрос | equals in contains startsWith endsWith | |
IP-адрес назначения | IP-адрес, на который был направлен запрос (в результате DNS-резолва или самим пользователем) | in | |
User-Agent | HTTP-заголовок, который содержит информацию о ПО клиента и его устройстве | equals in contains startsWith endsWith exists | |
страна | код страны (ISO 3166-1 alpha-2), из которой поступил запрос | См. ISO 3166-1 alpha-2 | in |
номер AS | номер AS, из которой получен запрос | in | |
решение защиты | решение о блокировке или пропуске запроса, принятое системой фильтрации | «Пропустить», «Заблокировать» | equals |
код ответа | HTTP-код, отправленный сервером или CDN, который описывает результат выполнения запроса | in |
Пример настройки сборщика
Допустим, мы хотим собрать статистику TTFB по URL, чтобы узнать, какие страницы сайта загружаются медленнее всего. При этом нам важно учитывать только запросы из стран, для которых мы оптимизируем доставку контента, а также исключить запросы из собственной сети 10.0.0.0 /24
.
Создадим и настроим сборщик статистики.
- Добавим название сборщика, по которому будет понятно, какую статистику он собирает. Например, «Наибольший TTFB по URL»
- Выберем показатель Время до первого байта (TTFB)
- Назначим функцию агрегации AVG — среднее арифметическое, чтобы собирать усредненные значения TTFB по каждой странице
- Выберем признак группировки — адрес (URL path). Здесь можно активировать опцию Группировать динамические URL: тогда, например, все URL вида
example.com/user/13231/dashboard/123e4567-e89b-12d3-a456-426655440000
будут сгруппированы вместе в записиexample.com/user/{number}/dashboard/{uuid}
. Это позволит собирать статистику по страницам одного типа с разными URL - Установим выборку 10 наибольших значений, чтобы отслеживать страницы с самым высоким, то есть самым плохим показателем TTFB
- При необходимости можно настроить фильтрацию, чтобы собирать статистику только по запросам из стран, для посетителей из которых мы стараемся оптимизировать доставку контента. Также добавим условие, которое исключит запросы из служебной сети
10.0.0.0 /24
После сохранения правила начнет собираться статистика по заданным параметрам. Ее можно посмотреть в виде графика и топа значений — для этого выберите опцию Статистика в контекстном меню сборщика
После создания сборщика нельзя изменить основные параметры: показатель, функцию агрегации, признак группировки и настройки выборки
Пример агрегации статистики
Чтобы понять, как именно работает с данными сборщик статистики, разберем путь статистики по нашему запросу от лога запросов до отфильтрованного и агрегированного вида.
Допустим, за 30 секунд к нашему example.com поступили такие запросы:
Сначала с помощью фильтров (аналог WHERE
в SQL) будут удалены все запросы, которые не должны попасть в статистику:
После этого записи будут агрегированы (аналог GROUP_BY
в SQL) по URL с помощью функции агрегации. Мы задали функцию AVG, то есть несколько запросов с одним URL будут объединены в одну запись. TTFB для этой записи будет равен среднему TTFB сгруппированных запросов. Все лишние параметры на этом этапе отбрасываются:
Последние операции — сортировка и обрезка в соответствии с настройками выборки. В нашем сборщике установлена выборка 10 наибольших значений, поэтому записи будут отсортированы в порядке возрастания, а все записи после 10-ой — отброшены:

Полученные таким образом записи отобразятся в статистике в личном кабинете. Чтобы посмотреть ее, откройте меню сборщика ( ) и выберите пункт Статистика.