параметров и показателей. Справочник разработчика
Измерение — это атрибут сеанса или обращения, который можно использовать для группировки данных.
В запросах к API размеры задаются в параметре Dimensions
. Если вам нужно указать несколько параметров, разделите их запятыми.
Также можно сделать отчет без размеров; в этом случае подсчитывается общий результат.
Метрика — это числовое значение, основанное на атрибуте попадания или сеанса.
В запросах API метрики задаются в параметре metrics
. Если вам нужно указать несколько показателей, разделите их запятыми.
, где можно было использовать ATTRIBUTIN (размерность ).
Глубина страницы — это значение, рассчитанное на основе числовых атрибутов сеансов (метрика ), соответствующее указанному измерению.
ОС на одной оси (размер),
0068и версия ОС на другой оси.
Подробнее о терминологии
Для лучшего понимания терминов «параметр» и «метрика» рассмотрим пример отчета Яндекс.Метрики по операционной системе:
4 Операционная система | Глубина страницы |
---|---|
Windows | 4,2 |
IOS | 3,1 |
Linux | 1,6 |
, где
Примечание.
Если вы знакомы с SQL, вы можете думать об измерениях как о столбцах, используемых для группировки, а о показателях — как о результатах, возвращаемых агрегатными функциями.
Например, приведенный выше отчет можно представить как запрос к гипотетической таблице сеансов:
ВЫБЕРИТЕ операционную систему, среднее (глубина) из посещений СГРУППИРОВАТЬ ПО операционной системе
Почему используется термин «измерение»?
В примере сеанс имеет один атрибут — операционную систему. Если мы добавим еще один атрибут (например, версию ОС):
Operating system | OS version | Page depth |
---|---|---|
Windows | 7 | 3,1 |
IOS | 6 | 3,1 |
Windows | XP | 1,1 |
мы можем показать сеансы в двух измерениях:
Таким образом, каждый атрибут добавляет еще одно измерение.
Вы можете создать нужную структуру отчета, указав показатели и измерения в запросе API.
Была ли статья полезна?
Успокоение Clickhouse :: TheOrangeOne
Clickhouse — это механизм базы данных, ориентированный на столбцы, в основном предназначенный для аналитики. Он был разработан и развернут Яндексом в своем аналитическом предложении, но Plausible, мой любимый поставщик аналитики, использует его для хранения аналитических данных, так как он больше подходит для этого, чем PostgreSQL.
К сожалению, официальный докер-контейнер невероятно загружен. Как только Plausible запускается, Clickhouse загружает ЦП примерно до 10% и поддерживает запись в каталог базы данных со скоростью 30 МБ/с. Мои почасовые снимки ZFS занимают более 1 ГБ каждый! Сервер, на котором я запускаю Prausible, достаточно мощный, но даже он просто сумасшедший!
Сначала я подумал, что это ошибка в Plausible, так как она появлялась только во время работы Plausible.
Прежде всего, давайте быстро заглянем в каталог данных на предмет чего-нибудь очевидного:
$ df -hs clickhouse/ кликхаус 8.2G
#Глядя на данные
Глядя на структуру файловой системы clickhouse/
(хороший простой макет!), большая часть использования приходится на таблицы system.query_log
и system.query_thread_log
. Эти таблицы с соответствующими именами отвечают за регистрацию всех запросов, выполняемых Clickhouse, и для меня в них было более 20 миллионов строк, каждый ! После просмотра документов это включается для облегчения отладки. Для большинства людей вам на самом деле не нужны все эти данные, и они определенно не стоят компромиссов между огромным объемом использования диска по сравнению с фактическими хранимыми данными.
#Log file
Глядя на файл журнала Clickhouse ( /var/log/clickhouse/clickhouse-server.log
), он был невероятно подробным и выводил гораздо больше, чем нужно. Уровень журнала по умолчанию установлен на trace
, что в основном означает, что регистрируется абсолютно все, даже больше, чем обычные журналы debug
. Уровень журнала trace
соответствует мантре помощи в отладке, но опять же не нужен в большинстве сред.
#Успокоение
Итак, учитывая, как ведет себя Clickhouse и регистрирует слишком много данных как в системных таблицах, так и в файлах журналов, как мы можем приглушить Clickhouse? Скорее всего, это дополнительная работа по ведению журналов как в таблицах, так и в файлах журналов, которая использует дополнительные ресурсы.
#Stop logging query
Первый шаг и, вероятно, тот, который имеет наибольшее значение, — полностью отключить ведение журнала запросов. Это должно уменьшить количество циклов ЦП, затрачиваемых на сбор. Это делается с использованием переменных log_queries
и log_query_threads
в users.xml
:
<яндекс> <профили> <по умолчанию>0 0 по умолчанию> профили>
#Reduce logging
Шаг 2 — уменьшить уровень журнала как для файлового регистратора, так и для любого другого ведения журнала таблицы, которое мы не можем полностью отключить. Это изменение внесено в config.xml
. Я установил уровень warning
, чтобы было очевидно, когда что-то не так, но все это попадает в оболочку, так что все в порядке. Все журналы таблицы полностью отключены.
<яндекс> <регистратор> <уровень>предупреждениеуровень> <консоль>истинаконсоль> регистратор>
Для упрощения отладки я также отправляю журналы в консоль с помощью
, поэтому это можно увидеть с помощью
.
В дополнение к уменьшению уровня журнала я переместил файлы журнала на монтирование tmpfs
. Сначала я сделал это, чтобы уменьшить количество операций записи на диски, но в любом случае это все равно есть на всякий случай.
#Восстановить место на диске
Последний шаг — вернуть место на диске, потерянное из-за чрезмерно подробных журналов. Поскольку все было записано в таблицы, оно все еще существует. Это, вероятно, не сильно повлияет на производительность во время выполнения, но использование диска увеличилось с 8 ГБ до 200 МБ, что очень приятно!
- Войдите в оболочку Clickhouse:
docker-compose exec clickhouse bash
- Сократите существующие журналы:
clickhouse-client -q "ВЫБЕРИТЕ имя ИЗ system.tables, ГДЕ имя КАК '%log%';" | xargs -I{} clickhouse-client -q "Система TRUNCATE TABLE.