Использование Query Monitor для отладки вашего сайта WordPress
Доброго здравия, господа!
Рад приветствовать вас на моем блоге, который посвящен самой популярной системе управления контентом — WordPress.
Сегодня я бы хотел поговорить об отладке WordPress и повышение производительности сайта. И в этом нам поможет такой интересный и полезный плагин как Query Monitor.
Итак, по порядку.
Ко мне часто поступают вопросы про хостинг, которым я пользуюсь и поэтому решил указать хостинг в статье https://sprinthost.ru. Вы можете попробовать попользоваться хостингом 30 дней бесплатно. Чтобы понять, как будет работать Ваш сайт на этом хостинге просто перенести свой сайт (в этом поможет поддержка хостинга бесплатно) и и таким образом сможете понять подходит хостинг Вам или нет. На этом хостинге находятся сайты с 20 000 тысяч посещаемость и сайты чувствуют себя отлично. Рекомендую! Да, если делать оплату на 1 год то получаете скидку 25%. И что мне нравится — тех. поддержка всегда помогает в технических вопросах, за что им спасибо. Как Вы понимаете не всегда проходит всё гладко и нет желания, чтобы сайт не был доступен тем самым страдал трафик и доход.
Представьте себе такой сценарий: вы работаете над проектом разработки сайта на WordPress и у вас установлено дюжина или более плагинов. Тем не менее, ваш сайт не работает так, как вам бы хотелось. Вы устранили всех обычных подозреваемых: хостинг адекватный, нет явных ошибок JavaScript или PHP, и нет ничего более очевидного. Вы подозреваете, что виноваты один или несколько установленных вами плагинов, но как выяснить, какой плагин вызывает проблему?
Обычный метод выявления проблемных плагинов состоит в том, чтобы деактивировать плагины один за другим, пока не прекратится поведение, к которому вы пытаетесь обратиться. Тем не менее, если установлен правильный плагин отладки, вы сможете определить проблему быстрее и с большей точностью. Это тот сценарий, для решения которого был создан Query Monitor.
Оглавление
- Что такое Query Monitor?
- Что делает Query Monitor?
- Как использовать Query Monitor
Что такое Query Monitor?
Query Monitor — бесплатный плагин для отладки и разработки для WordPress. Вы можете использовать его для идентификации и отладки медленных запросов к базе данных, вызовов AJAX, запросов REST API и многого другого. Кроме того, плагин сообщает подробности веб-сайта, такие как зависимости скриптов и зависимости, перехватчики WordPress, срабатывающие при генерации страницы, детали среды размещения, теги условных запросов, встречающихся на текущей странице и многое другое.
Плагин 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
Надпись на новом элементе отображает несколько метрик:
- Время генерации страницы,
- Пиковое использование памяти 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 REST API с Query Monitor
Плагин Query Monitor включает некоторые функции для просмотра отладки и информации о производительности запросов REST API на вашем сайте WordPress.
Версия 3.7, выпущенная на днях, представляет еще одну новую функцию, позволяющую вам увидеть еще больше информации о производительности, которую вы ожидаете от Query Monitor.
Аутентификация
Подобно запросам к фронтенду или административной области вашего сайта, для просмотра отладочной информации для REST API вам необходимо выполнить запрос, авторизовавшись как пользователь, имеющий право просматривать результаты Query Monitor, например, администратор.
Ответ на такой запрос будет включать дополнительные HTTP-заголовки, содержащие обзор времени генерации ответа, использования памяти и подробную информацию об ошибках PHP.
Начиная с версии QM 3.7 ответ также будет включать полную отладочную информацию о запросах, HTTP API, объектном кэше и многом другом.
Обзор и информация об ошибках PHP
В ответ будут включены следующие дополнительные HTTP-заголовки:
x-qm-overview-time_taken
– Время генерации ответа в секундахx-qm-overview-time_usage
– Время генерации ответа в процентах от максимального времени выполнения PHPx-qm-overview-memory
– Использование памятиx-qm-overview-memory_usage
– Использование памяти в процентах от лимита памяти PHPx-qm-php_errors-error-count
– Количество возникших ошибок PHP (0 или более)x-qm-php_errors-error-{n}
– Подробная информация о каждой отдельной ошибке PHP
Полная информация о производительности и отладке
Когда выполняется запрос REST API, который запрашивается с параметром ?_envelope
, в ответе JSON будет присутствовать дополнительное свойство qm
(начиная с версии QM 3. 7) с информацией о нем:
qm.db_queries.dbs
– Все запросы к базе данныхqm.db_queries.dupes
– Дублирование запросов к базе данныхqm.db_queries.errors
– Запросы к базе данных с ошибкамиqm.cache
– Статистика кэша объектовqm.http
– HTTP API запросы и детали ответаqm.logger
– Зарегистрированные сообщения и переменныеqm.transients
– Обновленные транзиты
Информация несколько урезана по сравнению с той, которую вы увидите на главной панели Query Monitor для обычного HTML-запроса, но она содержит ключевую информацию, необходимую для исследования проблем производительности.
Свойство qm.db_queries.dbs
содержит обзорную информацию, а также полную информацию по каждому отдельному SQL-запросу, включая время выполнения, трассировку стека и возвращаемые строки, а свойство qm.http
содержит подробную информацию о каждом запрошенном URL, код ответа, время выполнения и трассировку стека.
Пример данных
При GET-запросе к дефолтной конечной точке (эндпоинту), например, example.com/wp-json/wp/v2/posts/?_envelope, вы обычно не ожидаете увидеть серверные HTTP API-запросы или транзиты, обновляемые при каждом запросе, но QM теперь будет раскрывать эту информацию, чтобы вы могли провести расследование!
Вот пример свойства qm
в ответе:
{ "db_queries": { "dbs": { "$wpdb": { "total": 15, "time": 0.0108, "queries": [ { "sql": "SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes'", "time": 0.0011, "stack": [ "wp_load_alloptions()", "is_blog_installed()", "wp_not_installed()" ], "result": 317 }, { "sql": "SELECT * FROM wp_users WHERE ID = '1' LIMIT 1", "time": 0.0003, "stack": [ "WP_User::get_data_by()", "WP_User->__construct()", "wp_set_current_user()", "_wp_get_current_user()", "wp_get_current_user()", "get_current_user_id()", "get_user_option()", "Classic_Editor::get_settings()", "Classic_Editor::init_actions()", "do_action('plugins_loaded')" ], "result": 1 }, { "sql": "SELECT wp_posts.ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'post' AND ((wp_posts.post_status = 'publish')) ORDER BY wp_posts.post_date DESC LIMIT 0, 5", "time": 0.0003, "stack": [ "WP_Query->get_posts()", "WP_Query->query()", "get_posts()", "DoubleUnderscore\\entrypoint()", "do_action('init')" ], "result": 5 } /* snip */ ] } }, "errors": { "total": 1, "errors": [ { "caller": "do_action('init')", "caller_name": "do_action('init')", "sql": "SELECT *\n\t\tFROM table_that_does_not_exist", "ltime": 0.00007200241088867188, "result": { "errors": { "1146": [ "Table 'wp.table_that_does_not_exist' doesn't exist" ] }, "error_data": [] } } ] }, "dupes": { "total": 1, "queries": { "SELECT wp_posts. ID FROM wp_posts WHERE 1=1 AND wp_posts.post_type = 'post' AND ((wp_posts.post_status = 'publish')) ORDER BY wp_posts.post_date DESC LIMIT 0, 5": [ 3, 14, 35 ] } } }, "cache": { "hit_percentage": 67.8, "hits": 931, "misses": 442 }, "http": { "total": 1, "time": 0.6586, "requests": [ { "url": "https://example.org", "method": "GET", "response": { "code": 200, "message": "OK" }, "time": 0.6586, "stack": [ "WP_Http->request()", "WP_Http->get()", "wp_remote_get()", "DoubleUnderscore\\entrypoint()", "do_action('init')" ] } ] }, "logger": { "warning": [ { "message": "Preloading was not found, generating fresh", "stack": [ "DoubleUnderscore\\dispatcher()", "DoubleUnderscore\\entrypoint()", "do_action('init')" ] } ], "debug": [ { "message": "Language: en_US", "stack": [ "DoubleUnderscore\\do_logs()", "DoubleUnderscore\\entrypoint()", "do_action('init')" ] } ] } }
ВКонтакте
Одноклассники
Telegram
Plugin Query Monitor WordPress
az monitor scheduled-query | Microsoft Learn
- Ссылка
Примечание
Эта ссылка является частью расширения scheduled-query для Azure CLI (версия 2. 38.0 или более поздней). Расширение будет автоматически устанавливаться при первом запуске команды az monitor scheduled-query . Подробнее о расширениях.
Команды для управления запланированными запросами.
Команды
az monitor scheduled-query create | Создайте запланированный запрос. |
az monitor scheduled-query delete | Удаление запланированного запроса. |
az monitor scheduled-query list | Вывод списка всех запланированных запросов. |
az monitor scheduled-query show | Отображение сведений о запланированном запросе. |
az monitor scheduled-query update | Обновление запланированного запроса. |
az monitor scheduled-query create
Создайте запланированный запрос.
az monitor scheduled-query create --condition --name --resource-group --scopes [--action-groups] [--auto-mitigate {false, true}] [--check-ws-alerts-storage {false, true}] [--condition-query] [--custom-properties] [--description] [--disabled {false, true}] [--evaluation-frequency] [--location] [--mad] [--severity] [--skip-query-validation {false, true}] [--tags] [--target-resource-type] [--window-size]
Примеры
Создайте запланированный запрос для виртуальной машины.
az monitor scheduled-query create -g {rg} -n {name1} --scopes {vm_id} --condition "count 'Placeholder_1' > 360 resource id _ResourceId at least 1 violations out of 5 aggregated points" --condition-query Placeholder_1="union Event, Syslog | where TimeGenerated > ago(1h) | where EventLevelName=='Error' or SeverityLevel=='err'" --description "Test rule"
Создайте запланированный запрос для виртуальных машин в группе ресурсов.
az monitor scheduled-query create -g {rg} -n {name1} --scopes {rg_id} --condition "count 'Placeholder_1' > 360 resource id _ResourceId at least 1 violations out of 5 aggregated points" --condition-query Placeholder_1="union Event, Syslog | where TimeGenerated > ago(1h) | where EventLevelName=='Error' or SeverityLevel=='err'" --description "Test rule"
Обязательные параметры
—condition
Условие, которое активирует правило.
—name -n
Имя правила запланированного запроса.
—resource-group -g
Имя группы ресурсов. Вы можете настроить расположение по умолчанию с помощью az configure --defaults group=<name>
.
—scopes
Разделенный пробелами список областей, к которые применяется правило. Ресурсы, указанные в этом параметре, должны иметь одинаковый тип и существовать в одном расположении.
Необязательные параметры
—action-groups
Идентификаторы ресурсов группы действий для вызова при срабатывании оповещения.
—auto-mitigate
—check-ws-alerts-storage —cwas
—condition-query
Запрос deteils для замены заполнителей в --condition
аргументе.
—custom-properties
Свойства полезных данных оповещения.
—description
Описание правила без текста.
—disabled
—evaluation-frequency
—location -l
Расположение. Значения из az account list-locations
. Расположение по умолчанию можно настроить с помощью az configure --defaults location=<location>
.
—mad —mute-actions-duration
Отключение звука для выбранного периода времени (в формате длительности ISO 8601) после срабатывания оповещения.
—severity
—skip-query-validation
—tags
Теги, разделенные пробелами: key[=value] [key[=value] …]. Используйте «» для очистки существующих тегов.
—target-resource-type —type
Тип ресурса целевого ресурса в областях. Это необходимо указать, когда области являются группой ресурсов или подпиской.
—window-size
Глобальные параметры
—debug
Повышение уровня детализации журнала для включения всех журналов отладки.
—help -h
Отображение этого справочного сообщения и выход.
—only-show-errors
Показывать только ошибки, блокируя предупреждения.
—output -o
Формат вывода.
—query
Строка запроса JMESPath. Дополнительные сведения и примеры см. на сайте http://jmespath.org/.
—subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s NAME_OR_ID
.
—verbose
Повышение уровня детализации журнала. Чтобы включить полные журналы отладки, используйте параметр —debug.
az monitor scheduled-query delete
Удаление запланированного запроса.
az monitor scheduled-query delete --name --resource-group [--yes]
Обязательные параметры
—name -n
Имя правила запланированного запроса.
—resource-group -g
Имя группы ресурсов. Вы можете настроить расположение по умолчанию с помощью az configure --defaults group=<name>
.
Необязательные параметры
—yes -y
Не запрашивать подтверждение.
Глобальные параметры
—debug
Повышение уровня детализации журнала для включения всех журналов отладки.
—help -h
Отображение этого справочного сообщения и выход.
—only-show-errors
Показывать только ошибки, блокируя предупреждения.
—output -o
Формат вывода.
—query
Строка запроса JMESPath. Дополнительные сведения и примеры см. на сайте http://jmespath.org/.
—subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s NAME_OR_ID
.
—verbose
Повышение уровня детализации журнала. Чтобы включить полные журналы отладки, используйте параметр —debug.
az monitor scheduled-query list
Вывод списка всех запланированных запросов.
az monitor scheduled-query list [--resource-group]
Необязательные параметры
—resource-group -g
Имя группы ресурсов. Вы можете настроить расположение по умолчанию с помощью az configure --defaults group=<name>
.
Глобальные параметры
—debug
Повышение уровня детализации журнала для включения всех журналов отладки.
—help -h
Отображение этого справочного сообщения и выход.
—only-show-errors
Показывать только ошибки, блокируя предупреждения.
—output -o
Формат вывода.
—query
Строка запроса JMESPath. Дополнительные сведения и примеры см. на сайте http://jmespath.org/.
—subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s NAME_OR_ID
.
—verbose
Повышение уровня детализации журнала. Чтобы включить полные журналы отладки, используйте параметр —debug.
az monitor scheduled-query show
Отображение сведений о запланированном запросе.
az monitor scheduled-query show --name --resource-group
Обязательные параметры
—name -n
Имя правила запланированного запроса.
—resource-group -g
Имя группы ресурсов. Вы можете настроить расположение по умолчанию с помощью az configure --defaults group=<name>
.
Глобальные параметры
—debug
Повышение уровня детализации журнала для включения всех журналов отладки.
—help -h
Отображение этого справочного сообщения и выход.
—only-show-errors
Показывать только ошибки, блокируя предупреждения.
—output -o
Формат вывода.
—query
Строка запроса JMESPath. Дополнительные сведения и примеры см. на сайте http://jmespath.org/.
—subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s NAME_OR_ID
.
—verbose
Повышение уровня детализации журнала. Чтобы включить полные журналы отладки, используйте параметр —debug.
az monitor scheduled-query update
az monitor scheduled-query update --name --resource-group [--action-groups] [--add] [--auto-mitigate {false, true}] [--check-ws-alerts-storage {false, true}] [--condition] [--condition-query] [--custom-properties] [--description] [--disabled {false, true}] [--evaluation-frequency] [--force-string] [--mad] [--remove] [--set] [--severity] [--skip-query-validation {false, true}] [--tags] [--target-resource-type] [--window-size]
Обязательные параметры
—name -n
Имя правила запланированного запроса.
—resource-group -g
Имя группы ресурсов. Вы можете настроить расположение по умолчанию с помощью az configure --defaults group=<name>
.
Необязательные параметры
—action-groups
Идентификаторы ресурсов группы действий для вызова при срабатывании оповещения.
—add
Добавьте объект в список объектов, указав пары «путь» и «значение ключа». Пример: —add property.listProperty <key=value, string или JSON string>.
—auto-mitigate
—check-ws-alerts-storage —cwas
—condition
Условие, которое активирует правило.
—condition-query
Запрос deteils для замены заполнителей в --condition
аргументе.
—custom-properties
Свойства полезных данных оповещения.
—description
Описание правила без текста.
—disabled
—evaluation-frequency
Частота вычисления правила в формате «##h#m##s».
—force-string
При использовании set или add сохраните строковые литералы вместо попытки преобразования в JSON.
—mad —mute-actions-duration
Отключение звука для выбранного периода времени (в формате длительности ISO 8601) после срабатывания оповещения.
—remove
Удаление свойства или элемента из списка. Пример: —remove property.list OR —remove propertyToRemove.
—set
Обновите объект, указав путь к свойству и значение для задания. Пример: —set property1.property2=.
—severity
Серьезность оповещения от 0 (критического) до 4 (подробный).
—skip-query-validation
—tags
Теги, разделенные пробелами: key[=value] [key[=value] …]. Используйте «» для очистки существующих тегов.
—target-resource-type —type
Тип ресурса целевого ресурса в областях. Это необходимо указать, когда области являются группой ресурсов или подпиской.
—window-size
Время агрегирования метрик в формате «##h#m##s».
Глобальные параметры
—debug
Повышение уровня детализации журнала для включения всех журналов отладки.
—help -h
Отображение этого справочного сообщения и выход.
—only-show-errors
Показывать только ошибки, блокируя предупреждения.
—output -o
Формат вывода.
—query
Строка запроса JMESPath. Дополнительные сведения и примеры см. на сайте http://jmespath.org/.
—subscription
Имя или идентификатор подписки Подписку по умолчанию можно настроить с помощью az account set -s NAME_OR_ID
.
—verbose
Повышение уровня детализации журнала. Чтобы включить полные журналы отладки, используйте параметр —debug.
Как использовать Query Monitor – Query Monitor
Установка
Установите и активируйте Query Monitor, как и любой другой плагин WordPress. Вы можете загрузить его здесь, на WordPress.org.
Использование
Когда вы вошли в систему как администратор, вы увидите новый пункт меню в меню панели инструментов администратора:
Цифры вверху показывают по порядку:
- Время создания страницы в секундах
- Пиковое использование памяти
- Общее время выполнения SQL-запросов в секундах
- Общее количество SQL-запросов
Вся информация, отображаемая Query Monitor, относится к текущей загрузке страницы . Историческая информация недоступна (хотя эта функция запланирована в будущей версии).
Щелкните верхнюю часть меню, чтобы открыть панель Обзор
, или щелкните любой элемент меню, чтобы открыть соответствующую панель.
Первоначально вас, вероятно, больше всего заинтересует панель Запросы
, которая показывает все запросы к базе данных, которые были выполнены во время загрузки страницы, и позволяет фильтровать и сортировать их, а также определять, какой компонент отвечает за каждый запрос.
Отладка медленного сайта
Итак, ваш сайт работает медленно, и вы решили установить Query Monitor, чтобы определить причину. Есть несколько панелей, которые вы должны посмотреть в первую очередь.
1. Запросы по компонентам
Панель Запросы -> Запросы по компонентам
показывает сводную информацию о запросах к базе данных, которые выполнялись каждым плагином и темой во время загрузки страницы. Это хороший способ определить плохо работающие темы или плагины.
Эта панель отсортирована по общему времени, затраченному на все запросы, выполненные каждым компонентом. Плагин, который выполняет большое количество запросов или выполняет медленные запросы, увеличивает время загрузки вашего сайта.
2. Вызовы HTTP API
На панели Вызовы HTTP API
отображается информация о HTTP-запросах на стороне сервера, которые были выполнены во время загрузки страницы. Обычно это «невидимые» причины медленного сайта, которые могут возникать спорадически.
Если подключаемый модуль или тема регулярно запускает вызов HTTP API во время загрузки страницы, это увеличивает время загрузки вашего сайта.
3. Кэш объектов
На панели Обзор
отображается информация о нескольких аспектах вашего сайта, одним из которых является кэш объектов. Если у вас нет активного подключаемого модуля постоянного кэширования объектов, Query Monitor покажет вам сообщение.
Подключаемый модуль кэширования объектов значительно повышает производительность за счет кэширования результатов таких операций, как запросы к базе данных, вызовы HTTP API и другие медленные операции. По умолчанию WordPress использует непостоянный кеш объектов, что означает, что повторяющиеся операции при загрузке одной и той же страницы кэшируются, а повторяющиеся операции при загрузке страницы — нет.
Если вы видите сообщение «Внешний кэш объектов не используется», вам следует установить подключаемый модуль кэширования объектов для драйвера, такого как Redis или Memcached, который позволит кэшу объектов сохраняться при загрузке страниц и значительно повысить производительность вашего сайта. . Поговорите с вашим хостинг-провайдером, если вам нужна помощь в этом.
4. Ошибки PHP
Панель Ошибки PHP
появится только в том случае, если какой-либо код, который выполнялся во время загрузки страницы, вызвал ошибку PHP, например уведомление или предупреждение. Если вы видите красную или оранжевую подсветку в меню панели инструментов администратора Query Monitor, это означает, что произошла ошибка, и вы должны исследовать ее.
Код, вызывающий Предупреждение
означает, что код работает не так, как ожидалось, и может вызывать сбои в работе вашего сайта. Вы должны немедленно исследовать предупреждения. Кроме того, предупреждения могут увеличить время загрузки вашего сайта, поскольку каждая ошибка регистрируется вашим сервером.
Код, вызывающий уведомление
, менее критичен, но его все же следует изучить, поскольку он может свидетельствовать о плохо написанном коде. Уведомления могут записываться или не записываться вашим сервером в зависимости от его конфигурации.
5. Скрипты и стили
Если ваш сайт загружает много файлов JavaScript или CSS, это не обязательно замедлит время создания страницы на вашем сервере, но замедлит время загрузки страницы для ваших посетителей.
Панели Скрипты
и Стили
показывают, какие файлы были поставлены в очередь через систему зависимостей WordPress. Если на этих панелях отображается большое количество файлов, вам следует подумать об установке плагина, который минимизирует и объединяет их.
Все остальное
Несмотря на свое название, Query Monitor включает большое количество функций, не связанных с запросами к базе данных. Например, на панели
вы можете увидеть информацию о правилах перезаписи и переменных запроса; на панели Шаблон
вы можете увидеть информацию об иерархии шаблона темы и частях шаблона; а на панели Environment
вы можете увидеть параметры конфигурации и информацию о вашем сервере.
Пролистайте каждую из панелей и, надеюсь, вы найдете что-нибудь интересное!
Помогает ли Query Monitor отлаживать сайт, не вырывая волосы?
Если да, рассмотрите возможность спонсирования моей работы над Query Monitor ❤️. Спасибо!
Как использовать плагин отладки Query Monitor в WordPress
- Что такое WordPress Query Monitor?
- Возможности монитора запросов WordPress
- Почему Query Monitor полезен для разработчиков?
- Как использовать монитор запросов WordPress
- Заключительные мысли
Что такое монитор запросов WordPress?
Query Monitor — это подключаемый модуль WordPress, который значительно повышает эффективность этапа отладки и в целом повышает общую производительность рабочих процессов разработки WordPress.
Плагин добавляет запись в верхнюю строку меню, которая действует как раскрывающийся список, содержащий количество запросов, выполняемых на текущей странице. Включает в себя время загрузки, фильтры по типу запроса, компонентам и т. д. В результате разработчики лучше понимают причины ошибок на сайте.
Он был разработан Джоном Блэкборном и доступен как в официальном репозитории плагинов WordPress, так и на GitHub. Query Monitor регулярно обновляется, а команда разработчиков обеспечивает оперативную поддержку и исправление всех зарегистрированных ошибок.
Установка плагина достаточно проста и в целом не требует никаких дополнительных действий (по сравнению с процессом установки аналогичных плагинов), а также не требует дополнительной настройки после установки. Прямо из коробки он начинает отображать выпадающий список на панели инструментов администратора.
Вы можете получить доступ к сведениям о запросах к базе данных, CSS, активным перехватчикам и вызовам HTTP API, щелкнув записи в раскрывающемся списке.
Особенности WordPress Query Monitor
Вот краткий обзор наиболее ярких функций Query Monitor.
Ошибки темы
Функция темы перечисляет все запросы, вызванные установленной темой WordPress. Он отображает имя файла шаблона темы, отвечающего за конкретный запрос, и показывает полную иерархию шаблонов. Функция темы также выделяет незагруженные части темы и имя активной темы WordPress.
Ошибки PHP
WordPress работает на PHP, и независимо от того, генерирует ли запрос тема или плагин, он имеет форму кода PHP. Функция ошибок PHP выделяет исходные компоненты и место, ответственное за создание запроса.
Примечание: Не все запросы, перечисленные в Query Monitor, являются серьезными. Это может быть просто предупреждение.
Вызовы AJAX
Динамические сайты WordPress выполняют множество вызовов Ajax для отправки и получения данных в режиме реального времени без загрузки всей веб-страницы. Query Monitor также показывает эти запросы вместе с другой полезной отладочной информацией. Эта информация помогает разработчику выделить любые ошибки.
REST API
Если у вас есть разрешение на мониторинг Query Monitor, вы можете отлаживать информацию, представленную в заголовке аутентифицированного запроса WordPress REST API. В настоящее время плагин поддерживает только ошибки PHP и использование памяти.
Аутентификация
По умолчанию только администратор установки с одним сайтом и суперадминистратор мультисайта WordPress могут просматривать журналы внутри Query Monitor. Однако вы можете настроить файл cookie для проверки подлинности, чтобы просматривать журналы, даже если вы вошли в систему как пользователь.
Заявление о конфиденциальности
WordPress Query Monitor не собирает и не отправляет данные третьим лицам.
Я также заметил, что надстройки панели отладки можно использовать с Query Monitor; однако сначала вам нужно деактивировать панель отладки. Кроме того, существуют надстройки для Query Monitor для лучшего взаимодействия с пользователем.
Почему Query Monitor полезен для разработчиков?
Разработчики получают четкое представление об областях улучшения благодаря подключаемому модулю Query Monitor. Более того, они могут обнаружить плагин или другие активы веб-сайта, которые потребляют ненормальный объем ресурсов или (в худшем случае) конфликтуют с остальными основными файлами.
Query Monitor — идеальное решение для выявления узких мест, которые можно устранить с помощью улучшенных фрагментов кода, альтернатив или, в некоторых случаях, полной замены скриптов/плагинов. Следовательно, это выгодно для владельцев веб-сайтов и разработчиков, заинтересованных в улучшении оптимизации веб-производительности (WPO).
Рассмотрим простую задачу разработчика — узнать время загрузки страницы и количество активных запросов на странице.
WordPress предлагает две простые функции: get_num_queries () и timer_stop() . Как понятно из названия, get_num_queries() возвращает количество запросов к базе данных, сгенерированных во время выполнения, а timer_stop() возвращает количество секунд, необходимых для генерации страницы.
Как использовать WordPress Query Monitor [Простые шаги]
После того, как вы установили и активировали Query Monitor, вам необходимо выполнить следующие шаги:
- Перейти к Плагины .
- Нажмите Установленные плагины → Монитор запросов .
- Нажмите Настройки .
- Нажмите кнопку « Установить файл cookie аутентификации ».
Теперь давайте подробно рассмотрим каждый раздел плагина Query Monitor.
Обзор
На первой вкладке представлен обзор вашего веб-сайта. Он показывает время генерации страницы, пиковое использование памяти, время запроса к базе данных и запросы к базе данных.
Запросы к базе данных
Запрос к базе данных инициируется всякий раз, когда пользователь запрашивает или пытается предоставить какую-либо информацию.
Query Monitor отслеживает этот запрос и отображает его в журналах, чтобы вы как пользователь могли видеть, какие запросы были выполнены успешно, а какие нет. Он также позволяет фильтровать по типу и компоненту запроса.
Запрос
Функция запроса показывает переменную запроса для текущего пользователя и выделяет пользовательский запрос . Он также показывает связанные строки запроса , присутствующие в запросе.
Экран администратора
Раздел экрана администратора показывает действия, происходящие в панели администратора WordPress. В нем перечислены компоненты, доступные из панели администратора, и отображается ошибка из-за недоступности какого-либо файла PHP.
Сценарии
При посещении вкладки «Сценарии» в мониторе запросов отображаются все сценарии и стили, находящиеся в очереди и включенные в запрос. Он также выделяет любой сломанный или не отвечающий скрипт из-за внешней зависимости.
Стили
Иногда из-за внешней зависимости определенный файл CSS не загружается и нарушает макет вашей веб-страницы. Этот раздел посвящен таблицам стилей CSS и поможет вам определить исходные файлы, лежащие в основе любого запроса.
Хуки и действия
Хуки и действия играют важную роль на любом сайте WordPress, поскольку они позволяют создавать пользовательские функции с использованием предопределенных элементов управления, предоставляемых WordPress. Иногда это может привести к поломке вашего веб-сайта, а устранение неполадок может быть утомительным.
Спасибо Query Monitor со встроенным инструментом для выявления ошибок, вызванных хуками и действиями, что позволяет фильтровать действия и хуки по ядру, теме или плагину. Он также дает вам полное имя и ссылку, которые легко найти внутри кода для целей отладки.
Языки
В случае многоязычного веб-сайта вкладка Язык определяет все поврежденные или недоступные файлы и отображает настройки языка.
Вызовы HTTP API
На этой вкладке отображаются все запросы со стороны сервера и код ответа, журнал тайм-аутов и невыполненные запросы. Это полезная функция, поскольку она позволяет вам видеть ответ в режиме реального времени и помогает эффективно отлаживать код на стороне сервера.
Временные обновления
WordPress может кэшировать ответ API в своей базе данных, поскольку некоторые API допускают определенное количество запросов в данный момент времени. Transient Updates показывает эти переходные процессы, а также отображает размер и компонент.
Проверка возможностей
По умолчанию это неактивно, и его можно активировать, поместив код в файл wp-config.php. Проверка возможностей выполняет проверку возможностей для каждого пользователя на странице и отображает параметры вместе с результатом.
Среда
Это полный обзор среды WordPress, содержащий разделы PHP, База данных и WordPress. В каждом разделе отображается полезная информация о среде, такая как версия MySQL, лимит памяти PHP, версия WordPress и т. д.
Условия
Функция условий показывает все условия WordPress для текущего запроса.
Подведение итогов!
Плагин WordPress Query Monitor фокусируется на отладке и предоставляет всю необходимую информацию в простой для понимания форме. Плагин идеально подходит для быстрого определения плагинов, тем или функций, влияющих на производительность веб-сайта.
Плагин интегрирует меню в панель инструментов администратора, которое показывает общее описание текущей страницы с полными данными, отображаемыми на панели (после выбора пункта меню). Какие из этих компонентов вы часто используете для поддержания работоспособности своего сайта? Просветите нас в разделе комментариев ниже.
Как установить и использовать подключаемый модуль Query Monitor
Как установить и использовать подключаемый модуль Query MonitorВ этой статье описывается, как установить и использовать подключаемый модуль Query Monitor — инструмент отладки, помогающий отслеживать производительность WordPress.
- Запросы к базе данных.
- Заголовки запросов и ответов HTTP.
- Скрипты, включая хуки и действия.
- Информация о среде сайта, включая сервер, PHP, MySQL и WordPress.
Дополнительные сведения о возможностях Query Monitor см. на https://github.com/johnbillion/query-monitor.
Содержание- Установка плагина
- Использование плагина
- Дополнительная информация
Установка плагина
Чтобы установить Query Monitor на свой сайт WordPress, выполните следующие действия:
- Войдите на свой сайт WordPress как администратор.
- На левой боковой панели нажмите Плагины:
- Щелкните Добавить новый.
В текстовом поле Search plugins введите query monitor и нажмите Enter:
Найдите Query Monitor и нажмите «Установить сейчас»:
После того, как WordPress завершит установку плагина, нажмите «Активировать». Монитор запросов появится на панели инструментов:
.
Использование подключаемого модуля
После установки подключаемого модуля Query Monitor вы готовы отслеживать свой сайт. Для этого выполните следующие действия:
- Войдите на свой сайт WordPress как администратор.
- На панели инструментов выберите параметр в меню Query Monitor:
Полную информацию обо всех этих параметрах см. в документации Query Monitor по адресу https://github.com/johnbillion/query-monitor. Вот некоторые из наиболее полезных вариантов:
.- Запросы . Этот параметр показывает необработанные запросы к базе данных, которые использовались для создания текущей страницы, а также функции, которые выполняли запросы.
- Запрос : Этот параметр показывает HTTP-запрос для текущей страницы.
- Скрипты . Этот параметр показывает все файлы сценариев, загруженные для текущей страницы.