Журнал медленных страниц занимает больше, чем [п] секунд в ColdFusion с деталями

(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"

Есть ли какой-то способ получить строку запроса или опубликовать там детали, или есть другой способ получить то, что мне нужно?

3 ответа

Решение

Вы можете легко добавить некоторые записи в ваше приложение для любых запросов, которые занимают более 10 секунд.

В onRequestStart():

    request.startTime = getTickCount();

В onRequestEnd():

    request.endTime = getTickCount();

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

Если вы пишете приложение Mach-II, FW/1 или ColdBox, просто написать "плагин", который запускается при каждом запросе, который захватывает переменные URL или FORM, переданные в запросе, и сохраняет их в простой таблице базы данных или журнальный файл. (Вы можете даже захватить session.userID или IP-адрес или все, что вам может понадобиться.) Если вы записываете в таблицу базы данных, вам, вероятно, не понадобится оптимизировать индексы для повышения производительности, и вам нужно будет повернуть эту таблицу так, чтобы Вы не пытаетесь делать высокоскоростные вставки в таблицу с десятками миллионов строк.

  • В Mach-II вы бы написали плагин.
  • В FW / 1 вы бы вызывали контроллер, который обрабатывает это в setupRequest() в вашем application.cfc.
  • В ColdBox вы бы написали перехватчик.

Идея состоит в том, что в журнале просто указывается, какие страницы могут быть слишком медленными для того, чтобы программа могла самостоятельно настраивать производительность. Включите отладку для получения дополнительной информации для начала.

Другие вопросы по тегам