Как отобразить текущее время ответа моего сервера для среднего пользователя - PullRequest
3 голосов
/ 11 марта 2010

Извините, я не совсем уверен в правильном способе задать этот вопрос, так что терпите меня ...

У нас есть веб-приложение, которое работает на наборе серверов в центре обработки данных (не в наших офисах). Мы хотим иметь возможность каким-то образом «сообщать» нашим клиентам / пользователям о том, что доступность или время отклика наших серверов соответствовали стандарту в течение дня.

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

Я думаю, что мне нужно перехватить что-то вроде результатов трассировки с сервера (в нашем офисе, Amazon и т. Д.) На один из серверов центра обработки данных и получить красный / желтый / зеленый тип уведомителя для экрана входа в систему, чтобы пользователь знал, что наши тесты отвечают нормально, и если у них возникают проблемы с задержкой, это может быть их сеть или подключение к Интернету. У нас много клиентов в сельской местности, у которых плохая связь, и мы пытаемся дать им понять, что медлительность может быть на их стороне, а не на нашей.

У меня есть стек LAMP для работы, но это также может быть какая-то другая система, если она может обновлять основной сервер с результатами.

У меня уже есть доступные отчеты pingdom, но это немного больше, чем люди хотят иногда читать.

Есть идеи о том, что я могу сделать?

Разрешение

Я закончил с идеей Тима PEAR Net_Ping. Я использовал следующее:

$ping->setArgs(array('count' => 6));
$results = $ping->ping('x.x.x.x');
$avgPing = $results->_round_trip['avg'];

Чтобы получить в среднем 6 пингов на сервер. Затем я сохранил результат в БД и смог показать среднее значение последних 5 проверок, чтобы дать представление о здоровье. Посмотрим, как это понравится клиентам.

Ответы [ 3 ]

3 голосов
/ 11 марта 2010

Если все, что вас волнует, это сетевая задержка (не такая, как загрузка сервера), почему бы не пропинговать с сервера до набора известных хороших хостов . Затем сообщите пользователю среднее время пинга (используя цветовую шкалу для разных диапазонов отклика).

Затем вы также можете пропинговать IP-адрес пользователя и показать этот «статус», поскольку цель состоит в том, чтобы проиллюстрировать, где находится «лаг».

Это кажется лучше и проще, чем проверка латентности с внешнего сервера (по крайней мере, для меня).

Чтобы выполнить фактический ping, вы можете использовать задание cron и обработать результаты с помощью php-скрипта или использовать библиотеку ping. PEAR Net_Ping не поддерживается, но работает.

Для чего-то более сложного, чем ping, вы можете получить несколько страниц (или изображений), а затем рассчитать время выборки / размер ответа. Это может быть лучшим показателем, если пропускная способность является потенциальной проблемой (это основная концепция сайтов «скоростного тестирования»).

1 голос
/ 11 марта 2010

Приложение для мониторинга сети, такое как Nagios или OpenNMS , предоставит вам практически любую статистику, которая вам может понадобиться, и по крайней мере у Nagios уже есть веб-интерфейс . Я верю, что OpenNMS делает то же самое, но для этого требуется Tomcat.

Я работал только с Nagios, и это было много лет назад (для регионального интернет-провайдера по телефонной линии многие из этих телефонных звонков каждый день). Мне пришлось очистить веб-интерфейс и позаимствовать несколько сгенерированных графических изображений для моего собственного дисплея, но это было достаточно легко автоматизировать ежечасно с помощью cron. Я был бы удивлен, если бы у него не было какой-то надстройки, которая бы упростила процесс сейчас, если бы не правильный API.

0 голосов
/ 11 марта 2010
...