falc0shka/php-metrics
Composer 安装命令:
composer require falc0shka/php-metrics
包简介
PHP metrics library for stability and performance monitoring projects.
README 文档
README
Пакет для сбора и анализа метрик проектов
Список возможных методов и событий
Методы для работы с метриками
- 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_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_'
Постоянные метрики:
- 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)
Использование в коде
-
Установка пакета
composer require falc0shka/php-metrics -
Инициализация пакета
use Falc0shka\PhpMetrics\PhpMetrics; $phpMetrics = PhpMetrics::getInstance();
-
Настройка
$phpMetrics->setTag($module . '::' . $action) // Установить tag для текущего запроса ->setProject('test_project') // Установить название проекта ->setLogMaxAge(30) // Установить срок жизни лог файлов ->setLogPath(dirname(__FILE__) . '/log'); // Установить путь для сохранения файлов (для файловых логгеров)
-
Включение логирования
$phpMetrics->disableMetrics();
-
Отключение логирования
$phpMetrics->disableMetrics();
-
Последовательность вызова обязательных методов
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()); }; }
-
Вызов методов обновления и формирования метрик
Чтобы получить итоговую метрику при логировании, необходимо так вызвать метод 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 // Максимальное время исполнения среди всех таких запросов
-
Включение системных метрик
Для включения процесса сбора системных метрик
$phpMetrics->enableSystemMetrics();
-
Включение общих метрик со всех проектов
Для включения процесса сбора общих метрик со всех проектов
$phpMetrics->enableAllProjectsMetrics();
falc0shka/php-metrics 适用场景与选型建议
falc0shka/php-metrics 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 276 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 09 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「Metrics」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 falc0shka/php-metrics 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 falc0shka/php-metrics 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 falc0shka/php-metrics 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A abstraction for generating metrics in Laravel.
Laravel SDK for working with prometheus metrics
Production-ready Laravel Prometheus metrics package with built-in collectors for HTTP, database, cache, queue, events, errors, filesystem, and mail monitoring
Tool to show code coverage metrics, measured by PHP Unit in Cobertura format, in console and CI/CD pipeline
Laravel SDK for working with prometheus metrics
Alfabank REST API integration
统计信息
- 总下载量: 276
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 15
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-2-Clause
- 更新时间: 2025-09-04