Query Monitor – отладка WordPress и повышение производительности сайта

Доброго здравия, господа!

Рад приветствовать вас на моем блоге, который посвящен самой популярной системе управления контентом – WordPress.

Сегодня я бы хотел поговорить об отладке WordPress и повышение производительности сайта. И в этом нам поможет такой интересный и полезный плагин как Query Monitor.

Итак, по порядку.

Query Monitor

Представьте себе такой сценарий: вы работаете над проектом разработки сайта на WordPress и у вас установлено дюжина или более плагинов. Тем не менее, ваш сайт не работает так, как вам бы хотелось. Вы устранили всех обычных подозреваемых: хостинг адекватный, нет явных ошибок JavaScript или PHP, и нет ничего более очевидного. Вы подозреваете, что виноваты один или несколько установленных вами плагинов, но как выяснить, какой плагин вызывает проблему?

Обычный метод выявления проблемных плагинов состоит в том, чтобы деактивировать плагины один за другим, пока не прекратится поведение, к которому вы пытаетесь обратиться. Тем не менее, если установлен правильный плагин отладки, вы сможете определить проблему быстрее и с большей точностью. Это тот сценарий, для решения которого был создан Query Monitor.

Что такое Query Monitor?

Query Monitor – бесплатный плагин для отладки и разработки для WordPress. Вы можете использовать его для идентификации и отладки медленных запросов к базе данных, вызовов AJAX, запросов REST API и многого другого. Кроме того, плагин сообщает подробности веб-сайта, такие как зависимости скриптов и зависимости, перехватчики WordPress, срабатывающие при генерации страницы, детали среды размещения, теги условных запросов, встречающихся на текущей странице и многое другое.

Что такое Query Monitor?

Плагин WordPress Query Monitor

Плагин был разработан John Blackbourn (Джоном Блэкборном), основным коммиттером WordPress, который в настоящее время является разработчиком “Human Made” и ранее работал на WordPress.com VIP – другими словами, он тот, кто действительно знает WordPress. Query Monitor был добавлен в каталог плагинов WordPress в 2013 году и в настоящее время может похвастаться более чем 80 000 активных установок – впечатляющая сумма для плагина разработки. Пользовательский рейтинг плагина в пять из пяти звезд помогает объяснить его популярность среди разработчиков.

Что делает Query Monitor?

Много чего.

Я не буду тратить время на перечисление всех функций, предлагаемых Query Monitor, но если вы хотите вникнуть в детали, взгляните на Query Monitor на GitHub. На высоком уровне Query Monitor наблюдает за каждой транзакцией WordPress, которая происходит на сервере или между сервером и браузером посетителя, пока генерируется веб-страница WordPress. Затем он добавляет отчет в футер (подвал) веб-страницы с подробным описанием всей собранной информации. Он работает на каждой странице, включая страницы /wp-admin/, поэтому вы можете использовать его для отладки любой внешней или внутренней страницы.

Плагин назван в честь основной функции: мониторинг запросов к базе данных. Каждый запрос отслеживается, синхронизируется и привязывается к функции, которая его сгенерировала. В результате вы можете сортировать запросы в зависимости от того, сколько времени они занимают, и выявлять проблемные, медленно загружаемые запросы.

Query Monitor также отслеживает и выводит список обработчиков и условных тегов WordPress на созданную страницу. Как разработчик, вы можете использовать эту информацию для определения правильного хука или условного тега, который будет использоваться при добавлении нового плагина или функциональности темы.

Query Monitor предоставляет много дополнительной информации. Лучший способ получить представление обо всем, что генерируется Query Monitor – это установить его на тестовом сайте и просмотреть отчеты.

Как использовать Query Monitor?

Установите Query Monitor, используя предпочитаемый метод: он находится на GitHub, а также доступен в каталоге плагинов WordPress. После того, как вы установите плагин, первое, что вы заметите, это то, что в панель администратора был добавлен новый пункт меню:

Как использовать Query Monitor?

Панель администратора Query Monitor

