code16/metrics

Laravel 的指标包


README

Latest Stable Version Total Downloads License Build

Metrics 是一个针对 Laravel 5 的包,旨在记录访问者对您的 Web 应用的使用情况,并提供一系列类和功能,帮助您生成统计数据。

它符合关于隐私的欧盟法规,并准备好遵守 GDPR。

安装

您可以通过输入以下命令来安装指标包

    composer require dvlpp/metrics:dev-master

配置

该包附带一组预设的 Analyzers,这些 Analyzers 包含在默认的配置文件中。如果您想进行自定义,只需使用适当的 artisan 命令发布即可

php artisan vendor:publish --provider="Code16\Metrics\MetricServiceProvider" --tag="config"

跟踪

Metrics 通过在用户的设备上放置一个跟踪 Cookie 来工作,当用户登录时,该 Cookie 将与特定的用户_id 相关联,因此将为单个用户提供一个唯一的标识符,无论他使用什么设备,并且当用户注销后 Cookie 仍然存在,这意味着您可以在用户登录应用程序之前或之后重新构建用户的序列。

默认情况下,Metrics 将记录应用程序内访问的任何路由,除非用户将 Do Not Track 标头设置为 true。如果您不希望记录特定路由或一组路由,可以使用包含的 NoTrackingMiddleware,或在配置中添加过滤器。

操作

操作Metrics 中的一个重要概念。它们为您提供了突出显示并收集有关应用程序某些重要部分的数据以进行进一步统计分析的机会。它们在工作方式上与事件非常相似,并且它们在 metrics_visits 表中被序列化。

例如,您可以为每次用户将产品添加到购物车时创建一个操作类

    use App\Product;
    use Code16\Metrics\Action;

    class AddToCart extends Action {

        public $productId;

        public function __construct(Product $product)
        {
            $this->productId = $product;
        }

    }

然后,您可以通过在管理类上调用以下方法将操作附加到当前的访问对象

    app(Dvlpp\Metrics\Manager::class)->addAction(new AddToCart($product));

或者,您可以使用辅助函数

    metrics_action(new AddTOCart($product))

分析器 & 合并器

除了将用户的访问记录到表中之外,Metrics 还附带了一个“框架”,旨在帮助您从这些原始信息中提取统计数据。它自带一些基本的统计数据功能,例如计算唯一访问者的数量或分析用户通过浏览器或用户代理的分布。

Metrics 处理两种不同的操作

分析:此操作将从原始 Visit 记录生成统计数组。基本上,metrics 将从 metrics_visit 表中传递所有行,并监听和存储从这些原始访问日志计算得出的统计数据。

合并:此操作将几个较小时间段的结果合并到一个较大的时间段中。

原始数据被分析并合并到四个递增的时间段中

  • 小时

有关如何为您的应用程序编写自定义分析器/合并器的示例,您可以查看包含在包中的类(Code16\Metrics\Analyzers)。

更新统计数据

要计算和更新统计信息,只需在任何时候运行artisan metrics:update即可。这样做将为所有完整周期(上小时、上一天、上个月等)计算尚未计算的统计信息。提示:如果在应用运行期间实现了新的分析器,并且您想计算之前的周期统计信息,只需截断metric_metrics表并运行另一个更新。