flagbit/metrics-bundle

该包已被废弃,不再维护。未建议替代包。

FlagbitMetricsBundle 为 Symfony 框架提供易于集成的指标收集器服务

安装次数: 1,543

依赖者: 0

建议者: 0

安全: 0

星标: 1

关注者: 36

分支: 0

开放问题: 0

类型:symfony-bundle

2.0.0 2018-07-19 11:46 UTC

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