alexeyshockov / guzzle-timeline-middleware
用于分析 Guzzle 并发性的时间线报告
dev-master
2020-01-21 08:21 UTC
Requires
- php: ~7.2
- guzzlehttp/guzzle: ~6.3 || ~7.0
Requires (Dev)
- phpunit/phpunit: ~8
This package is auto-updated.
Last update: 2024-09-21 20:51:12 UTC
README
一个简单的异步请求分析助手。
基本时间线报告
此报告显示了全局时间线上所有请求(示例)。
执行流程报告
如果您想分析 Guzzle 的并发功能,那么执行流程报告会非常有帮助。它将所有请求按照虚拟的“线程”进行排序,因此您可以了解(例如)资源利用率如何。 示例报告。
在您的代码中
使用 Composer 正常安装:composer require --dev alexeyshockov/guzzle-timeline-middleware
基本用法
只需将适当的中间件添加到您的堆栈中
$handler = HandlerStack::create(); // For basic timeline report $handler->push(TimelineReporter::middleware(__DIR__ . '/timeline.html'), 'timeline_report'); // For execution flow report $handler->push(ExecutionFlowTimelineReporter::middleware(__DIR__ . '/ex_flow.html'), 'ex_flow_report'); $client = new \GuzzleHttp\Client([ 'handler' => $handler, ]);
将大型报告分割成块
如果您分析一个长时间运行的过程,并且有大量的 HTTP 请求,则可以将报告分割成块。只需在您的报告文件名模板中使用 ${NUMBER}
占位符,并传递每个报告块的最大条目数。
$handler = HandlerStack::create(); $handler->push(TimelineReporter::middleware(__DIR__ . '/timeline_${NUMBER}.html', null, 250), 'timeline_report'); $client = new \GuzzleHttp\Client([ 'handler' => $handler, ]);