2017 © Pedro Peláez
 

library prometheus_client_php_wrapper

image

imj/prometheus_client_php_wrapper

  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 11 Versions
  • 23 % Grown

The README.md

prometheus 快速接入包

Latest Stable Version License, (*1)

Installation

composer require imj/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, (*2)

The Versions

12/09 2017

dev-master

9999999-dev

  Sources   Download

MIT

The Requires

 

by Jiang Yang

12/09 2017

v1.1.1

1.1.1.0

  Sources   Download

MIT

The Requires

 

by Jiang Yang

07/09 2017

v1.1.0

1.1.0.0

  Sources   Download

MIT

The Requires

 

by Jiang Yang

31/08 2017

v1.0.2

1.0.2.0

  Sources   Download

MIT

The Requires

 

by Jiang Yang

29/06 2017

v1.0.1

1.0.1.0

  Sources   Download

MIT

The Requires

 

by Jiang Yang

27/06 2017

v1.0.0

1.0.0.0

  Sources   Download

MIT

The Requires

 

by Jiang Yang

13/06 2017

v0.0.5

0.0.5.0

  Sources   Download

MIT

The Requires

 

by Jiang Yang

12/06 2017

v0.0.4

0.0.4.0

  Sources   Download

MIT

The Requires

 

by Jiang Yang

12/06 2017

v0.0.3

0.0.3.0

  Sources   Download

MIT

The Requires

 

by Jiang Yang

11/06 2017

v0.0.2

0.0.2.0

  Sources   Download

MIT

The Requires

 

by Jiang Yang

08/06 2017

v0.0.1

0.0.1.0

  Sources   Download

MIT

The Requires

 

by Jiang Yang