Skip to content
Modx3ProfilerToolbar
Modx3ProfilerToolbar
Панель метрик текущего запроса для MODX 3. Без админки и без хранения трейсов
  • MODX 3
  • PHP 8.1
  1. Компоненты
  2. Modx3ProfilerToolbar
  3. Панель на странице

Панель на странице ​

Когда панель появляется ​

  1. Включите modx3profilertoolbar.enabled и modx3profilertoolbar.frontend_toolbar.
  2. Войдите в менеджер. Нужна сессия контекста mgr.
  3. Откройте страницу в контексте web. Запрос должен попасть в sampling_rate.
  4. В выводе ресурса должна быть строка </body>.

Скрипт панели: assets/components/modx3profilertoolbar/js/toolbar/toolbar.js. Это модуль. Он импортирует petite-vue 0.4.1 с unpkg.com. Отдельного запроса за метриками нет. JSON лежит в window.modx3profilertoolbarToolbarData. Подписи задаёт лексикон modx3profilertoolbar (ru, en, uk).

Откуда берутся цифры ​

Сбор идёт на сервере.

  1. OnMODXInit. Плагин создаёт сервис и вызывает start(). Если запрос профилируется, стартует таймер и открывается событие OnMODXInit. Затем replaceParser() подменяет $modx->parser, даже если сбор на этом запросе не стартовал.
  2. OnHandleRequest открывает своё событие. OnLoadWebDocument закрывает OnHandleRequest и открывает своё. OnWebPagePrerender закрывает OnLoadWebDocument, открывает своё и сразу вызывает stop() без закрытия OnWebPagePrerender.
  3. stop() собирает трейс. Расчёт рекомендаций и оценки выполняется. В JSON панели этот расчёт не копируется.
  4. Вставка перед </body>: CSS, JSON и модуль toolbar.js. Без </body> вывод не меняется.

OnMODXInit и OnWebPagePrerender остаются с длительностью 0. Ненулевые полосы у OnHandleRequest и OnLoadWebDocument.

Свёрнутая строка ​

ФрагментПоле
время, мсполное время от start() до stop()
памятьпик, в МБ с двумя знаками
число и подпись сниппетовсумма attempts у тегов типа snippet
число и подпись SQLчисло строк во вкладке SQL, не число запросов внутри текста строки

Вкладка «Обзор» ​

Цвет времени: меньше 200 мс зелёный, от 200 мс и меньше 500 мс жёлтый, от 500 мс красный.

СтрокаЗначение
Общее времято же полное время, мс
TTFBто же полное время, мс
PHPполное время минус время SQL, мс
SQLсумма времени строк SQL, мс
Время запросоввремя SQL в секундах, четыре знака
Источникdatabase, если ресурс сгенерирован в этом запросе, иначе cache

Вкладка «Медленные компоненты» ​

До 10 строк, сортировка по времени в данных. Если у строки есть число вызовов, на экране формат Snippet: имя — N Вызовов. Миллисекунды и признак кэша в эту ветку не попадают. У тегов число вызовов задано всегда. Имя берётся из текста тега без обёртки [[ ]] и не длиннее 255 символов.

Вкладка «Таймлайн» ​

До 20 событий. Ширина полосы равна доле длительности от самого длинного события в списке. У нулевой длительности полоса пустая.

В списке есть OnMODXInit, OnHandleRequest, OnLoadWebDocument, OnWebPagePrerender.

Вкладка «SQL» ​

До 20 строк. Если с начала сбора были запросы, во вкладке одна строка. Текст N SQL queries, время равно разнице queryTime, число вызовов равно N. При нуле запросов строк нет.

Бейдж «Возможная проблема N+1» рисуется только при флаге is_n1. Сбор этот флаг не ставит.