edisonlabs / metrics
用于收集指标的 PHP 库。
1.0.0-alpha2
2018-08-14 14:58 UTC
Requires
- symfony/config: ~4.0
- symfony/console: ~4.0
- symfony/dependency-injection: ~4.0
- symfony/finder: ~4.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^6.5
This package is auto-updated.
Last update: 2024-09-23 02:02:01 UTC
README
指标收集器
概述
指标收集器是一个简单的库,提供了基类以方便扩展和收集自定义指标。
用法
此库默认不提供任何指标。要创建新的指标,请 创建一个 Composer 包,然后添加对这个包的依赖。
composer require edisonlabs/metrics
现在创建扩展 edisonlabs/metrics
类的指标类。
示例:PHP 文件的数量。
// src/EdisonLabs/Metric/NumberOfPhpFiles.php namespace EdisonLabs\Metric; use EdisonLabs\Metrics\Metric\AbstractMetricBase; class NumberOfPhpFiles extends AbstractMetricBase { public function getName() { return 'Number of PHP files'; } public function getDescription() { return 'The total number of PHP files'; } public function getMetric() { // Put the logic to calculate the total of PHP files here. // .. // Random example. return rand(10, 50); } }
在 composer.json
中配置自动加载
"autoload": { "psr-4": { "EdisonLabs\\Metric\\": "src/EdisonLabs/Metric" } }
重新创建 Composer 自动加载器
composer dump-autoload
收集指标
有两种方式可以收集指标:程序化和命令行。
程序化
// collector.php use EdisonLabs\Metrics\Collector; $date = strtotime('now'); $config = array(); $collector = new Collector($date, $config); $metrics = $collector->getMetrics();
命令
该命令位于 vendor/bin/metrics
。将 vendor/bin
目录包含在系统的 $PATH
中,以便在任何地方运行此命令。
输入 metrics --help
以查看所有可用选项。
保存指标
创建数据存储类以保存您的指标
// src/EdisonLabs/Metric/Datastore/SqLite.php namespace EdisonLabs\Metric\Datastore; use EdisonLabs\Metrics\Metric\Datastore\AbstractMetricDatastore; class SqLite extends AbstractMetricDatastore { public function getName() { return 'SQLite'; } public function getDescription() { return 'Stores metrics to SQLite'; } public function save() { $metrics = $this->getMetrics(); // Put your logic to store the metrics to SQLite here. return true; } }
程序化
// datastore.php use EdisonLabs\Metrics\Collector; use EdisonLabs\Metrics\DatastoreHandler; $date = strtotime('now'); $config = array(); $collector = new Collector($date, $config); $metrics = $collector->getMetrics(); $datastoreHandler = new DatastoreHandler($date, $config); $datastore = $datastoreHandler->getDatastoreByName('SQLite'); $datastore->setMetrics($metrics); $datastore->save();
命令
使用 --save
选项列出和保存您的指标。
metrics --save=SQLite
--save
选项接受多个值。
metrics --save=SQLite,MySql,MyCustomDatastore