alexeyshockov/guzzle-timeline-middleware

用于分析 Guzzle 并发性的时间线报告

dev-master 2020-01-21 08:21 UTC

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,
]);