Mongodb 如何分析基于Yii2的API?

Mongodb 如何分析基于Yii2的API?,mongodb,profiling,yii2,Mongodb,Profiling,Yii2,我有一个用Yii2框架编写的API应用程序,我不知道如何测量和跟踪性能,因为我渴望看到幕后发生的事情。我的API使用的是mongoDB,我也想看看查询,但不知从哪里开始。Yii2有自己的集成debugPanel,这很好,但只适用于浏览器,不能像使用Postman来执行API调用那样有好处 你们是如何在dev和live环境中做到这一点的 干杯对于基本测量,Yii有一些内置的评测。您可以使用\Yii::beginProfile()和Yii::endProfile()调用它,并通过调试工具栏查看结果

我有一个用Yii2框架编写的API应用程序,我不知道如何测量和跟踪性能,因为我渴望看到幕后发生的事情。我的API使用的是mongoDB,我也想看看查询,但不知从哪里开始。Yii2有自己的集成debugPanel,这很好,但只适用于浏览器,不能像使用Postman来执行API调用那样有好处

你们是如何在dev和live环境中做到这一点的


干杯

对于基本测量,Yii有一些内置的评测。您可以使用
\Yii::beginProfile()
Yii::endProfile()
调用它,并通过调试工具栏查看结果

对于开发,您也可以使用Xdebug。它还支持分析

对于生产来说,这是另一回事。您需要一个对性能影响尽可能小的解决方案,并且您需要一些定期自动运行的解决方案。您应该跟踪路由及其分析结果,以便可以比较代码随时间的改进(或不改进)

我在几个流量非常高的网站上工作,我们使用的是随机激活的

例如,在index.php中,您可以执行以下操作

if (rand(1, 100) == 50) {
   xhprof_enable();
   // on after_request() or register_shutdown_function(): store route and results
}

显然,您所需要的东西可能会有所不同,但这可能会让您知道应该朝哪个方向看。

Debug工具栏在我测试API调用时不起作用,而Xdebug测试应用程序的小部分会更痛苦。我不知道,但我看了看。谢谢你的回复!我们谈论的是同一个Xdebug吗?我整天都在使用它来调试和评测特定的函数。一点也不麻烦。当我使用Xdebug进行评测时,它会为我生成一个超过100MB的文件,这对于可视化整个项目生命周期非常好,但对于查看代码中的小部分来说太多了。我需要像\Yii::beginProfile()和\Yii::endProfile()这样的原子文件。在此期间,我解决了一些问题:我正在记录可测量的部分,并在命令行中看到带有tail-f的日志文件。我找不到更复杂的方法:-/