PHPackages                             falc0shka/php-metrics - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. falc0shka/php-metrics

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

falc0shka/php-metrics
=====================

PHP metrics library for stability and performance monitoring projects.

v2.1.1(2mo ago)094BSD-2-ClausePHPPHP ^7.4|^8.0

Since Sep 4Pushed 2mo agoCompare

[ Source](https://github.com/falc0shka/php-metrics)[ Packagist](https://packagist.org/packages/falc0shka/php-metrics)[ RSS](/packages/falc0shka-php-metrics/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)DependenciesVersions (13)Used By (0)

PhpMetrics
==========

[](#phpmetrics)

Пакет для сбора и анализа метрик проектов

Список возможных методов и событий
----------------------------------

[](#список-возможных-методов-и-событий)

Методы для работы с метриками

- processStart()
- routeStart()
- routeFinishSuccess()
- routeFinishFail()
- updateMetric('metric\_name', $metricParams)

Данные события можно вызывать методом dispatchEvent('EVENT\_NAME', $eventParams) - DEPRECATED

- **PROCESS\_START** - обязательное событие начала работы скрипта
- **ROUTE\_START** - обязательное событие вызова целевого метода
- **ROUTE\_FINISH\_SUCCESS** - обязательное событие нормального окончание работы скрипта
- **ROUTE\_FINISH\_FAIL** - обязательное событие неудачного окончания работы скрипта
- **UPDATE\_METRIC** - добавление или обновление метрики

Результирующие метрики
----------------------

[](#результирующие-метрики)

### Базовые метрики

[](#базовые-метрики)

- **requests\_hit\_count** - общее количество запросов
- **requests\_start\_count** - количество вызовов целевого метода
- **requests\_finish\_success\_count** - количество нормальных окончаний работы скрипта
- **requests\_finish\_fail\_count** - количество неудачных окончаний работы скрипта
- **system\_cpu\_usage** - процент загруки процессора
- **system\_load\_average** - среднее значение загруженности системы
- **system\_memory\_usage** - рамер используемой памяти
- **system\_memory\_max** - максимальный размер памяти
- **system\_disk\_free\_space** - свободное место на диске
- **system\_disk\_total\_space** - общее место на диске
- **logging\_max\_memory** - максимальный расход памяти при формирования лога
- **logging\_execution\_time** - время формирования лога
- **logging\_tags\_count** - общее количество тегов

### Метрики для нормальных окончаний работы скрипта с префиксом 'success\_'

[](#метрики-для-нормальных-окончаний-работы-скрипта-с-префиксом-success_)

Постоянные метрики:

- **success\_max\_memory** - максимальный расход памяти
- **success\_execution\_time** - время исполнения скрипта

Кастомные метрики:

- **success\_db\_request** - количество запросов к БД
- **success\_db\_responses\_value** - дополнительное значение для запросов к БД
- **success\_db\_responses\_time** - общее время исполнения запросов БД
- **success\_db\_responses\_time\_max** - максимальное время исполнения среди запросов БД
- **success\_validation\_errors** - кол-во ошибок валидации
- и т.д.

### Метрики для окончаний работы скрипта по эксепшену с префиксом 'success\_'

[](#метрики-для-окончаний-работы-скрипта-по-эксепшену-с-префиксом-success_)

Постоянные метрики:

- **fail\_max\_memory** - максимальный расход памяти
- **fail\_execution\_time** - время исполнения скрипта

Кастомные метрики:

- **fail\_db\_requests** - количество запросов к БД
- **fail\_db\_responses\_value** - дополнительное значение для запросов к БД
- **fail\_db\_responses\_time** - общее время исполнения запросов БД
- **fail\_db\_responses\_time\_max** - максимальное время исполнения среди запросов БД
- **fail\_validation\_errors** - кол-во ошибок валидации
- и т.д.

Рассчет базовых метрик
----------------------

[](#рассчет-базовых-метрик)

- **requests\_hit\_count** = count(PROCESS\_START)
- **requests\_start\_count** = count(ROUTE\_START)
- **requests\_finish\_success\_count** = count(ROUTE\_FINISH\_SUCCESS)
- **requests\_finish\_fail\_count** = count(ROUTE\_FINISH\_FAIL)
- **max\_memory** = max(memory\_usage\_per\_each\_event)
- **execution\_time** = time(ROUTE\_FINISH\_SUCCESS(FAIL)) - time(PROCESS\_START)

Рассчет произвольных метрик
---------------------------

[](#рассчет-произвольных-метрик)

- **db\_requests** = count(DB\_REQUEST)
- **db\_responses\_time** = execution\_time(DB\_RESPONSE)
- **db\_responses\_time\_max** = max(execution\_time(DB\_RESPONSE))
- **some\_custom\_metric** = count(SOME\_CUSTOM\_METRIC)
- **some\_custom\_metric\_value** = sum(SOME\_CUSTOM\_METRIC value)
- **validation\_errors** = count(VALIDATION\_ERROR)

Использование в коде
--------------------

[](#использование-в-коде)

1. Установка пакета

    ```
    composer require falc0shka/php-metrics

    ```
2. Инициализация пакета

    ```
    use Falc0shka\PhpMetrics\PhpMetrics;

    $phpMetrics = PhpMetrics::getInstance();
    ```
3. Настройка

    ```
    $phpMetrics->setTag($module . '::' . $action)           // Установить tag для текущего запроса
        ->setProject('test_project')                        // Установить название проекта
        ->setLogMaxAge(30)                                  // Установить срок жизни лог файлов
        ->setLogPath(dirname(__FILE__) . '/log');           // Установить путь для сохранения файлов (для файловых логгеров)
    ```
4. Включение логирования

    ```
    $phpMetrics->disableMetrics();
    ```
5. Отключение логирования

    ```
    $phpMetrics->disableMetrics();
    ```
6. Последовательность вызова обязательных методов

    ```
    try {

        // Обязательный вызов события начала скрипта
        $phpMetrics->processStart();
        // Обязательный вызов события начала роута
        $phpMetrics->routeStart();

        // ...some logic...
        $out = call_user_func([$controller, $action]);
        $oResponce->output($out);

        // Вызов события нормального окончания скрипта
        $phpMetrics->routeFinishSuccess();

    } catch (Exception $e){

        // Обязательный вызов события неудачного окончания скрипта
        $phpMetrics->routeFinishFail();

        // ...some exception logic...
        if(method_exists($e, 'outputError')){
            $e->outputError();
        } else {
            die($e->getMessage());
        };

    }
    ```
7. Вызов методов обновления и формирования метрик

    Чтобы получить итоговую метрику при логировании, необходимо так вызвать метод updateMetric. По умолчанию каждая метрика является количественной, то есть подсчитывается кол-во вызовов данного метода.

    ```
    $phpMetrics->updateMetric('some_metric');
    ```

    Дополнительно в метод можно передать массив параметров, который имеет следующую структуру.

    ```
    $phpMetrics->updateMetric('some_metric', [
      'metric' => 'some_metric', // название метрики
      'value' => 10, // произвольное значение
      'time_start' => 572111700, // timestamp начала запроса
      'execution_time' => 0.555, // либо можно указать точное время запроса
    ]);
    ```

    В этом примере будут автоматически созданы соответствующие метрики

    - success\_some\_metric = 1 // Количественная метрика
    - success\_some\_metric\_value = 10 // Накопительная метрика для произвольных значений
    - success\_some\_metric\_time = 0.555 // Время исполнения (например время запроса)
    - success\_some\_metric\_time\_max = 0.555 // Максимальное время исполнения среди всех таких запросов
8. Включение системных метрик

    Для включения процесса сбора системных метрик

    ```
    $phpMetrics->enableSystemMetrics();
    ```
9. Включение общих метрик со всех проектов

    Для включения процесса сбора общих метрик со всех проектов

    ```
    $phpMetrics->enableAllProjectsMetrics();
    ```

###  Health Score

40

—

FairBetter than 88% of packages

Maintenance84

Actively maintained with recent releases

Popularity12

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~15 days

Recently: every ~21 days

Total

12

Last Release

83d ago

Major Versions

v1.9.0 → v2.0.02026-01-19

### Community

Maintainers

![](https://www.gravatar.com/avatar/ca95579a366fbabce28052c86314d6299aaeffd82ae435212364752633e51ccf?d=identicon)[falc0shka](/maintainers/falc0shka)

---

Top Contributors

[![falc0shka](https://avatars.githubusercontent.com/u/103947582?v=4)](https://github.com/falc0shka "falc0shka (23 commits)")

---

Tags

phpMetrics

### Embed Badge

![Health badge](/badges/falc0shka-php-metrics/health.svg)

```
[![Health](https://phpackages.com/badges/falc0shka-php-metrics/health.svg)](https://phpackages.com/packages/falc0shka-php-metrics)
```

###  Alternatives

[leventcz/laravel-top

Real-time monitoring straight from the command line for Laravel applications.

581105.7k1](/packages/leventcz-laravel-top)[inspector-apm/inspector-symfony

Code Execution Monitoring for Symfony applications.

2830.1k2](/packages/inspector-apm-inspector-symfony)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
