Модуль Монитор производительности позволяет включить сбор данных о выполняемых запросах. Это удобно, когда надо оценить картину в целом и найти узкие места. Однако, порой нужно сделать замер конкретной страницы.
Данный пакет упрощает эту задачу. Не нужно включать монитор глобально, нужно лишь сделать запрос в котором будет ожидаемый триггер и только для этого запроса будет включен монитор.
composer require maximaster/bitrix-sql-profile
Замер можно начать в любой момент, но чем раньше это будет сделано, тем более точной будет информация, т.к. будет учитывать весь период работы, а не его часть.
Рекомендуется подключить функционал через файл
bitrix/php_interface/after_connect_d7.php
:
// Опционально. В каких глобальных массивах будет проверяться триггер?
// Значения по умолчанию указаны в примере, если они вас устраивают, тогда не
// копируйте данную строку вовсе.
define('BITRIX_SQL_PROFILE_TRIGGERS', ['_GET', '_POST', '_COOKIE', '_ENV']);
// Опционально. Имя переменной для триггера. Например, можно сделать короче,
// если хочется. В примере дано значение по умолчанию, не копируйте строку,
// если оно устраивается.
define('BITRIX_SQL_PROFILE_TRIGGER_NAME', 'BITRIX_SQL_PROFILE');
// Значение триггера, которое будет активировать монитор.
define('BITRIX_SQL_PROFILE_VALUE', /* ЗАМЕНИТЕ КОММЕНТАРИЙ ВАШЕЙ СТРОКОЙ! */);
include_once $_SERVER['DOCUMENT_ROOT'].'/../vendor/maximaster/bitrix-sql-profile/inc/use_bitrix_sql_profiler.php';
Альтернативно, вы можете напрямую подключить SqlProfiler
и с помощью метода
if
самостоятельно определить логику при которой будет включаться монитор. См.
inc/use_bitrix_sql_profiler.php
в данном пакете для примера.
Сделайте запрос к сайту с указанием триггера и его значения:
https://example.com/somepage/?BITRIX_SQL_PROFILE=mysecretvalue
Перейдите в админку на страницу хитов, либо любую другую страницу монитора:
https://example.com/bitrix/admin/perfmon_hit_list.php?lang=ru