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
Опция | Описание | Значение | По умолчанию | Пример использования |
---|---|---|---|---|
--log-timezone |
Часовой пояс лог-файла | Имя часового пояса | Часовой пояс скрипта | --log-timezone Europe/Moscow |
--report-type |
Тип формируемого отчёта | day , top , graph |
graph |
--report-type day |
--report-timezone |
Часовой пояс отчёта | Имя часового пояса | Часовой пояс скрипта | --report-timezone Europe/Moscow |
--filter-start-time-from |
Фильтр записей лога по времени, от | Строка даты и времени | — | --filter-start-time-from 2024-06-17 00:00:00 UTC |
--filter-start-time-to |
Фильтр записей лога по времени, до | Строка даты и времени | — | --filter-start-time-to 2024-06-17 23:59:59 UTC |
--filter-application-name |
Фильтр записей лога по приложению | Имя приложения | — | --filter-application-name application-1 |
--graph-file-name |
Имя файла графиков для отчёта типа graph |
Имя файла | nginx-unit-log-analyzer.png |
--graph-file-name unit.png |
--graph-types |
Типы графиков для отчёта graph |
quantity , median , average , maximal , minimal |
quantity и average |
--graph-types quantity --graph-types median |
--no-color |
Отключение цветов в консоли | — | — | --no-color |
Утилита 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 для запущенных приложений с усреднением за один час;maximal
— график максимальной продолжительности исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час;minimal
— график минимальной продолжительности исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час.
Пример фрагмента отчёта типа 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
для одного дня:
В таблице отчёта:
DATE
— анализируемая дата с указанием часового пояса;APP
— список имён приложений, которые были запущены за анализируемую дату;Duration
— продолжительность исполнения процесса;App name
— имя приложения;Start time
— дата и время запуска процесса;Exit time
— дата и время завершения процесса;Start
— номер строки в лог-файле NGINX Unit, в которой был зафиксирован запуск процесса;End
— номер строки в лог-файле NGINX Unit, в которой было зафиксировано завершение процесса;Id
— идентификатор процесса в NGINХ Unit.
В верхней части таблицы содержится список из 20 наиболее продолжительных процессов, которые были зафиксированы за анализируемую дату.
В нижней части таблицы содержится список из 5 наименее продолжительных процессов, которые были зафиксированы за анализируемую дату.
Списки отсортированы по убыванию продолжительности.
Пример отчёта типа graph
, включающий 2 графика:
- график количества процессов NGINX Unit для запущенных приложений с усреднением за один час;
- график медианной продолжительности исполнения процессов.
Формат значений продолжительности исполнения процессов NGINX Unit на графике имеет вид:
H:MM:SS
, где: H
— часы, MM
— минуты, SS
— секунды.
© 2024 andrey-tech
Данная библиотека распространяется на условиях лицензии MIT.