kafliansky/push-prometheus

通过amphp将指标推送到Prometheus。

v0.1.1 2022-04-12 15:31 UTC

This package is auto-updated.

Last update: 2024-09-12 20:24:19 UTC


README

test Software License Total Downloads

内容

安装

composer require kafkiansky/push-prometheus

用法

使用默认HTTP客户端的简单示例

use Amp\Http\Client\Request;
use Kafkiansky\PushPrometheus\Context;
use Kafkiansky\PushPrometheus\Metrics\Counter;
use Kafkiansky\PushPrometheus\Metrics\Name;
use Kafkiansky\PushPrometheus\Metrics\Number;
use Kafkiansky\PushPrometheus\Pusher;

require_once __DIR__.'/vendor/autoload.php';

Amp\Loop::run(function (): \Generator {
    $pusher = new Pusher(new Context(host: 'https://pushgateway.test.net/', groups: [
        'job'      => 'gateway',
        'instance' => 'localhost',
    ]));

    yield $pusher->push(new Counter(new Name('test', 'namespace', 'subsystem'), new Number(2)));
});

使用自定义HTTP客户端

use Amp\Http\Client\Request;
use Kafkiansky\PushPrometheus\Context;
use Kafkiansky\PushPrometheus\Metrics\Gauge;
use Kafkiansky\PushPrometheus\Metrics\Name;
use Kafkiansky\PushPrometheus\Metrics\Number;
use Kafkiansky\PushPrometheus\Pusher;
use Amp\Http\Client\HttpClient;
use Amp\Http\Client\HttpClientBuilder;

require_once __DIR__.'/vendor/autoload.php';

Amp\Loop::run(function (): \Generator {
    $pusher = new Pusher(new Context(host: 'https://pushgateway.test.net/', groups: [
        'job'      => 'gateway',
        'instance' => 'localhost',
    ]), function (): HttpClient {
        return HttpClientBuilder::buildDefault();
    });

    yield $pusher->push(new Gauge(new Name('test', 'namespace', 'subsystem'), new Number(2)));
});

测试

$ composer test

许可协议

MIT许可协议(MIT)。更多信息请参阅许可文件