在ColdFusion中记录耗时超过[n]秒的慢速页面,并提供详细信息

在ColdFusion中记录耗时超过[n]秒的慢速页面,并提供详细信息,coldfusion,monitoring,coldfusion-9,error-logging,front-controller,Coldfusion,Monitoring,Coldfusion 9,Error Logging,Front Controller,(ACF9) 除非我遗漏了一个选项,“记录慢页面所需时间超过[n]秒”设置对于基于前端控制器的站点(例如,Model Glue、FW/1、Fusebox、Mach II等)没有用处 例如,在一个Mura/Framework-One站点中,我最终得到了: "Warning","jrpp-186","04/25/13","15:26:36",,"Thread: jrpp-186, processing template: /home/mysite/public_html_cms/wwwroot/in

(ACF9)

除非我遗漏了一个选项,“记录慢页面所需时间超过[n]秒”设置对于基于前端控制器的站点(例如,Model Glue、FW/1、Fusebox、Mach II等)没有用处

例如,在一个Mura/Framework-One站点中,我最终得到了:

"Warning","jrpp-186","04/25/13","15:26:36",,"Thread: jrpp-186, processing template: /home/mysite/public_html_cms/wwwroot/index.cfm, completed in 11 seconds, exceeding the 10 second warning limit"
"Warning","jrpp-196","04/25/13","15:27:11",,"Thread: jrpp-196, processing template: /home/mysite/public_html_cms/wwwroot/index.cfm, completed in 59 seconds, exceeding the 10 second warning limit"
"Warning","jrpp-214","04/25/13","15:28:56",,"Thread: jrpp-214, processing template: /home/mysite/public_html_cms/wwwroot/index.cfm, completed in 32 seconds, exceeding the 10 second warning limit"
"Warning","jrpp-134","04/25/13","15:31:53",,"Thread: jrpp-134, processing template: /home/mysite/public_html_cms/wwwroot/index.cfm, completed in 11 seconds, exceeding the 10 second warning limit"

是否有某种方法可以获取查询字符串或帖子详细信息,或者是否有其他方法可以获取我想要的内容?

对于任何耗时超过10秒的请求,您可以轻松地在应用程序中添加一些日志记录

在onRequestStart()中:

在onRequestEnd()中:


这个想法是,日志只是告诉您速度非常慢的sp ypu可以自己进行性能调整的页面。
打开调试以了解更多详细信息。

如果您正在编写Mach II、FW/1或ColdBox应用程序,那么编写一个“插件”就很简单了,它可以在每个请求上运行,捕获请求中传递的URL或表单变量,并将其存储在一个简单的数据库表或日志文件中。(您甚至可以捕获session.userID或IP地址或您可能需要的任何内容。)如果您要捕获到数据库表,您可能不希望任何索引优化性能,并且您需要旋转该表,这样您就不会试图在具有数千万行的表上进行高速插入

  • 在Mach II中,您需要编写一个插件
  • 在FW/1中,您需要将一个对控制器的调用放入application.cfc中的setupRequest()中,该控制器负责处理此问题
  • 在ColdBox中,您将编写一个拦截器

我相信聚变反应堆会证明这一点。
    request.startTime = getTickCount();
    request.endTime = getTickCount();

    if (request.endTime - request.startTime > 10000){
        writeLog(cgi.QUERY_STRING);
    }