Страница статуса

Раздел даёт информацию о настройке и содержании страницы статуса менеджера процессов FPM. Смотрите также описание функции fpm_get_status().

Настройка

Страницу статуса FPM включают установкой параметра конфигурации pm.status_path в конфигурации пула FPM.

Предостережение

По соображениям безопасности доступ к странице статуса FPM разрешают только для внутренних запросов или доверенных IP-адресов, поскольку страница раскрывает URL-адрес запроса и информацию о доступных ресурсах.

В настройках веб-сервера потребуется разрешить прямые запросы по пути страницы статуса — в обход поиска файлов веб-сервером и без передачи управления обработкой запроса PHP-скриптам. Пример конфигурации для связки Apache + FPM, если менеджер процессов слушает сокет Unix-домена и для директивы pm.status_path установили значение /fpm-status, выглядит так:

<LocationMatch "/fpm-status">
 Require local
 ProxyPass "unix:/var/run/php-fpm.sock|fcgi://localhost/"
</LocationMatch>

После перезагрузки или перезапуска FPM и веб-сервера страница статуса станет доступна из браузера; при настройке ограничения по IP-адресу страница откроется, только если запрос поступит с разрешённого адреса.

Параметры запроса

Формат вывода страницы статуса изменяют путём добавления к адресу аргумента из следующего списка:

  • html
  • json
  • openmetrics
  • xml

Дополнительная информация также возвращается с параметром запроса full.

Примеры URL-адресов страниц состояния:

  • https://localhost/fpm-status — Краткий вывод в текстовом формате по умолчанию
  • https://localhost/fpm-status?full — Полный вывод в текстовом формате по умолчанию
  • https://localhost/fpm-status?json — Краткий вывод в формате JSON
  • https://localhost/fpm-status?html&full — Полный вывод в формате HTML

Отображаемая информация

В данных вывода в форматах JSON и XML значения даты и времени выводятся в формате метки времени UNIX, иначе они выводятся в формате, который даёт следующий пример даты: "03/Jun/2021:07:21:46 +0100".

Основная информация — каждый раз отображается на странице состояния
Параметр Описание
pool Имя пула процессов FPM.
proccess manager Тип менеджера процесса — static (статический), dynamic (динамический) или ondemand (по требованию).
start time Дата и время последнего запуска пула процессов.
start since Время в секундах с момента последнего запуска пула процессов.
accepted conn Общее количество принятых соединений.
listen queue Количество запросов (backlog), ожидающих свободного процесса.
max listen queue Максимальное количество запросов в очереди на прослушивание в любой момент времени.
listen queue len Максимально допустимый размер очереди прослушивания.
idle processes Количество процессов, которые в настоящее время простаивают (ожидают запросов).
active processes Количество процессов, которые в настоящее время обрабатывают запросы.
total processes Текущее общее количество процессов.
max active processes Максимальное количество одновременно активных процессов.
max children reached Было ли достигнуто максимальное количество процессов? Если да, то отображаемое значение будет больше или равно 1, иначе значение будет равно 0.
slow requests Общее количество запросов, которые достигли настроенного request_slowlog_timeout.
memory peak Пиковое значение объёма памяти, которую PHP выделил с момента запуска FPM-менеджера процессов.
Информация о каждом процессе — отображается только в режиме вывода full
Параметр Описание
pid Системный PID-идентификатор процесса.
state Состояние процесса — Idle, Running, …
start time Дата и время начала процесса.
start since Количество секунд с момента начала процесса.
requests Общее количество обслуженных запросов.
request duration Общее время в микросекундах, затраченное на обслуживание последнего запроса.
request method HTTP-метод запроса, который процесс обслужил последним.
request uri URI запроса, который процесс обслужил последним; в рамках шаблона Front Controller — с единой точкой входа — веб-сервер перенаправляет вызовы в главный скрипт, поэтому поле содержит только значение /index.php.
content length Длина тела запроса, в байтах, последнего запроса.
user HTTP-пользователь (PHP_AUTH_USER) последнего запроса.
script Полный путь к скрипту, который выполнил последний запрос. Это будет '-', если не применимо (например, запросы страницы состояния).
last request cpu Процент занятого центральным процессором времени при выполнении последнего запроса. Это значение будет равно 0, если процесс не в состоянии Idle, потому что вычисление проводится после окончания обработки запроса. Значение может превысить 100 %, потому что метрика покажет, какой процент от общего времени работы процессора занял последний запрос, — в расчёте менеджер учтёт процессы на каждом ядре, тогда как 100 % — это значение только для одного ядра.
last request memory Максимальный объем памяти, который потребил последний запрос. Это значение будет равно 0, если процесс не простаивает, поскольку вычисление проводится после окончания обработки запроса.

Замечание: Все значения специфичны для пула и сбрасываются при перезапуске менеджера FPM.

Замечание: Данные вывода в формате стандарта OpenMetrics используют различные типы параметров, чтобы лучше соответствовать формату OpenMetrics. Параметры и описания их значений включаются в данные вывода формата OpenMetrics.

Список изменений

Версия Описание
8.1.0 Добавлен формат OpenMetrics.
Добавить

Примечания пользователей 2 notes

up
20
uwe at ohse dot de
3 years ago
Before someone else misunderstands that:
  "request duration    The total time in seconds spent serving requests."

This is not the total time of all requests done by that process, but either the time used by the last request done (idle state), or the current request (all other states).

And the number given is not in seconds, but in microseconds.

The fpm status documentation is a mess.
up
0
nospam at briat dot org
1 year ago
For the record, if you're not using socks (remote php-fpm), here's the line to add to you vhost:
ProxyPassMatch ^/status$ fcgi://[FPM-HOST]:[FPM-PORT]/status
To Top