360so / prometheus_client_php_wrapper
v1.2.1
2021-10-28 11:17 UTC
Requires
- 360so/prometheus_client_php: ~0.9.0
README
Installation
composer require 360so/prometheus_client_php_wrapper
Basic Usage
require __DIR__ . '/../vendor/autoload.php'; // 初始化 PrometheusWrapper\Wrapper::ins()->init([ "app" => "test", "idc" => "dev", "monitor_switch" => [ PrometheusWrapper\Wrapper::METRIC_COUNTER_RESPONSES => ["/wrapperTest.php?type=obx&name=test"], PrometheusWrapper\Wrapper::METRIC_COUNTER_SENT_BYTES => true, // 开启用于记录下游流量 PrometheusWrapper\Wrapper::METRIC_COUNTER_REVD_BYTES => true, PrometheusWrapper\Wrapper::METRIC_HISTOGRAM_LATENCY => ["/wrapperTest.php"], PrometheusWrapper\Wrapper::METRIC_GAUGE_CONNECTS => true, PrometheusWrapper\Wrapper::METRIC_COUNTER_EXCEPTION => true, ], "log_method" => ["GET", "POST", "HEAD"], // method 过滤 "buckets" => [1,2,3,4,5,6,7,8,9,10,11,13,15,17,19,22,25,28,32,36,41,47,54,62,71,81,92,105,120,137,156,178,203,231,263,299,340,387,440,500], // 桶距配置 "adapter" => "redis", // apcu|apc|memory "handlers" => [ new \PrometheusWrapper\Handler\ErrorHandler() // 捕捉异常 ], "redisOptions" => [ 'host' => '127.0.0.1', 'auth' => "123456" ], "redisIns" => null // 也可以传入一个 redis 实例 ]); if (isset($_GET['clean'])) { // 清除统计数据 PrometheusWrapper\Wrapper::ins()->flush(); } // 自定义统计项 // histogram PrometheusWrapper\Wrapper::ins()->latencyLog(rand(1, 20), "/get", "searcher", "GET"); // 延迟 // counter PrometheusWrapper\Wrapper::ins()->qpsCounterLog(1, "/get", "searcher","GET", 200); // QPS PrometheusWrapper\Wrapper::ins()->sendBytesCounterLog(1024, "/get", "searcher","GET", 200); // 流量 out PrometheusWrapper\Wrapper::ins()->receiveBytesCounterLog(2048, "/get", "searcher","GET", 200); // 流量 in PrometheusWrapper\Wrapper::ins()->exceptionLog(1, "mysql_connect_err"); // 异常 // gauge PrometheusWrapper\Wrapper::ins()->gaugeLog("alive", "searcher"); // 统计页面 echo PrometheusWrapper\Wrapper::ins(); // 单独统计页面(未做 init 操作,设置 adapter 相关配置即可) // echo PrometheusWrapper\Wrapper::ins()->setConfig(["adapter" => "redis", "redisOptions" => ['host' => '127.0.0.1', 'auth' => "123456"]]);
License
licensed under the MIT License - see the LICENSE
file for details