tutu-ru/lib-metrics 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

tutu-ru/lib-metrics

最新稳定版本:3.0.2

Composer 安装命令:

composer require tutu-ru/lib-metrics

包简介

Metrics

README 文档

README

Версии 3.0.* мертвы - используйте 2ю мажорную версию!

Отправка метрик в statsd_exporter

use TutuRu\Metrics\StatsdExporterClientFactory; $statsdExporterClient = StatsdExporterClientFactory::create($config, $psrLogger); $statsdExporterClient->count('counter', 10); $statsdExporterClient->gauge('gauge', 50); // в этот момент происходит реальная отправка данных $statsdExporterClient->save();

MetricCollector

Объект позволяющей инкапсулировать логику замеров в одном месте.

use TutuRu\Metrics\StatsdExporterClientFactory; use TutuRu\Metrics\MetricCollector; $statsdExporterClient = StatsdExporterClientFactory::create($config, $psrLogger); class MyDataCollector extends MetricCollector { protected function getTimersMetricName(): string { return 'my_metrics'; } protected function getTimersMetricTags(): array { return ['env' => 'test']; } protected function onSave(): void { $this->increment('additional_data'); } } $collector = new MyDataCollector(); $collector->startTiming(); // code $collector->endTiming(); $collector->sendToStatsdExporter($statsdExporterClient); $statsdExporterClient->save();

Передача клиента другим объектам

Для того, чтобы клиент декларировал возможность передать ему stats_exporter клиент нужен интерфейс MetricAwareInterface.

Пример:

use TutuRu\Metrics\StatsdExporterClientFactory; use TutuRu\Metrics\StatsdExporterAwareInterface; use TutuRu\Metrics\StatsdExporterAwareTrait; $statsdExporterClient = StatsdExporterClientFactory::create($config, $psrLogger); class MyObject implements StatsdExporterAwareInterface { use StatsdExporterAwareTrait; public function doSomething() { if (!is_null($this->statsdExporterClient)) { $this->statsdExporterClient->summary('summary_metric', 500); } } } $object = new MyObject(); $object->setStatsdExporterClient($statsdExporterClient); $object->doSomething(); $statsdExporterClient->save();

Использование в тестах других библиотек

use PHPUnit\Framework\TestCase; use TutuRu\Tests\Metrics\MemoryStatsdExporter\MemoryStatsdExporterClient; class MyTest extends TestCase { public function testMetrics() { $statsdExporterClient = new MemoryStatsdExporterClient($appName); $testObject = new TestObject(); $testObject->setStatsdExporterClient($statsdExporterClient); $testObject->someCode(); $statsdExporterClient->save(); $metrics = $statsdExporterClient->getExportedMetrics(); $firstMetric = current($metrics); $firstMetric->getName(); $firstMetric->getUnit(); $firstMetric->getValue(); $firstMetric->getTags(); } }

统计信息

  • 总下载量: 41.52k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 4
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 11
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: proprietary
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固