Для тестирования скорости загрузки сайта существует старый и известный в узких кругах инструмент WebPageTest. Упоминал уже не раз о нём, потому что регулярно пользуюсь, но отдаю себе отчёт, что он не очень популярен. На днях ставил себе с нуля свежую версию и потратил пол дня, пока всё запустил на своей виртуалке. Проект развивается в плане кодовой базы и возможностей, но конкретно Private Instances, которые можно развернуть у себя и использовать без ограничения, ставятся с костылями, так как для них не обновляют документацию и Docker файлы.
В очередной раз всё развернул и сразу зафиксирую, чтобы не забыть. Так как в прошлый раз решал ровно те же проблемы, но не записал сразу, потом забыл. Пришлось опять разбираться.
Проект состоит из серверной части и агентов, которые могут быть развёрнуты в разных локациях. Репозитории:
⇨ https://github.com/catchpoint/WebPageTest
⇨ https://github.com/catchpoint/WebPageTest.agent
В первом есть
Клонируем репозиторий сервера:
В
После этого собираем. Можно не трогать настройки по умолчанию.
После сборки запустится серверная часть на 80-м порту. Можно идти браузером по IP адресу сервера. Состояние сервера можно посмотреть так: http://10.20.1.21/install/ Там должно быть всё зелёное. И видно, что есть одна локация Test Locations и нет подключенного агента. Это настройка по умолчанию, она задаётся в файле
Идём на машину, где будет запускаться агент. Клонируем репозиторий:
В корне лежит Dockerfile. Откройте его и измените следующую строку:
На
Отдельно npm ставить не надо, он входит в состав nodejs. Сборка будет валиться с ошибкой, если это не исправить. Собираем агента. Я сразу указал ему часовой пояс. Можно и другие параметры задать:
Если сборка прошла без ошибок, то можно запускать самого агента:
10.20.1.21 - IP адрес сервера. Через пару минут по ссылке http://10.20.1.21/install/ вы должны увидеть, что агент подключился. В логе сервера это будет видно по запросам на /work/getwork.php от IP адреса агента.
Теперь можно выполнять тесты сайтов с помощью этого агента. Мне это нужно было, чтобы протестировать последние изменения в Angie. Авторы указали, что повысили стабильность работы с протоколом HTTP/3. Напомню, что когда я включил в Angie протокол HTTP/3, заметил, что параметр TTFB увеличился. В тестах это стабильно воспроизводилось.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#webpagetest
В очередной раз всё развернул и сразу зафиксирую, чтобы не забыть. Так как в прошлый раз решал ровно те же проблемы, но не записал сразу, потом забыл. Пришлось опять разбираться.
Проект состоит из серверной части и агентов, которые могут быть развёрнуты в разных локациях. Репозитории:
⇨ https://github.com/catchpoint/WebPageTest
⇨ https://github.com/catchpoint/WebPageTest.agent
В первом есть
docker-compose.yml
, который включает в себя php-бэкенд, веб-интерфейс и агент. Контейнеры собираются по месту из представленных докерфайлов в папке docker/local
. Если взять этот проект и запустить, то не соберётся wptagent. В нём есть привязки к названию репозитория, где он раньше был, но имя репозитория поменяли, а тут ничего не поправили. Проще собрать агента отдельно, а тут исключить его из сборки. К тому же агент будет запускаться не только на этой машине, так что разнести их не только географически, но и логически - разумно.Клонируем репозиторий сервера:
# git clone https://github.com/catchpoint/WebPageTest
В
docker-compose.yml
комментируем всё, что относится к agent. Это в самом конце секция, после web и php. Собранный веб сервер будет много всего писать в директорию www/
в разные вложенные папки. Для простоты назначим ей права 0777:# chmod -R 0777 www/
После этого собираем. Можно не трогать настройки по умолчанию.
# docker compose up
После сборки запустится серверная часть на 80-м порту. Можно идти браузером по IP адресу сервера. Состояние сервера можно посмотреть так: http://10.20.1.21/install/ Там должно быть всё зелёное. И видно, что есть одна локация Test Locations и нет подключенного агента. Это настройка по умолчанию, она задаётся в файле
docker/local/wptconfig/locations.ini
. Там только один тестовый location с ключом доступа 123456789. Если будете строить распределённую сеть агентов, то нужно будет добавлять туда новые локации и подключать агентов в соответствии с названиями и ключами.Идём на машину, где будет запускаться агент. Клонируем репозиторий:
# git clone https://github.com/catchpoint/WebPageTest.agent
В корне лежит Dockerfile. Откройте его и измените следующую строку:
RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install nodejs npm -y
На
RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install nodejs -y
Отдельно npm ставить не надо, он входит в состав nodejs. Сборка будет валиться с ошибкой, если это не исправить. Собираем агента. Я сразу указал ему часовой пояс. Можно и другие параметры задать:
# docker build --tag wptagent --build-arg TIMEZONE=MSK .
Если сборка прошла без ошибок, то можно запускать самого агента:
# modprobe ifb numifbs=1
# docker run -d -e SERVER_URL="http://10.20.1.21/work/" -e LOCATION="Test" -e NAME="Test" -e KEY="123456789" --cap-add=NET_ADMIN --init --name wptagent wptagent
10.20.1.21 - IP адрес сервера. Через пару минут по ссылке http://10.20.1.21/install/ вы должны увидеть, что агент подключился. В логе сервера это будет видно по запросам на /work/getwork.php от IP адреса агента.
Теперь можно выполнять тесты сайтов с помощью этого агента. Мне это нужно было, чтобы протестировать последние изменения в Angie. Авторы указали, что повысили стабильность работы с протоколом HTTP/3. Напомню, что когда я включил в Angie протокол HTTP/3, заметил, что параметр TTFB увеличился. В тестах это стабильно воспроизводилось.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#webpagetest
tgoop.com/srv_admin/4657
Create:
Last Update:
Last Update:
Для тестирования скорости загрузки сайта существует старый и известный в узких кругах инструмент WebPageTest. Упоминал уже не раз о нём, потому что регулярно пользуюсь, но отдаю себе отчёт, что он не очень популярен. На днях ставил себе с нуля свежую версию и потратил пол дня, пока всё запустил на своей виртуалке. Проект развивается в плане кодовой базы и возможностей, но конкретно Private Instances, которые можно развернуть у себя и использовать без ограничения, ставятся с костылями, так как для них не обновляют документацию и Docker файлы.
В очередной раз всё развернул и сразу зафиксирую, чтобы не забыть. Так как в прошлый раз решал ровно те же проблемы, но не записал сразу, потом забыл. Пришлось опять разбираться.
Проект состоит из серверной части и агентов, которые могут быть развёрнуты в разных локациях. Репозитории:
⇨ https://github.com/catchpoint/WebPageTest
⇨ https://github.com/catchpoint/WebPageTest.agent
В первом есть
Клонируем репозиторий сервера:
В
После этого собираем. Можно не трогать настройки по умолчанию.
После сборки запустится серверная часть на 80-м порту. Можно идти браузером по IP адресу сервера. Состояние сервера можно посмотреть так: http://10.20.1.21/install/ Там должно быть всё зелёное. И видно, что есть одна локация Test Locations и нет подключенного агента. Это настройка по умолчанию, она задаётся в файле
Идём на машину, где будет запускаться агент. Клонируем репозиторий:
В корне лежит Dockerfile. Откройте его и измените следующую строку:
На
Отдельно npm ставить не надо, он входит в состав nodejs. Сборка будет валиться с ошибкой, если это не исправить. Собираем агента. Я сразу указал ему часовой пояс. Можно и другие параметры задать:
Если сборка прошла без ошибок, то можно запускать самого агента:
10.20.1.21 - IP адрес сервера. Через пару минут по ссылке http://10.20.1.21/install/ вы должны увидеть, что агент подключился. В логе сервера это будет видно по запросам на /work/getwork.php от IP адреса агента.
Теперь можно выполнять тесты сайтов с помощью этого агента. Мне это нужно было, чтобы протестировать последние изменения в Angie. Авторы указали, что повысили стабильность работы с протоколом HTTP/3. Напомню, что когда я включил в Angie протокол HTTP/3, заметил, что параметр TTFB увеличился. В тестах это стабильно воспроизводилось.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#webpagetest
В очередной раз всё развернул и сразу зафиксирую, чтобы не забыть. Так как в прошлый раз решал ровно те же проблемы, но не записал сразу, потом забыл. Пришлось опять разбираться.
Проект состоит из серверной части и агентов, которые могут быть развёрнуты в разных локациях. Репозитории:
⇨ https://github.com/catchpoint/WebPageTest
⇨ https://github.com/catchpoint/WebPageTest.agent
В первом есть
docker-compose.yml
, который включает в себя php-бэкенд, веб-интерфейс и агент. Контейнеры собираются по месту из представленных докерфайлов в папке docker/local
. Если взять этот проект и запустить, то не соберётся wptagent. В нём есть привязки к названию репозитория, где он раньше был, но имя репозитория поменяли, а тут ничего не поправили. Проще собрать агента отдельно, а тут исключить его из сборки. К тому же агент будет запускаться не только на этой машине, так что разнести их не только географически, но и логически - разумно.Клонируем репозиторий сервера:
# git clone https://github.com/catchpoint/WebPageTest
В
docker-compose.yml
комментируем всё, что относится к agent. Это в самом конце секция, после web и php. Собранный веб сервер будет много всего писать в директорию www/
в разные вложенные папки. Для простоты назначим ей права 0777:# chmod -R 0777 www/
После этого собираем. Можно не трогать настройки по умолчанию.
# docker compose up
После сборки запустится серверная часть на 80-м порту. Можно идти браузером по IP адресу сервера. Состояние сервера можно посмотреть так: http://10.20.1.21/install/ Там должно быть всё зелёное. И видно, что есть одна локация Test Locations и нет подключенного агента. Это настройка по умолчанию, она задаётся в файле
docker/local/wptconfig/locations.ini
. Там только один тестовый location с ключом доступа 123456789. Если будете строить распределённую сеть агентов, то нужно будет добавлять туда новые локации и подключать агентов в соответствии с названиями и ключами.Идём на машину, где будет запускаться агент. Клонируем репозиторий:
# git clone https://github.com/catchpoint/WebPageTest.agent
В корне лежит Dockerfile. Откройте его и измените следующую строку:
RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install nodejs npm -y
На
RUN curl -sL https://deb.nodesource.com/setup_20.x | bash - && \
apt-get install nodejs -y
Отдельно npm ставить не надо, он входит в состав nodejs. Сборка будет валиться с ошибкой, если это не исправить. Собираем агента. Я сразу указал ему часовой пояс. Можно и другие параметры задать:
# docker build --tag wptagent --build-arg TIMEZONE=MSK .
Если сборка прошла без ошибок, то можно запускать самого агента:
# modprobe ifb numifbs=1
# docker run -d -e SERVER_URL="http://10.20.1.21/work/" -e LOCATION="Test" -e NAME="Test" -e KEY="123456789" --cap-add=NET_ADMIN --init --name wptagent wptagent
10.20.1.21 - IP адрес сервера. Через пару минут по ссылке http://10.20.1.21/install/ вы должны увидеть, что агент подключился. В логе сервера это будет видно по запросам на /work/getwork.php от IP адреса агента.
Теперь можно выполнять тесты сайтов с помощью этого агента. Мне это нужно было, чтобы протестировать последние изменения в Angie. Авторы указали, что повысили стабильность работы с протоколом HTTP/3. Напомню, что когда я включил в Angie протокол HTTP/3, заметил, что параметр TTFB увеличился. В тестах это стабильно воспроизводилось.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#webpagetest
BY ServerAdmin.ru



Share with your friend now:
tgoop.com/srv_admin/4657