Первоначально опубликовано на Хозяин Graphite Blog .
При размещенном графите внутренний системный мониторинг является то, что наши инженеры всегда обеспокоены. Чтобы обнаружить любую деградацию, мы постоянно самопроверьте все наши конечные точки — каждую секунду, каждый день. Это дает нам ранний предупреждающий признак небольших изменений, которые могут быть показателем больших проблем и дают нам знать, насколько хорошо работает наш сервис. Мы стараемся измерить то, что наши клиенты на самом деле испытывают, и это одна из главных показателей качества обслуживания, на которой мы оцениваем себя.
Каждая канарская служба отправляет значение «1» один раз в секунду с соответствующей временем времени на каждую конечную точку, на которой мы принимаем метрический трафик.
В случае любых TCP-соединений мы перенастроили новое соединение каждый раз (и записать время, необходимое), чтобы разрешить измерение задержек сети и перегрузки услуг.
Затем мы можем постоянно следить за этими метриками для какого-либо значения.
Эта система позволяет нам знать, если что-то неверно: когда объем трафика мы записываем падение ниже приемлемой суммы потери для определенного обслуживания, наши инструменты оповещения поднимают тревогу. Затем мы можем проверить точное количество неудачных точек данных, глядя на нашу сумма dataviews представлены на приборной панели. Эти цифры агрегируются и сгруппированы по протоколу и исходной сети, позволяя нам определить степень деградации с первого взгляда. Мы можем ответить на «просто одну зону AWS?» или «все услуги УДП?» Вопросы чрезвычайно быстро из-за этого непрерывного распределенного мониторинга.
Степень каносившей приборной панели — все зеленое прямо сейчас!
Сочные детали
Мы проверяем все наши конечные точки. Это включает в себя TCP, TCP W/TLS, UDP, Scille, Scille W/TLS и HTTPS. Наш тест отправляет DataPoint каждую секунду, чтобы убедиться, что мы подбираем любые деградации обслуживания. Чтобы убедиться, что мы не ложно охватываем задержку при принятии данных или установления соединения, канарцы были тщательно спроектированы для отправки одной нагрузки на секунду и отказаться от попытки, если она занимает больше секунды, обеспечивая очень дольше, чем Надежная непрерывная скорость одного значения в секунду, независимо от того, что.
Если это займет дольше, чем секунду, чтобы подключиться и отправить даты DataPoint, мы записываем, что в качестве сброшенного DataPoint, потому что мы заботимся о скорости доставки данных, а также, как долго требуется для нас.
Один файл данных отправляется для каждого протокола, и они переходят на наш графитовый совместимый конечные точки. Скорость этих метрик затем отображается в нашей службе оповещения, и если значение падает ниже приемлемой потери для определенного сервиса, инженер на вызове выходит.
Canary Sumrates Dashboard — мы компенсируем линию при 2,0 от 1,0 для четкого вида как на одном графике
Наши канарские услуги расположены в трех местах:
Внешний
Внешние канары все расположены за пределами основного размещенного архитектуры графита/трубопровода. Они помечены и отправлены из разных мест, во всем мире. Мы делаем это, чтобы мы могли понять, если, например, есть проблема с трафиком из определенного региона.
Внутренний
Мы проводим больше канареек, которые сидят в нашем собственном центре обработки данных. Это позволяет нам проверить нашу локальную сеть, чтобы мы могли различать неудачу, которая, вероятно, может быть из-за некоторого неудачи в нашем собственном обслуживании, в отличие от внешних проблем подключения.
На машине
Пока мы отправляем канареемые данные из многих мест вне и внутри нашей сети, мы также отправляем непрерывный поток данных канарейных данных локально из каждого из наших сервисов приема на себя, поэтому сбои одной машины или услуги немедленно очевидны. Эти данные также используются автоматически нашими инструментами обнаружения кластеризации и обслуживания, что позволяет автоматически восстановить наиболее распространенные отдельных типов отказа машины.
Страница состояния (включает в себя полную историю инцидента)
Для прозрачности Мы публикуем все детали на нашей странице статуса Таким образом, наши клиенты имеют полную видимость любого блока в нашем сервисе и информацию о состоянии в реальном времени. Мы включаем полное разрушение того, что вызвало проблему, которая она затронула, и как проблема была решена.
Написано Дэн Фокс, Sre на размещенном графите.
Оригинал: «https://dev.to/bbhnn/continuous-self-testing-at-hosted-graphite-why-we-send-external-canaries-every-second-4hh7»