flagbit / metrics-bundle
该包已被废弃,不再维护。未建议替代包。
FlagbitMetricsBundle 为 Symfony 框架提供易于集成的指标收集器服务
2.0.0
2018-07-19 11:46 UTC
Requires
- php: >=7.0.8
- beberlei/metrics: ^2.0
- symfony/framework-bundle: ^3.4|^4.0
Requires (Dev)
- phpunit/phpunit: ~6.0
- symfony/console: ^3.4|^4.0
This package is auto-updated.
Last update: 2023-04-08 18:47:54 UTC
README
关于
FlagbitMetricsBundle 为将 Benjamin Eberlei 的 metrics 收集器库 集成到 Symfony2 提供了易于的集成方式。
安装
使用 Composer
使用 composer 安装
composer require flagbit/metrics-bundle
注册包
<?php class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Flagbit\Bundle\MetricsBundle\FlagbitMetricsBundle(), // ... ); } }
使用
请记住,此包依赖于 Metrics 库,您需要首先集成和配置它。更多信息可以在 此处 找到。
例如,假设您想测量应用程序的一些统计数据。
创建您的 MetricProvider
<?php namespace Flagbit\ExampleBundle\MetricProvider; use Flagbit\Bundle\MetricsBundle\Collector\CollectorInterface; use Flagbit\Bundle\MetricsBundle\Provider\ProviderInterface; class Provider implements ProviderInterface { public function collectMetrics(CollectorInterface $collector) { $value = random_int(1,9); $collector->measure('foo.bar', $value); } }
创建您的服务
创建完您的指标提供者类后,让我们创建服务。为了使指标收集器服务自动收集您的指标提供者服务的所有指标,您只需使用 "metrics.provider" 服务标签并选择您想要的那么多收集器。
YAML
services: Flagbit\ExampleBundle\MetricProvider\Provider: tags: - { name: metrics.provider, collector: statsd } - { name: metrics.provider, collector: librato }
XML
<?xml version="1.0" encoding="UTF-8" ?> <container xmlns="https://symfony.com.cn/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://symfony.com.cn/schema/dic/services https://symfony.com.cn/schema/dic/services/services-1.0.xsd" > <services> <service id="Flagbit\ExampleBundle\MetricProvider\Provider"> <tag name="metrics.provider" collector="statsd" /> <tag name="metrics.provider" collector="librato" /> </service> </services> </container>
收集您的指标
您可以自行收集所有指标,并在之后将它们刷新到您的指标服务器或使用为您执行此操作的命令。
<?php // Collects the metrics of all your tagged services... $container->get('flagbit_metrics.provider_invoker')->collectMetrics(); // ... and flush them $container->get('flagbit_metrics.provider_invoker')->onTerminate();
建议将服务注入您的代码中而不是直接使用容器。
命令
$ php bin/console flagbit:metrics:flush