hocvt/laravel-server-timing

从您的Laravel应用内部添加Server-Timing头部信息。

v10.0.0 2023-06-19 06:44 UTC

This package is auto-updated.

Last update: 2024-09-19 09:26:12 UTC


README

Latest Version on Packagist Build Status Quality Score Total Downloads

从您的Laravel应用内部添加Server-Timing头部信息。

安装

您可以通过composer安装此包

composer require beyondcode/laravel-server-timing

用法

要添加server-timing头部信息,您需要将\BeyondCode\ServerTiming\Middleware\ServerTimingMiddleware::class,中间件添加到您的HTTP Kernel。为了获得最准确的结果,请将中间件作为中间件堆栈中第一个加载的中间件。

默认情况下,中间件只测量三件事情,以保持尽可能轻量

  • 引导(中间件被调用之前的时间)
  • 应用时间(获取应用内响应的时间)
  • 总时间(发送响应之前的时间)

成功安装包后,您可以在浏览器开发工具中查看您的定时信息。以下是一个Chrome的示例

image

添加额外的测量

如果您想提供额外的测量,可以使用start和stop方法。如果您没有显式停止测量的事件,那么事件将在中间件收到您的响应时自动停止。如果您想测量Blade视图编译所需的时间,这很有用。

ServerTiming::start('Running expensive task');

// do something

ServerTiming::stop('Running expensive task');

如果您已知要设置的精确时间,可以使用setDuration方法。持续时间应以毫秒为单位设置

ServerTiming::setDuration('Running expensive task', 1200);

除了提供毫秒作为持续时间外,您还可以传递一个将被测量的可调用对象

ServerTiming::setDuration('Running expensive task', function() {
    sleep(5);
});

添加文本信息

您还可以使用Server-Timing中间件仅设置文本信息而不提供持续时间。

发布配置文件

可以使用以下命令发布配置文件:php artisan vendor:publish --tag=server-timing-config

您可以通过将timing.enabled配置更改为false来禁用中间件。

ServerTiming::addMetric('User: '.$user->id);

测试

composer test

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTING

安全

如果您发现任何与安全相关的问题,请通过marcel@beyondco.de发送电子邮件,而不是使用问题跟踪器。

鸣谢

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件