После распределенной системы система становится запутанной и сложной, и, как правило, трудно полностью понять всю систему, а ошибки трудно локализовать Мониторинг цепочки вызовов необходим, чтобы быстро помочь нам найти проблемы мониторинга и понять систему микросервисов.
Если мониторинг не применяется:
- Сервис опубликован в сети, откуда вы знаете, что все в норме
- Сообщается о большом количестве ошибок, где они произошли и кто является причиной
- Ошибки ручной настройки, ночные расследования, труд и деньги
- Проблемы с базой данных, можете ли вы получить представление, прежде чем что-то пойдет не так?
Все, что может пойти не так, пойдет не так, микросервисы требуют мониторинга приложений — закон Конвея
Как обнаружить проблемы на ранней стадии?
-
Практика 1: Чтобы улучшить, вы должны сначала уметь измерять. Нужно дать разработчикам линейку для измерения обратной связи
-
Практика 2: Кто строит, кто разрешает, кто контролирует. Эксплуатация и техническое обслуживание не знают контекста разработки и имеют ограниченное понимание.Если разработчики помогут себе, они смогут лучше улучшить систему
Принцип мониторинга цепочки вызовов
В 2010 году Google выпустила статью Даппера, вы можете прочитать статью.Бумажный адрес
- traceid: некоторые из них будут называться requestNo, traceid во всей цепочке вызовов одинаков, так что все взаимодействующие запросы и ответы между системами можно найти через traceid
- spanid: есть только traceid, и невозможно точно узнать, какая служба вызывается первой, а какая позже.Комбинация spanid и parentSpanid может быть выражена в виде древовидной связи вызова.
Когда система дает сбой:
- Соберите идентификаторы трассировки в коллекцию, включая запросы и ответы.
- Восстановить вызов дерева через spanid и parentSpanId
- Идентифицируйте и помечайте узлы с тайм-аутами и ошибками
- Отображение приведенной выше информации и информации об узле ошибки
Теперь система мониторинга цепочки звонков с открытым исходным кодом:
- Cat, Meituan Dianping имеет открытый исходный код, прототип и концепция основаны на системе клиентских лицензий eBay, а наша компания основана на Cat.GitHub.com/comments/rubbing…
- Zipkin: реализация с открытым исходным кодом, основанная на документе Google Dapper,zipkin.io/
Кот Мэйтуань Дяньпин
Для ознакомления вы можете обратиться к официальной документации, которая обеспечивает мониторинг и оповещение.
- Подробные отчеты помогают понять организацию системы и обзор со всех сторон.
- Для быстрого обнаружения и решения проблем с корневыми нотами
- Помогите взрастить интернет-людей: осознание DevOPS автономии и самопомощи, осознание превосходного качества
- Найдите технические долги, красные и черные списки, внесите системы с хорошей производительностью в красный список, а системы с низкой производительностью в черный список и попросите персонал оптимизировать
использовать
Показанный здесь основан на Cat с некоторыми модификациями.
сообщение об ошибке
- Быстро найти аномалии минутного уровня
- Нажмите, чтобы просмотреть тип и конкретную информацию об исключении.
- Щелкните сводку исключений, чтобы просмотреть полную цепочку вызовов исключения, щелкните время возникновения, вы увидите цепочку вызовов метода исключения.
Относительно использования диска с сообщениями об ошибках, пожалуйста, обратитесь к моей предыдущей записи:Помните простой опыт устранения неполадок
анализ производительности
- Просматривайте производительность скрытых точек, среднее время вызова, максимальное время, 95% времени вызова и т. д., вы можете быстро определить колебания производительности.
- Проанализируйте звонки в определенный момент.
- Щелкните вызов в определенный момент, вы можете увидеть статистику вызовов на уровне минут, а затем отследить вызов в цепочке вызовов приведенного выше анализа ошибок.
Статистика событий
- Перейдите к точке обслуживания в приведенном выше анализе производительности, чтобы узнать, сколько раз вызываются определенные службы.
служебные отношения
Убедитесь, что система была вызвана этими системами, и мы вызвали эти системы
Для услуги вы можете увидеть, кто ее вызывал
Рынок баз данных
Посмотреть, сколько раз вызывается тот или иной sql, количество сбоев, уровень доступности, среднее время и т. д.
трендовый рынок
Настройте индикаторы той системы, которую хотите видеть, и вновь созданные индикаторы будут размещены в личной панели
статус службы
Просмотр информации о хосте, ЦП, памяти, сети, JVM, пуле потоков, диске и др. Сама Cat не подходит для этой информации мониторинга, и другие системы также могут быть выбраны для мониторинга хоста.
Иногда ошибки могут возникать и при проблемах с диском, так что обратите внимание и на это.
Производственная практика
На сайте github проекта cat он сделал несколько интегрированных скрытых точек, адрес интеграции:GitHub.com/comments/rubbing…
Похороненный:
- При переходе между процессами должна передаваться контекстная информация, такая как вызовы Http, а информация о вызове может быть помещена в заголовок Http.
- Скрытые точки Cat навязчивы. Если вы не хотите вторгаться в код, вы можете сделать некоторые спрятанные точки на основе АОП и аннотаций.
развертывать:
- В качестве кластеров рекомендуется использовать физические машины.
- Если вы храните данные в течение длительного времени, вы можете использовать HDFS.
Наконец
В основном рассказывалось о том, зачем нужен мониторинг цепочки вызовов и преимущества мониторинга цепочки вызовов, кратко объяснялся принцип мониторинга цепочки вызовов и, наконец, демонстрировалось использование системы цепочки вызовов на базе Cat.
Ссылаться на
- [Микросервисная архитектура Ян Бо, 160 лекций — Geek Time Column]
- щеголеватая бумага
- Личный сайт Ян Бо