Страница состояния сервера Coldfusion - PullRequest
1 голос
/ 02 марта 2011

Я хотел бы создать страницу на веб-сайте ColdFusion (на котором есть выделенный сервер), который предоставляет пользователям некоторую информацию о степени нагрузки сервера.

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

Данные о трафике должны быть динамическими.

Итак, мне любопытно, пытался ли кто-нибудь еще заняться чем-то подобным?и может ли быть какой-нибудь пакет с открытым исходным кодом, доступный для помощи?

Ответы [ 4 ]

4 голосов
/ 02 марта 2011

Существует несколько бесплатных (и не бесплатных) инструментов мониторинга CF всех форм и размеров. Вот хороший список: http://cf411.com/#cfmon

Многие из этого списка - это тот тип, который вы ищете, который позволил бы вам предоставлять такие данные своим пользователям на одной странице. Если вы разместите это на общедоступном сервере, я бы порекомендовал поставить аутентификацию перед ним ... это не та информация, которую вы хотели бы представить широкой публике! :)

2 голосов
/ 02 марта 2011

Для начала вы можете получить оперативную информацию об использовании памяти в JVM:

<cfset runtime = CreateObject("java","java.lang.Runtime").getRuntime()>
<cfset freeMemory = runtime.freeMemory() / 1024 / 1024>
<cfset totalMemory = runtime.totalMemory() / 1024 / 1024>
<cfset maxMemory = runtime.maxMemory() / 1024 / 1024>

Также возможно - хотя, очевидно, не во всех системах - получить информацию о ситуации с памятью на самом сервере:

<cfset mFact = createObject('java','java.lang.management.ManagementFactory')>
<cfset osBean = mFact.getOperatingSystemMXBean()>
<cfset freeSystemMem = osBean.getFreePhysicalMemorySize()>
<cfset totalSystemMem = osBean.getTotalPhysicalMemorySize()>

Более подробную информацию можно получить, если использовать Server Monitor API . И если вы используете FusionReactor , FRAPI предоставляет все виды интересных функций, таких как getCpuUsage().

Я не уверен, что имеет смысл предоставлять такую ​​информацию вашим пользователям, но есть варианты.

0 голосов
/ 02 марта 2011

Действительно зависит от того, какие именно данные вы хотите видеть?

Я думаю, что это смесь аналитики Google, и если вы используете Windows для Windows, чтобы собрать счетчики / статистику производительности оборудования / ОС / Coldfusion.

Вот пример wmi и coldfusion.

http://misterdai.wordpress.com/2010/03/02/askdave-cf7-cpu-usage-on-windows/

А потом был мой точно такой же вопрос и несколько примеров:

Я хочу использовать WMI или Java в ColdFusion для Windows для получения данных о производительности

0 голосов
/ 02 марта 2011

Я не уверен, что вы работаете в Windows, но если вы используете другой вариант, разрешите perfmon собирать статистику о вашем экземпляре ColdFusion, такую ​​как Среднее время запроса, Длина очереди и т. Д.

Выконечно, можно также собирать ЦП, доступную память и т. д. через perfmon и сохранять их набор файлов журналов, которые вы можете читать раз в минуту, используя запланированное задание CF, и сохранять в базе данных для суммирования и построения графиков и т. д.

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

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

Я хотел бы использовать что-то вбудущее вроде New Relic но они не поддерживают JRun.Возможно, если CF позволит автономно работать с Tomcat, мы увидим эту опцию в будущем.

...