You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel应用中查找Top10最慢GET/POST请求

Laravel 应用慢请求统计方案

针对Laravel应用全量请求的耗时统计、慢接口排查需求,有几类不同场景下的可用方案,从无侵入到自定义实现均覆盖:

1. 零依赖内置实现(生产/测试环境通用)

最稳妥的方式是自定义全局中间件做耗时统计,不需要安装额外包,数据完全可控:

  • 执行命令生成中间件文件:php artisan make:middleware RequestTimingMiddleware
  • 在中间件的handle方法里写入统计逻辑,核心代码如下:
public function handle($request, Closure $next)
{
    $requestStart = microtime(true);
    $response = $next($request);
    $costMs = round((microtime(true) - $requestStart) * 1000, 2);

    // 仅过滤GET/POST请求,排除调试工具、系统内部路径
    if (in_array($request->method(), ['GET', 'POST']) && !str_starts_with($request->path(), ['_debugbar', 'telescope', 'horizon'])) {
        // 数据可以写入专门的性能统计表,也可以打日志
        \DB::table('request_performance')->insert([
            'method' => $request->method(),
            'path' => $request->getPathInfo(),
            'route' => optional($request->route())->getName(),
            'cost_ms' => $costMs,
            'ip' => $request->ip(),
            'created_at' => now()
        ]);
    }

    return $response;
}
  • 把该中间件注册到app/Http/Kernel.php的全局中间件数组中,所有请求就会自动触发统计。收集3-7天真实流量后,一条SQL就能查出最慢的10个请求:
SELECT method, path, route, AVG(cost_ms) as avg_cost, MAX(cost_ms) as max_cost 
FROM request_performance 
GROUP BY method, path 
ORDER BY avg_cost DESC 
LIMIT 10;
  • 官方自带的Telescope工具也可以直接用,安装后自带请求监控面板,会自动记录每个请求的响应耗时、数据库查询、内存占用、调用链等信息,直接在面板按响应时间倒序就能筛选慢请求,适合测试、预发布环境快速排查,生产环境使用需要严格配置访问权限,避免敏感信息泄露。

2. 服务器层无侵入统计

如果不想修改应用代码,可以直接在Web服务器层做日志统计,数据会更贴近真实用户感知的全链路耗时:

  • Nginx可以自定义日志格式,加入$request_time字段,记录每个请求从接收到响应返回完成的总耗时,积累一定日志量后,用GoAccess或者简单的awk脚本就能统计出TOP10慢请求。
  • Apache服务可以在日志格式中加入%D字段,同样可以记录请求处理微秒级耗时,配合日志分析工具就能完成统计。

3. 开发环境快速排查

本地开发阶段可以直接装Debugbar或者Clockwork调试工具,每个请求的响应耗时、耗时拆分(数据库、视图、外部调用占比)会直接展示在调试栏,不用手动埋点就能快速定位明显的慢接口。

注意:不要仅用本地压测结果作为最终依据,本地环境的数据库负载、缓存命中率、网络延迟和生产环境差异极大,统计结果参考价值有限。如果需要做基准压测,可以用ab、wrk这类压测工具对单接口施压,拿到平均耗时、P95/P99耗时、QPS等数据,压测前务必确认环境,避免打挂线上服务。

内容的提问来源于stack exchange,提问作者Akshay Mohite

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 22:54:17