Просим пользователя сообщать о падении сайта

в 13:35, , рубрики: Google Forms, Веб-разработка, метки:

Не так давно на хабре появилась статья Мониторинг сайта с помощью Google Docs. Суть которого была в том, что в Google Docs создавался документ со скриптом, периодически опрашивающим сайт на предмет доступности и высылающим письмо владельцу в случае падения.

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

Событие в Google Analytics

Первым решением было внедрение в страницу ошибки 50x кода Google Analytics и настройка уведомлений на почту при срабатывании определенного события.

Через секунд в Google Analytics высылается event и через некоторое можно посмотреть всю информацию об ошибке: url, источник входа, параметры и т.д. Проблема только одна, отчет о событиях присылается на следующий день. Если сайт действительно упал, то такое время ожидания неприемлимо.
Просим пользователя сообщать о падении сайта

События прямо из браузера

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

Покопавшись в Javascript и Flash обнаружил, что для отправки письма нужно

  • либо обеспечить обработку на стороне сервера — что невозможно, исходя из предположения о падении всего, кроме nginx
  • либо просить пользователя отправить письмо ручками — таким образом «паля» свой и его почтовый адрес
Google Forms

Решение пришло неожиданно — встроить в страницу опросник от Google.

  1. Создаем новый опросник с минимумом вопросов. У меня это обязательная галочка «Report a problem» и необязательное поле с комментарием
  2. Вставляем embed код в статическую страницу ошибки
  3. Заходим в свойства опроса и выставляем мгновенное уведомление о любом изменении

Пользователь видит сообщение об ошибке и кнопку рассказать

Просим пользователя сообщать о падении сайта

Через пару секунд приходит уведомление
Просим пользователя сообщать о падении сайта

Плюсы
+ Не требует обработки на стороне сервера
+ Анонимность для вас и пользователя
Минусы
— Одну кнопку пользователю таки придется нажать

Автор: TIgorA

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js