Компания Яндекс — Технологии — Как работает Яндекс.Метрика
В интернете всё можно измерить. Если у вас есть сайт, несложно посмотреть, сколько посетителей на него приходит, на каких страницах они бывают, как долго там задерживаются и что делают. Можно составить портрет своей аудитории: узнать возраст и интересы разных категорий посетителей. Эти данные помогают развивать сайт и делать его понятнее и удобнее для разных людей.
Системы веб-аналитики
Следить за посещаемостью сайта и оценивать качество его работы помогают системы веб-аналитики. Они различаются набором возможностей, скоростью обработки данных и, конечно, интерфейсами, но в целом устроены похожим образом. Обычно аналитические сервисы состоят из трёх частей. Первая — счётчик. На сайте размещается специальный код, и каждый раз, когда страница загружается или пользователь совершает на ней какие-то действия, счётчик отправляет сообщение в базу данных системы. Это вторая часть сервиса, там информация систематизируется и обрабатывается. Третья часть — интерфейс, в котором представлены обработанные данные по тому или иному сайту и отчёты на основе этих данных — в виде таблиц и графиков.
У Яндекса есть своя аналитическая система, которой ежедневно пользуются миллионы владельцев сайтов, — Метрика. Она умеет быстро обрабатывать огромные объёмы данных и строить произвольные отчёты в реальном времени.
Метрика, как и все системы веб-аналитики, оперирует несколькими базовыми понятиями. «Посетитель» — пользователь, зашедший на сайт. Когда он приходит впервые, в его браузер записывается уникальный идентификатор, по которому счётчик Метрики узнаёт его в следующий раз. «Просмотр» — каждое обращение посетителя к сайту, включая простое обновление страницы. «Визит» — один сеанс работы пользователя с сайтом. Визит начинается, когда посетитель попадает на сайт, и заканчивается, если он не предпринимает там никаких действий в течение определённого времени — по умолчанию это 30 минут. Визит может включать в себя множество просмотров разных страниц. В базе Метрики хранятся данные как об отдельных просмотрах, так и о визитах.
Сбор данных
Когда посетитель переходит на сайт со счётчиком Метрики — из поисковой системы, социальной сети, с рекламного баннера или просто введя адрес в адресной строке, — его браузер загружает код страницы. В этот момент счётчик отправляет в Метрику данные: сам факт загрузки страницы, уникальный идентификатор посетителя, адрес страницы, с которой он пришёл, название и версию браузера и операционной системы и так далее. Метрика не знает ничего о конкретном человеке с именем и фамилией, который совершает в интернете конкретные действия. Идентификатор посетителя и все остальные его параметры становятся частью обезличенной статистики — цифрами, которые помогают пользователю Метрики развивать свой сайт.
Пока посетитель находится на сайте, счётчик продолжает собирать статистику и отправлять её Метрике. Каждый раз, когда человек открывает какую-нибудь страницу, счётчик регистрирует просмотр. Если он длится дольше 15 секунд, система снова получает сообщение — о том, что просмотр продолжается. Если же человек зашёл только на одну страницу сайта и пробыл там меньше 15 секунд, счётчик отправляет сообщение об отказе. Процент отказов помогает владельцу сайта узнать, сколько посетителей не заинтересовались страницей или попали туда случайно.
Счётчик фиксирует прокручивание страницы, движения мыши и клики по кнопкам и ссылкам (отчёт об этих действиях владелец сайта может посмотреть в отдельном разделе Метрики — Вебвизоре). Также он сообщает, совершил ли посетитель важные для владельца сайта действия — например, зарегистрировался на форуме, кликнул по рекламному баннеру или оформил заказ в интернет-магазине.
Для системы статистики один человек может стать несколькими посетителями. Например, если он зайдёт на сайт с двух разных устройств, из разных браузеров или из одного браузера, но после его переустановки. Бывает и наоборот: Метрика может считать одним посетителем семью из пяти человек, если все её члены пользуются одним браузером.
Отчёты
В базе данных Метрики хранятся самые разнообразные данные о посещаемости сайта. Владелец составляет на их основе отчёты и смотрит результаты его работы в разных срезах — временных, географических, возрастных или даже сразу нескольких.
Например, чтобы понять, хорошо ли в целом сработала ваша рекламная кампания, можно посмотреть в Метрике общую информацию — увеличилось ли количество посещений, из каких источников приходили люди и как изменилась глубина просмотра. А можно углубиться в детали и попытаться ответить на более конкретный вопрос. Допустим, у вас есть сервис для молодых жителей Санкт-Петербурга и вы хотите проверить, удобен ли его новый мобильный интерфейс. Метрика позволяет узнать, много ли владельцев смартфонов в возрасте от 18 до 34 лет просмотрело больше двух страниц вашего сайта и много ли было отказов, а вам останется только сделать выводы.
Все отчёты составляются сразу: владелец сайта указывает, что хочет посмотреть, и система сразу же извлекает данные из базы и показывает результат — учитывая даже тех посетителей, которые были на сайте только что.
Хранение и обработка данных
Поскольку отчёты создаются в реальном времени, их структура становится известна только в тот момент, когда владелец сайта делает через интерфейс Метрики запрос для получения отчёта. Структура отчёта может быть практически любой, а составляется он за долю секунды. Чтобы владелец сайта получал актуальную и полную информацию, нужно постоянно собирать данные о посещаемости и уметь тут же их обрабатывать. Для этого в 2012 году Яндекс разработал свою систему управления базами данных (СУБД) — ClickHouse.
Есть два варианта подготовки данных для аналитических отчётов. В первом, с которым раньше работала Метрика, данные агрегируются предварительно, и на их основе составляется фиксированный набор отчётов. Это позволяет загружать отчёты достаточно быстро, но ограничивает гибкость аналитики: пользователь может получить только один из набора предусмотренных отчётов. Другой вариант — хранить поступающие в систему события без предварительной агрегации, а вычисления выполнять в онлайне — в тот момент, когда пользователь загружает отчёт. Это сильно расширяет аналитические возможности, но накладывает очень серьёзные требования на скорость обработки данных.
Существует два основных типа СУБД — строковые и столбцовые. Они отличаются организацией хранения данных на физическом уровне. Большинство известных СУБД строковые — в них данные, которые в таблице находятся в разных ячейках одной строки, хранятся рядом, друг за другом. Такие СУБД хорошо подходят, например, для обработки транзакций, так как позволяют быстро обновлять отдельные строки в базе данных. Для аналитических запросов, когда необходимы только данные из нескольких столбцов в большом массиве строк, строковые СУБД подходят хуже. При обработке таких запросов необходимо прочитать и отбросить значения всех остальных столбцов — в том числе в данном случае ненужных. На это уходит время.
В столбцовых СУБД, к которым как раз и относится ClickHouse, данные хранятся в порядке столбцов: значения, относящиеся к одному столбцу, расположены рядом. В Яндекс.Метрике мы храним события (визиты, просмотры и т. п.) в нескольких таблицах, где строки — это всё те же события, а столбцы — их параметры. Такая структура СУБД позволяет увеличивать количество параметров событий без потери производительности. Например, если нам нужно получить отчёт по количеству уникальных посетителей в разрезе регионов, достаточно прочитать с диска только два столбца.
В октябре 2015 года объём данных Метрики только для веб-сайтов составил 10,65 триллиона строк. В наиболее крупной таблице содержится 349 столбцов. Каждый раз, когда владелец сайта открывает страницу в Метрике, в ClickHouse отправляется несколько запросов. Всего база данных получает примерно 2000 запросов в секунду; пиковая скорость обработки данных превышает два терабайта в секунду.
ClickHouse легко масштабируется: добавление новых серверов происходит без перестройки кластера. Один запрос может обрабатываться с использованием вычислительной мощности всех доступных серверов, поэтому данные обрабатываются очень быстро. Другая полезная особенность ClickHouse — отказоустойчивость: даже если какие-то серверы выходят из строя, система продолжает работать. Для этого данные реплицируются в географически распределённых дата-центрах.
ClickHouse позволяет серьёзно уменьшить затраты на хранение и обработку данных. Данные хранятся в нём по столбцам, и за счёт этого их можно эффективно сжимать. В ClickHouse реализован векторный движок выполнения запросов: данные не только хранятся, но и обрабатываются по столбцам, что позволяет оптимальным образом использовать процессор и память. Данные на диске переупорядочиваются (например, по сайту и дате), чтобы для составления отчёта достаточно было прочитать с диска лишь небольшой диапазон строк. Одновременно с этим ClickHouse позволяет добавлять в таблицу новые данные в реальном времени.
Система ClickHouse, разработанная в команде Метрики и для её нужд, оказалась полезна и для других задач Яндекса. В том числе СУБД используется в Маркете, рекламных технологиях, системе мониторинга серверов и внутренней бизнес-аналитике. ClickHouse сравнительно прост для изучения, так как для запросов используется язык SQL.
Яндекс Метрика на сайте Joomla
Многие сталкивались с проблемой получения статистики посещений вашего сайта, объеме аудитории и ее структуре. Отличным решением для получения данных будет установка Яндекс.Метрики на вашем Joomla сайте.
Как же установить Метрику на сайт?
Начнем по порядку!
-
Для начала вам понадобиться почта на Яндексе. У кого-то, наверняка, она уже есть. А кому-то придется ее завести 🙂
-
После создания ящика или входа под логином и паролем, перейдите на эту страницу https://metrika.yandex.ru/list?
-
Вы увидите диалоговое окно, в котором нажмите “Добавить счетчик”
-
Теперь нужно заполнить данные: Имя счетчика — Произвольное название, Домен сайта — сам адрес сайта, Дополнительный домен — если у вас есть второй домен, либо если на сайт ведут несколько доменов, то просто введите их в это поле.
-
У вас откроется страница панели Метрики. Теперь откройте вкладку “Код счетчика”
-
Установите галочки, как показано на скриншоте (запомните, включили ли вы Информер, от этого будет зависит вставка кода).Эти функции вам пригодятся!
-
Скопируйте код счетчика
Теперь нужно решить, каким образом вы хотите вставить код на сайт.
Существует несколько вариантов:
-
Создание модуля с кодом (модуль не будет видно, если вы не выбрали информер) в любом месте
-
Создание модуля с информером в удобном вам месте
-
Внесение кода в index вашего сайта
Давайте рассмотрим все эти варианты:
-
Создание модуля с кодом
— Создайте модуль типа “HTML-код”, внесите в него содержимое кода
— Выберите положение модуля
— Отключите отображение заголовка.
Чтобы проверить, все ли вы сделали правильно — сравните то, что получилось со скриншотом.
Также не забудьте включить отображение на всех страницах сайта.
2. Создание модуля с информером
Если вы хотите, чтобы на вашем сайте отображался счетчик (что, кстати, очень удобно), то вам нужно повторить процедуру добавления модуля, как описано выше, но при настройке модуля на странице Метрики вам необходимо будет выбрать пункт “Информер”. Стоит также учесть, что как правило такие модули располагают в футере (footer — нижняя часть сайта).
3. Внесение кода в файл Index.
В данном случае вам нужно будет вставить код (без информера) в файл из директории Joomla. Это довольно удобно, если вы не хотите использовать модуль. С другой стороны, не очень удобно использовать FTP-доступ, если у вас до сих пор не установлен файловый менеджер с FTP. Топ 10 можно найти на ЭТОЙ СТРАНИЦЕ.
Итак, откройте корневую директорию вашего сайта Joomla. Найдите в ней файл index.php
Вставьте в него код счетчика перед тегом </body>.
Вот и все! Теперь на вашем сайте установлена Яндекс.Метрика!
К слову, если вы используете framework, то скорее всего в его настройке предусмотрено окно вставки подобного рода кодов и скриптов (Additional Scripts).
Например, Warp Framework, который обычно используется в шаблонах от YooTheme.
Откройте редактирование шаблона фреймверка и найдите окошко, как на скриншоте. Вставьте код Метрики в нее и и сохраните изменения. Так еще проще!
Проверьте, может быть и в вашем шаблоне есть такая функция?
Самых лучших показателей вам, друзья! 🙂
UPDATE 6-Яндекс поднимает цену IPO в интернет-ажиотаже
Алина Селюх, Ольга Попова
Чтение за 6 минут
* Ценовой диапазон повышен до $24-25 с $20-$22 — источник до 1,3 млрд долларов
* Крупнейшая поисковая система России (добавляет волатильность рынка, комментарии аналитиков к торговле, историю)
НЬЮ-ЙОРК/МОСКВА, 23 мая (Рейтер) — Российская интернет-компания Яндекс в понедельник повысила ориентир цен на свои акции Nasdaq публичное размещение акций в ответ на высокий спрос инвесторов после дебюта LNKD. N LinkedIn Corp на прошлой неделе.
Яндекс, самая популярная поисковая система в России, планирует продавать акции по цене от 24 до 25 долларов за штуку, что превышает ранее установленный диапазон от 20 до 22 долларов, сообщил Reuters источник, близкий к проблеме. Ожидается, что цена IPO будет объявлена позднее в понедельник.
При такой цене IPO Яндекса станет крупнейшим среди интернет-компаний с тех пор, как Google GOOG.O привлекла $1,7 млрд в 2004 году. рынки США с 354-процентным скачком в его дебюте в 2005 году. 9
Baidu, крупнейшая поисковая система Китая, превратилась в один из ведущих мировых брендов после стремительного роста котировок на бирже Nasdaq в августе 2005 года. растущие интернет-рынки в России и соседних странах. В более высоком ценовом диапазоне его IPO может привлечь до 1,3 миллиарда долларов, чтобы оценить компанию до 8 миллиардов долларов.
«Ходили слухи, что подписка на IPO была в 5-10 раз превышена. И на волне сделок прошлой недели, включая LinkedIn, можно ожидать вполне успешного размещения», — сказал Константин Чернышев, руководитель отдела исследований «Уралсиб» в Москве.
Акции LinkedIn выросли более чем в два раза после IPO компании на прошлой неделе, что напомнило о сомнительных оценках, предшествовавших краху доткомов десять лет назад. [ID:nN1939946]
«Я не знаю, получите ли вы такую огромную популярность (с Яндексом), как с LinkedIn», — сказал Даррен Фабрик, управляющий директор IPO инвестиционной компании IPOX Schuster LLC. Но «в первый день он должен торговаться достаточно хорошо даже при волатильности рынка».
Акции США закрылись на самом низком уровне за месяц в понедельник, в отличие от устойчивости, наблюдавшейся на рынке во время IPO LinkedIn. [ID:nN23187364]
LinkedIn в настоящее время торгуется в 34 раза больше, чем в 2010 году, в то время как акции Google сейчас стоят чуть менее чем в шесть раз больше, чем в 2010 году. Если цена IPO Яндекса будет равна 24,50 доллара, то есть средней точке верхнего диапазона, ее акции будут стоить почти в 18 раз больше продаж 2010 года.
Эта оценка «довольно высока», сказал Рик Саммер, технологический аналитик Morningstar. Но с производительностью Baidu и аппетитом инвесторов к высококачественным интернет-акциям Яндекс может поддерживать эти оценки в торговле, сказал он.
Яндекс контролирует 65 процентов российского рынка интернет-поиска, почти в три раза больше, чем мировой лидер Google. Поклонники Яндекса также подчеркивают рекордный рост прибыли компании благодаря интернет-рекламе: в 2010 году прибыль выросла на 90% до 135 миллионов долларов при росте продаж на 43 процента до 445 миллионов долларов. [ID:nLDE74I143]
NO QUICK FLIP
Инвесторов может успокоить тот факт, что дуэт, основавший Яндекс в 1997 году — генеральный директор Аркадий Волож и технический директор Илья Сегалович — сохранит большую часть своих активов.
Волож, дипломированный специалист по прикладной математике, начал заниматься поисковыми технологиями в 1989 году. Годом позже он основал собственную фирму по разработке программного обеспечения для поиска, где к нему присоединился геофизик Сегалович. В 1997 году они запустили сайт yandex. ru, которым в марте пользовались 38 миллионов уникальных пользователей.
Алгоритм поиска Яндекса, первоначально разработанный для поиска по ключевым словам в патентах, русской классической литературе и Библии, стал прорывом, поскольку он учитывал сложные падежные окончания русского языка.
Дуэт изобрел название «Яндекс» — где «Я» означает русский эквивалент английского местоимения «Я» — когда Сегалович экспериментировал с производными от слов, описывающих суть технологии. Полное название изначально расшифровывалось как «Еще один iINDEX».
Сегодня слово «Яндекс» стало синонимом интернет-поиска в русскоязычных странах, так как люди предлагают «спрашивать у Яндекса» ответы на свои запросы.
Частные инвесторы также сохраняют доли, в том числе Baring Vostok Capital Partners, которая купила Яндекс в 2000 году, когда его доход составлял всего 72 000 долларов, а убыток составил 2 миллиона долларов.
Первоначальные инвестиции фонда оценили Яндекс в 15 миллионов долларов, а это означает, что Baring Vostok и его партнеры могут получить в 93 раза больше своих первоначальных инвестиций.
Инвесторы, купившие IPO Яндекса, получат акции класса А, которые имеют только одну десятую голосов акций класса Б, которые останутся у инсайдеров в сделке.
Кроме того, золотая акция, принадлежащая Сбербанку SBER03.MM, российскому банку, контролируемому государством, представляет собой ядовитую пилюлю, которую можно использовать, чтобы помешать любому отдельному инвестору приобрести голосующий пакет акций Яндекса в размере более 25 процентов.
Morgan Stanley MS.N, Deutsche Bank DBKGn.DE и Goldman Sachs GS.N являются ведущими андеррайтерами размещения.
Ожидается, что акции начнут торговаться на Nasdaq во вторник под символом «YNDX». YNDX.O (Дополнительная отчетность Марии Киселевой, Мелиссы Акин и Джона Боукера в Москве, Меган Дэвис в Нью-Йорке; редакция Александра Смита, Стива Орлофски и Бернарда Орра)
Монитор ClickHouse с Prometheus & Grafana
летний проект GoLang на 100 тыс. строк, предназначенный для системного мониторинга. В проекте участвовало почти 600 участников, среди которых Фабиан Рейнарц из Google и Юлиус Волц, ранее работавший в Google, а ныне основатель PromLabs, лидируют по количеству коммитов.
Grafana — интерактивное веб-приложение для визуализации. Базовая кодовая база состоит примерно из 500 тысяч строк GoLang и Typescript. 1,4 тысячи разработчиков внесли свой вклад в проект за его 8-летнюю историю. Корни проекта можно найти в Стокгольме, где Торкель Одегаард внес наибольшее количество коммитов в проект. В последние несколько лет он оказывал коммерческую поддержку Grafana Labs, фирме, базирующейся в Нью-Йорке, в которой на момент написания этой статьи работало почти 400 сотрудников.
Установка ClickHouse
Следующие команды были выполнены при новой установке Ubuntu 20.04 LTS в системе с 16 ГБ ОЗУ.
$ sudo apt-key adv \ --keyserver hkp://keyserver.ubuntu.com:80 \ --recv E0C56BD4 $ echo "deb http://repo.yandex.ru/clickhouse/deb/stable/main/" | \ sudo тройник /etc/apt/sources.list.d/clickhouse.list $ sudo подходящее обновление
Я установлю ClickHouse.
$ sudo apt install \ clickhouse-клиент \ clickhouse-сервер-общий
Следующее включит показ метрик Prometheus в конфигурации ClickHouse.
$ sudo vi /etc/clickhouse-server/config.xml
Удалите комментарии XML вокруг тегов
<конечная точка>/метрикиконечная точка> <порт>9363порт> истина <события>истинасобытия>истина верно прометей> 9#' \ | голова
ClickHouseProfileEvents_Query 142 ClickHouseProfileEvents_SelectQuery 142 ClickHouseProfileEvents_InsertQuery 0 ClickHouseProfileEvents_FailedQuery 0 ClickHouseProfileEvents_FailedSelectQuery 0 ClickHouseProfileEvents_FailedInsertQuery 0 ClickHouseProfileEvents_QueryTimeMicroseconds 4771631 ClickHouseProfileEvents_SelectQueryTimeMicroseconds 4771631 ClickHouseProfileEvents_InsertQueryTimeMicroseconds 0 ClickHouseProfileEvents_FileOpen 19671
Указанная выше конечная точка предоставляет более 320 метрик с используемой комбинацией версии и конфигурации.
Установка Prometheus
Я нашел упакованную версию Prometheus, поддерживаемую разработчиком в Яндексе.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EA8AECDE414187DB $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys A57ED69D49D1012A $ echo "deb https://packagecloud.io/the_asten/prometheus/ubuntu/ основной основной" \ | sudo тройник /etc/apt/sources.list.d/prometheus.list $ sudo подходящее обновление $ sudo apt установить прометей
Я добавлю список целей, чтобы включить конечную точку для метрик ClickHouse Prometheus.
$ sudo vi /etc/prometheus/prometheus.yml
статические_конфигурации: - цели: ['localhost:9090', 'localhost:9363']
Следующее перезапустит Prometheus.
$ sudo systemctl перезапустить прометей
Откройте http://127.0.0.1:9090/targets, и вы должны увидеть две перечисленные цели, одна из которых является конечной точкой ClickHouse.
Открыть http://127.0.0.1:9090/graph и введите «ClickHouseAsyncMetrics_MemoryResident» в большое поле запроса вверху, нажмите кнопку «Выполнить» справа, а затем выберите вкладку «График» ниже. Вы должны увидеть линейный график метрики резидентной памяти, сообщаемой ClickHouse.
Установка Grafana
Далее будет установлена Grafana.
$ wget -qO- https://packages.grafana.com/gpg.key | sudo apt-ключ добавить - $ echo "deb https://packages.grafana.com/oss/deb стабильная основная" \ | sudo тройник /etc/apt/sources.list.d/grafana.list $ sudo подходящее обновление $ sudo apt установить графану
Далее будет установлен плагин источника данных для ClickHouse. Этот плагин может напрямую взаимодействовать с ClickHouse, включая возможность писать операторы SQL и отображать их с помощью Grafana.
$ плагины sudo grafana-cli установить vertamedia-clickhouse-datasource
В разделе [server] файла конфигурации Grafana измените привязку сетевого интерфейса на 127. 0.0.1, чтобы служба была доступна только локально.
$ sudo vi /etc/grafana/grafana.ini
http_адрес = 127.0.0.1
Перезапустите Grafana, чтобы изменения вступили в силу.
$ sudo systemctl перезапустить графана-сервер
Откройте http://127.0.0.1:3000/ и укажите имя пользователя и пароль по умолчанию admin и admin. Вам будет предложено изменить пароль после первоначального входа в систему.
Прокрутите до конца http://127.0.0.1:3000/datasources/new и нажмите ClickHouse. Установите URL-адрес HTTP на http://127.0.0.1:8123, а затем прокрутите вниз и нажмите «Сохранить и проверить».
Снова прокрутите до конца http://127.0.0.1:3000/datasources/new и нажмите Prometheus. Установите URL-адрес HTTP на http://127.0.0.1:9090/, а затем прокрутите вниз и нажмите «Сохранить и проверить».
Графики ClickHouse Metrics
Существует два источника для ClickHouse Metrics, первый напрямую через источник данных ClickHouse. Ниже приведен пример графика, который вы можете настроить.
Откройте http://127.0.0.1:3000/dashboard/new и добавьте пустую панель. В нижней части страницы измените следующее:
- Источник данных для ClickHouse
- — база данных — в систему
- — таблица : столбец — в metric_log
- —dateTime : col— в event_time
Нажмите «Перейти к запросу». Вы должны увидеть загрузку панели с линейным графиком, показывающим количество событий. Нажмите «Применить» в правом верхнем углу экрана.
В приведенном выше примере переключите источник данных на «Prometheus», введите «ClickHouseAsyncMetrics_MemoryResident» в поле поиска браузера показателей и нажмите «Применить» в правом верхнем углу экрана. Теперь вы должны увидеть график, заполняемый метриками, собранными Prometheus.
Настройка оповещений
Оповещения можно создавать, сначала выбрав любую панель, которую вы создали на приборной панели. Нажмите на заголовок панели, а затем нажмите «Изменить». В средней левой части интерфейса вы увидите три вкладки: «Запрос», «Преобразование» и «Предупреждение».