andrey-tech/nginx-unit-log-analyzer-php

Tool to analyze NGINX Unit log file in console

1.0.5 2025-01-04 17:27 UTC

This package is auto-updated.

Last update: 2025-01-04 17:34:48 UTC


README

NGINX Unit log analyzer logo

Latest Stable Version PHP Version Require Total Downloads License

Russian version (русскоязычная версия)

The NGINX Unit Log Analyzer is a utility for analyzing log files from the NGINX Unit application server. It examines the execution durations of NGINX Unit processes for deployed applications with a precision of one second, generating various types of reports in either tabular or graphical formats.

Contents

Installation

The NGINX Unit Log Analyzer requires:

To install via Composer:

composer require --dev andrey-tech/nginx-unit-log-analyzer-php

To install GNU Plot using APT (Advanced Package Tool):

apt install gnuplot

Command Line Arguments and Options

./vendor/bin/nginx-unit-log-analyzer [OPTIONS] <log_file>

Where:

[OPTIONS] are the command line options,
<log_file> is the path to the NGINX Unit log file containing information about application processes, formatted as:

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

Command Line Options

Types of Generated Reports

The NGINX Unit Log Analyzer can generate three types of reports (the --report-type option):

  1. day — Execution durations of NGINX Unit processes for deployed applications, averaged over one hour and grouped by day.
  2. top — A top list of the longest and shortest NGINX Unit process executions for deployed applications, grouped by day.
  3. graph (default) — Graphs of NGINX Unit process execution durations for deployed applications, averaged over one hour.

The day and top reports are generated in the console in tabular form.

The graph report is generated as a graphical file in PNG format and requires the GNU Plot utility for its creation.

The graph report can include the following types of graphs (--graph-types):

  • quantity (default) — A graph showing the number of NGINX Unit processes for deployed applications, averaged per hour.
  • average (default) — A graph of the arithmetic mean execution duration of NGINX Unit processes for deployed applications, averaged per hour.
  • median — A graph of the median execution duration of NGINX Unit processes for deployed applications, averaged per hour.
  • maximum — A graph of the maximum execution duration of NGINX Unit processes for deployed applications, averaged per hour.
  • minimum — A graph of the minimum execution duration of NGINX Unit processes for deployed applications, averaged per hour.

Report Type day

A sample day report fragment for one day:

NGINX Unit log analyzer. Report type day

In the report table:

  • DATE — the analyzed date with timezone information;
  • APP — a list of application names that were launched during the analyzed date;
  • Processes — information about launched NGINX Unit processes:
    • Start — the analyzed time interval, hours (from-to);
    • Amount — the number of processes launched during the time interval (+n — number of unfinished processes);
  • Duration — information about the execution duration of processes during the time interval:
    • Median — median value;
    • Average — arithmetic mean value;
    • Std dev — standard deviation of duration;
    • Min — minimum value;
    • Max — maximum value.

The duration values for the execution of NGINX Unit processes in the table are in the format:
d h m s, where: d — days, h — hours, m — minutes, s — seconds.

Report Type top

Example fragment of a top report for a single day:

NGINX Unit log analyzer. Report type top

In the report table:

  • DATE — the analyzed date with timezone information;
  • APP — a list of application names that were launched during the analyzed date;
  • Duration — the duration of the process execution;
  • App name — the application name;
  • Start time — the date and time when the process was started;
  • Exit time — the date and time when the process finished;
  • Start — the line number in the NGINX Unit log file where the process start was recorded;
  • End — the line number in the NGINX Unit log file where the process exit was recorded;
  • Id — the process identifier in NGINX Unit.

At the top of the table, there is a list of the 20 longest-running processes recorded during the analyzed date.

At the bottom of the table, there is a list of the 5 shortest-running processes recorded during the analyzed date.

The lists are sorted in descending order of duration.

Report Type graph

Example of a graph report, including 2 graphs:

  • A graph showing the number of NGINX Unit processes for launched applications, averaged per hour;
  • A graph showing the median process execution duration.

NGINX Unit log analyzer. Report type graph

The format of the process execution duration values on the graph is: H:MM:SS, where: H — hours, MM — minutes, SS — seconds.

Authors

© 2024-2025 andrey-tech

License

This library is distributed under the MIT license.

NGINX Unit log analyzer

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):

  1. day — продолжительность исполнения процессов NGINX Unit для запущенных приложений с усреднением за один час и разбиением по дням;
  2. top — топ-лист наиболее и наименее продолжительных процессов NGINX Unit для запущенных приложений с разбиением по дням;
  3. 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 для одного дня:

NGINX Unit log analyzer. Report type day

В таблице отчёта:

  • DATE — анализируемая дата с указанием часового пояса;
  • APP — список имён приложений, которые были запущены за анализируемую дату;
  • Processes — информация о запущенных процессах NGINX Unit:
    • Start — анализируемый интервал времени, часы (от-до);
    • Amount — количество процессов, которые были запущены в течение интервала времени (+n — число незавершённых процессов);
  • Duration — информация о продолжительности исполнения процессов в течение временного интервала:

Формат значений продолжительности исполнения процессов NGINX Unit в таблице имеет вид: d h m s, где: d — дни, h — часы, m — минуты, s — секунды.

Отчёт типа top

Пример фрагмента отчёта типа top для одного дня:

NGINX Unit log analyzer. Report type 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 log analyzer. Report type graph

Формат значений продолжительности исполнения процессов NGINX Unit на графике имеет вид: H:MM:SS, где: H — часы, MM — минуты, SS — секунды.

Авторы

© 2024-2025 andrey-tech

Лицензия

Данная библиотека распространяется на условиях лицензии MIT.