Linux环境下ThinkPHP性能监控方案

ThinkPHP提供内置日志模块,可记录请求、错误及性能相关信息,是基础监控手段。
application/config.php,设置日志类型为file(存储到runtime/log目录)、日志级别(info/debug/warn/error):'log' => ['type'=> 'file','var_log_path' => './runtime/log','level' => ['info', 'debug', 'warn', 'error'],],Log门面记录关键信息,如请求开始/结束、错误堆栈:thinkfacadeLog::info('请求开始:' . request()->url());thinkfacadeLog::error('数据库查询失败:' . $e->getMessage());通过中间件捕获请求耗时、内存使用等指标,扩展基础日志功能。
app/middleware目录下新建PerformanceMiddleware.php,记录请求耗时:namespace appmiddleware;use thinkfacadeLog;use thinkmiddlewareBaseMiddleware;class PerformanceMiddleware extends BaseMiddleware{public function handle($request, Closure $next){$start_time = microtime(true);$response = $next($request);$cost_time = microtime(true) - $start_time;Log::info("请求【{$request->url()}】耗时:{$cost_time}秒,内存:".memory_get_peak_usage()/1024/1024."MB");return $response;}}application/middleware.php中添加中间件,全局生效:return ['appmiddlewarePerformanceMiddleware'];适合需要自定义指标、可视化监控的场景,支持实时报警。
prometheus.yml添加ThinkPHP应用作为抓取目标(需应用暴露指标接口)。think-prometheus)收集请求次数、耗时、错误率等指标,暴露为HTTP接口(如/metrics)。ThinkPHP Grafana Dashboard),可视化展示性能趋势。提供全栈监控(应用、数据库、基础设施),支持ThinkPHP无缝集成,无需修改代码即可监控性能。
datadog.yaml开启PHP监控。composer require datadog/php-datadogstatsdapp/provider.php中绑定Datadog客户端:namespace app;use thinkService;use DataDogDogStatsd;class DatadogService extends Service{public function register(){$this->app->bind('datadog', function () {$config = config('datadog'); // 配置文件中定义Agent地址、命名空间等return new DogStatsd($config);});}}$datadog = app('datadog');$datadog->timing('thinkphp.controller.index.time', microtime(true) - $start_time);$datadog->increment('thinkphp.controller.index.requests');专注于应用性能管理(APM),提供代码级性能分析、事务追踪、数据库查询分析等功能。
newrelic.so),设置应用名称、许可证密钥。通过系统自带工具监控ThinkPHP运行的基础环境,快速定位资源瓶颈。
ThinkPHP依赖MySQL等数据库,监控数据库性能是保障应用性能的关键。
slow_query_log=1),分析执行时间超过阈值的SQL语句,优化索引或查询逻辑。EXPLAIN分析执行计划,检查是否使用了索引、是否存在全表扫描。