Коллеги, други и просто хабралюди. С неделю назад на Web Optimizator был выложен код для счетчика загрузки (немного более подробно об измерении времени загрузки страницы можно прочитать в статьях про анализ скорости загрузки и разгон интернет-магазина).
Теперь каждый (не) высоконагруженный проект может себе позволить посмотреть, какая реальная скорость загрузки его страниц у конечных пользователей.
График распределения пользователей webo.in по времени загрузки у них этого сайта
Пример текущей статистики и получение кода организовано здесь
http://webo.in/my/action/counter/?url=webo.in
Пока все в достаточно тестовом режиме (статистика вся собирается, но пока выводится только в общем виде). Для просмотра нужно зарегистрироваться.
Что уже есть:
1. Сбор данных :)
2. Вывод графика распределения числа пользователей по времени загрузки
3. Вывод среднего времени загрузки
4. Вывод числа пользователей, загрузивших страницу до 4 секунд включительно (некоторый характерный параметр для оптимизации).
5. Возможность задать диапазон дат.
6. Возможность вывести данные по отдельным браузерам и семействам (всего 18)
Что планируется добавить буквально через пару дней:
1. Закрытие статистики для отдельного сайта
2. Срез времени загрузки по отдельным браузерам (сейчас в базе 17 основных)
3. Добавление каких-либо срезов по самым быстрым / самым медленным страницам и просмотр статистики по отдельным страницам.
Несколько тысяч хитов в день для среднего блога/магазина сервис выдержит без труда. Если будут перебои с обработкой статистики (сейчас логи загоняются в базу раз в десять минут) — буду трясти основных «тяжеловесов» :) Ибо сервер не резиновый.
Какие вопросы не решены:
1. В каком виде удобнее всего выводить список страниц по времени загрузки? Постранично таблицей с возможностью сортировки или придуман какой-то другой более удобный режим для этого?
2. Если у кого-то будут идеи, как отслеживать повторный заход пользователя (когда статика может браться из кэша) на эту же страницу без выставления cookie — буду благодарен. Гонять cookie на сервер статистики не очень хочется.
3. Да, как отключить
Естественно, любые комментарии приветствуются. Код и доступный функционал можно получить на странице
http://webo.in/my/action/counter/
JavaScript добавляет на событие
Естественно, если хочется померить первоначальное появление странице в браузере, можно навесить на чуть более раннее событие — комбинированное onDOMReady, но это уже — дело вкуса. На быстродействие текущий вариант счетчика никак не влияет (точнее, влияние гораздо меньше всех почти всех текущих счетчиков Рунета).
Идея не нова, но общедоступной реализации пока нигде не видел. В общем, имхо, это должен быть удобный инструмент для «точечного» профилирования быстродействия сайта — ведь код можно установить только на одну страницу, например.
Как обычно, жду комментариев и свежих идей: пример вывода статистики для webo.in
P.S. Надеюсь, что хабраэффект счетчик не положит :)
Теперь каждый (не) высоконагруженный проект может себе позволить посмотреть, какая реальная скорость загрузки его страниц у конечных пользователей.
График распределения пользователей webo.in по времени загрузки у них этого сайта
Пример текущей статистики и получение кода организовано здесь
http://webo.in/my/action/counter/?url=webo.in
Пока все в достаточно тестовом режиме (статистика вся собирается, но пока выводится только в общем виде). Для просмотра нужно зарегистрироваться.
Что уже есть:
1. Сбор данных :)
2. Вывод графика распределения числа пользователей по времени загрузки
3. Вывод среднего времени загрузки
4. Вывод числа пользователей, загрузивших страницу до 4 секунд включительно (некоторый характерный параметр для оптимизации).
5. Возможность задать диапазон дат.
6. Возможность вывести данные по отдельным браузерам и семействам (всего 18)
Что планируется добавить буквально через пару дней:
1. Закрытие статистики для отдельного сайта
3. Добавление каких-либо срезов по самым быстрым / самым медленным страницам и просмотр статистики по отдельным страницам.
Несколько тысяч хитов в день для среднего блога/магазина сервис выдержит без труда. Если будут перебои с обработкой статистики (сейчас логи загоняются в базу раз в десять минут) — буду трясти основных «тяжеловесов» :) Ибо сервер не резиновый.
Какие вопросы не решены:
1. В каком виде удобнее всего выводить список страниц по времени загрузки? Постранично таблицей с возможностью сортировки или придуман какой-то другой более удобный режим для этого?
2. Если у кого-то будут идеи, как отслеживать повторный заход пользователя (когда статика может браться из кэша) на эту же страницу без выставления cookie — буду благодарен. Гонять cookie на сервер статистики не очень хочется.
3. Да, как отключить
Last-Modified
у nginx для картинки? Заголовки хочется урезать до минимума.Естественно, любые комментарии приветствуются. Код и доступный функционал можно получить на странице
http://webo.in/my/action/counter/
Принцип работы
JavaScript добавляет на событие
window.onload
вызов внешней картинки с сервера статистики с основными параметрами. window.onload срабатывает только тогда, когда вся страница оказывается загруженной в браузере. Конфликтов с другими обработчиками быть не должно, код примерно такой получается (немного отформатировал для улучшения понимания, более полно мысли изложены в заметке про организацию счетчиков статистики):var __WEBO_UA=0; var __WEBO_START=new Date(); (function(){ window[/*@cc_on !@*/0?'attachEvent':'addEventListener'](/*@cc_on 'on'+@*/'load', function(){ new Image(1,1).src="http://s.webo.name/0.gif?"+ __WEBO_UA+";"+ ((new Date())-__WEBO_START)+";"+ escape(location.href)+";0;"+ Math.random() },false) }());
Естественно, если хочется померить первоначальное появление странице в браузере, можно навесить на чуть более раннее событие — комбинированное onDOMReady, но это уже — дело вкуса. На быстродействие текущий вариант счетчика никак не влияет (точнее, влияние гораздо меньше всех почти всех текущих счетчиков Рунета).
Идея не нова, но общедоступной реализации пока нигде не видел. В общем, имхо, это должен быть удобный инструмент для «точечного» профилирования быстродействия сайта — ведь код можно установить только на одну страницу, например.
Как обычно, жду комментариев и свежих идей: пример вывода статистики для webo.in
P.S. Надеюсь, что хабраэффект счетчик не положит :)