andrey-tech / nginx-unit-log-analyzer-php
Tool to analyze NGINX Unit log file in console
Requires
- php: ^8.1 || ^8.2 || ^8.3
- symfony/console: ^5.4 || ^6.4 || ^7.1
- symfony/yaml: ^5.4 || ^6.4 || ^7.1
Requires (Dev)
- andrey-tech/pdepend-summary-formatter-php: ^1.2
- dg/bypass-finals: ^1.4
- overtrue/phplint: ^9.0
- pdepend/pdepend: ^2.16
- phpmd/phpmd: ^2.14
- phpunit/phpunit: ^10.5
- slevomat/coding-standard: ^8.15
- squizlabs/php_codesniffer: ^3.10
- vimeo/psalm: ^5.24
This package is auto-updated.
Last update: 2024-12-16 12:49:59 UTC
README
NGINX Unit log analyzer — это утилита для анализа лог-файлов сервера приложений NGINX Unit. Утилита анализирует продолжительность исполнения процессов NGINX Unit для запущенных приложений с точностью в одну секунду и формирует в консоли отчёты различных типов в табличной или графической форме.
Содержание
Установка
NGINX Unit log analyzer требует:
composer require --dev andrey-tech/nginx-unit-log-analyzer-php
Установка GNU Plot с помощью APT (Advanced Package Tool):
apt install gnuplot
Аргументы и опции командной строки
./vendor/bin/nginx-unit-log-analyzer <NGINX Unit log file> [OPTIONS]
где:
[OPTIONS]
— опции командной строки,<NGINX Unit log file>
— путь к лог-файлу NGINX Unit, содержащему информацию о запущенных процессах приложений вида:
2024/06/13 13:31:06 [info] 657#657 "application-3" application started
2024/06/13 13:32:14 [notice] 151#151 app process 657 exited with code 0
Опции командной строки
Типы формируемых отчётов
Утилита NGINX Unit log analyzer может формировать отчёты трех типов (--report-type
):
day
— продолжительность исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час и разбиением по дням;top
— топ-лист наиболее и наименее продолжительных процессов NGINX Unit для запущенных приложений с разбиением по дням;graph
(по умолчанию) — графики продолжительности исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час.
Отчёты типа day
и top
формируется в консоли в табличной форме.
Отчёт типа graph
формируется в графическом файле формата PNG
и требует для своего создания утилиту GNU Plot.
Отчёт типа graph
может включать следующие виды графиков (--graph-types
):
quantity
(по умолчанию) — график количества процессов NGINX Unit для запущенных приложений с усреднением за один час;average
(по умолчанию) — график среднеарифметической продолжительности исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час;median
— график медианной продолжительности исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час;maximum
— график максимальной продолжительности исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час;minimum
— график минимальной продолжительности исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час.
Отчёт типа day
Пример фрагмента отчёта типа day
для одного дня:
В таблице отчёта:
DATE
— анализируемая дата с указанием часового пояса;APP
— список имён приложений, которые были запущены за анализируемую дату;Processes
— информация о запущенных процессах NGINX Unit:Start
— анализируемый интервал времени, часы (от-до);Amount
— количество процессов, которые были запущены в течение интервала времени (+n
— число незавершённых процессов);
Duration
— информация о продолжительности исполнения процессов в течение временного интервала:Median
— медианное значение;Average
— среднеарифметическое значение;Std dev
— среднеквадратическое отклонение продолжительности;Min
— минимальное значение;Max
— максимальное значение.
Формат значений продолжительности исполнения процессов NGINX Unit в таблице имеет вид:
d h m s
, где: d
— дни, h
— часы, m
— минуты, s
— секунды.
Отчёт типа top
Пример фрагмента отчёта типа top
для одного дня:
В таблице отчёта:
DATE
— анализируемая дата с указанием часового пояса;APP
— список имён приложений, которые были запущены за анализируемую дату;Duration
— продолжительность исполнения процесса;App name
— имя приложения;Start time
— дата и время запуска процесса;Exit time
— дата и время завершения процесса;Start
— номер строки в лог-файле NGINX Unit, в которой был зафиксирован запуск процесса;End
— номер строки в лог-файле NGINX Unit, в которой было зафиксировано завершение процесса;Id
— идентификатор процесса в NGINХ Unit.
В верхней части таблицы содержится список из 20 наиболее продолжительных процессов, которые были зафиксированы за анализируемую дату.
В нижней части таблицы содержится список из 5 наименее продолжительных процессов, которые были зафиксированы за анализируемую дату.
Списки отсортированы по убыванию продолжительности.
Отчёт типа graph
Пример отчёта типа graph
, включающий 2 графика:
- график количества процессов NGINX Unit для запущенных приложений с усреднением за один час;
- график медианной продолжительности исполнения процессов.
Формат значений продолжительности исполнения процессов NGINX Unit на графике имеет вид:
H:MM:SS
, где: H
— часы, MM
— минуты, SS
— секунды.
Авторы
© 2024 andrey-tech
Лицензия
Данная библиотека распространяется на условиях лицензии MIT.