Надпись на новом элементе отображает несколько метрик:

  • Время генерации страницы,
  • Пиковое использование памяти PHP,
  • Время запроса к базе данных и
  • Общее количество выполненных запросов к базе данных.

Наведите указатель мыши на панель администратора, и появится раскрывающееся меню. Все данные, сгенерированные Query Monitor, содержатся в одном отчете, добавленном в нижнюю часть страницы и разбитом на несколько разделов. Нажмите на любой из элементов в раскрывающемся меню, чтобы перейти в соответствующий раздел отчета Query Monitor. Например, ниже приведен скриншот из общих «запросов», которые выполняются на странице.

перейти в соответствующий раздел

Запросы в Query Monitor

Если возникают какие-либо ошибки PHP или какие-либо запросы занимают слишком много времени, дополнительные элементы будут добавлены в раскрывающееся меню, освещающее эти проблемы. Нажмите на них, чтобы увидеть больше деталей.

Вы можете заметить, что последние несколько элементов в списке меняются с одной страницы на другую. Эти элементы, выделенные зеленым цветом, являются тегами условных запросов, удовлетворяющих текущей странице.

Прокрутите весь отчет, чтобы увидеть множество данных, сгенерированных Query Monitor. Потратьте время, чтобы попробовать выпадающие меню, доступные для фильтрации данных, содержащихся в отчете, а также поля, содержащие символ «+», которые можно использовать для просмотра дополнительных данных о многих отчетных деталях.

Если вы хотите получить еще больше данных из Query Monitor, взгляните на сторонние дополнения Query Monitor, чтобы увидеть, существует ли плагин, который будет генерировать необходимую отладочную информацию.

Как просмотреть данные монитора запросов как вышедший из системы пользователь

Когда вы просматриваете веб-сайт WordPress, когда вы вошли в систему как администратор, сайт содержит панель администратора и дополнительные сценарии, которые посетители не видят. Query Monitor позволяет просматривать сайт во время выхода из системы и по-прежнему иметь доступ к отладочной информации. Однако использование этой функции в первый раз может быть немного сложнее.

Чтобы просмотреть данные Query Monitor как вышедшего из системы посетителя, выполните следующие действия:

  • Перейдите в область администрирования WordPress, войдя в систему как администратор, и щелкните элемент Query Monitor на панели администратора.
  • Прокрутите в самую нижнюю часть сообщаемых данных и найдите ссылку с надписью «Установить куки аутентификации». Обратите внимание, что вы должны быть в административной области, чтобы увидеть ссылку. Если вы ищите ссылку на главной странице, вы не найдете ее там.
  • Нажав на эту ссылку, вы добавите файл cookie аутентификации в ваш браузер. Таким образом, Query Monitor будет знать, как отображать результаты теста, даже если вы не вошли в систему.
  • С установленным файлом cookie аутентификации выйдите из сайта или переключитесь на профиль пользователя без прав администратора с помощью плагина, такого как User Switching.
  • Перейдите на страницу, на которой вы хотите увидеть информацию об отладке, и прокрутите страницу до конца. Там вы увидите сокращенную версию отчета Query Monitor. Нажмите на любой элемент, чтобы развернуть отчет.

Описание из репозитория WordPress

Query Monitor – это панель инструментов для разработчиков WordPress. Он позволяет отлаживать запросы к базе данных, ошибки PHP, перехваты и действия, блоки редактора блоков, поставленные в очередь скрипты и таблицы стилей, вызовы HTTP API и многое другое.

Он включает в себя некоторые расширенные функции, такие как отладка вызовов Ajax, вызовы REST API и проверки возможностей пользователя. Он включает в себя возможность сузить большую часть его вывода плагином или темой, что позволяет быстро определять неэффективные плагины, темы или функции.

Query Monitor сосредоточен на предоставлении своей информации в удобной форме, например, показывая совокупные запросы к базе данных, сгруппированные по плагинам, темам или функциям, которые за них отвечают. Он добавляет меню панели инструментов администратора, показывающее обзор текущей страницы, с полной информацией об отладке, отображаемой на панелях после выбора пункта меню.

Вот обзор того, что показано для каждой загрузки страницы:

  • Запросы к базе данных, включая уведомления о медленных, повторяющихся или ошибочных запросах. Позволяет фильтровать по типу запроса (SELECT, UPDATE, DELETE и т.д.), ответственный компонент (плагин, тема, ядро WordPress) и вызов функции, а также предоставляет отдельные агрегированные представления для каждого.
  • Имя файла шаблона, полная иерархия шаблона и имена всех частей шаблона, которые были загружены или не загружены.
  • Ошибки PHP представлены вместе с их ответственным компонентом и стеком вызовов, а также видимым предупреждением на панели инструментов администратора.
  • Блоки и связанные с ними свойства в содержании сообщений при использовании WordPress 5.0+ или плагина Gutenberg.
  • Сопоставленные правила перезаписи, связанные строки запроса и переменные запроса.
  • Сценарии и таблицы стилей, поставленные в очередь, вместе с их зависимостями и оповещениями о нарушенных зависимостях.
  • Настройки языка и загруженные файлы перевода (файлы MO) для каждого текстового домена.
  • Запросы HTTP API, с кодом ответа, ответственным компонентом и затраченным временем, с оповещениями о неудачных или ошибочных запросах.
  • Проверка возможностей пользователя, а также результат и любые параметры, переданные для проверки возможностей.
  • Информация о среде, включая подробную информацию о PHP, базе данных, WordPress и веб-сервере.
  • Значения всех условных функций WordPress, таких как is_single(), is_home() и т. д.
  • Переходные процессы, которые были обновлены.

К тому же:

  • Всякий раз, когда происходит перенаправление, Query Monitor добавляет HTTP-заголовок, содержащий стек вызовов, так что вы можете использовать свой любимый HTTP-инспектор или инструмент разработчика в браузере, чтобы отслеживать, что вызвало перенаправление.
  • Ответ от любого инициированного jQuery Ajax-запроса на странице будет содержать различную отладочную информацию в своих заголовках. Ошибки PHP также выводятся на консоль разработчика браузера.
  • Ответ от аутентифицированного запроса WordPress REST API будет содержать различную отладочную информацию в своих заголовках, если аутентифицированный пользователь имеет разрешение на просмотр выходных данных Query Monitor.

По умолчанию выходные данные Query Monitor отображаются только для администраторов при установке на одном сайте и для суперпользователей при установке с несколькими сайтами.

В дополнение к этому вы можете установить файл cookie для аутентификации, который позволяет просматривать выходные данные монитора запросов, когда вы не вошли в систему (или если вы вошли в систему как пользователь, не являющийся администратором).

Заявление о конфиденциальности

Query Monitor не хранит постоянно какие-либо данные, которые он собирает. Он не отправляет данные третьим лицам и не включает ресурсы третьих лиц.

Подведем итог

Как разработчик WordPress, наличие правильных инструментов может облегчить вашу работу. Query Monitor – это бесплатный инструмент, который поможет вам сэкономить много времени. Вы можете использовать его для:

  • Определения медленных запросов и функции, которые их запускают,
  • Создания списка хуков WordPress, обнаруженных во время генерации страницы WordPress,
  • Подтверждения, какие условные теги применяются к текущей странице или сообщению,
  • Определение отношений между ресурсами JavaScript,
  • Детальный просмотр конфигурации сервера и
  • Еще много чего полезного.

Если вы попробуете Query Monitor, есть большая вероятность, что он быстро станет постоянным дополнением к вашей среде разработки WordPress.

Ну а на сегодня у меня все – буду снова ждать вас на моем сайте, приходите!

Вам понравилась статья?
плохохорошо (Пока оценок нет)
Загрузка...
Обо мне
Юрич:
Занимаюсь созданием сайтов на WordPress более 6 лет. Работал в нескольких веб-студиях, да и сейчас работаю. Иногда подрабатываю на фрилансе, как на нашем так и на зарубежном. Везде зарекомендовал себя очень хорошо. Если нужен сайт на WordPress, шаблон для сайта или лендинг - не стесняйтесь - пишите. Рад буду помочь!