Observability и Monitoring

Мы приступаем к завершающему этапу подготовки системы микросервисов - настройке централизованного сбора логов и метрик и организации мониторинга. В уроке про Gateway Service мы настроили распределенную трассировку запросов с помощью Micrometer и Zipkin. В образовательных целях в этом уроке заменим Zipkin на Grafana Tempo, объединив все панели для наблюдения за состоянием микросервисов в одном месте - Grafana.

Стек технологий

Существует множество решений, позволяющих организовать процесс наблюдения за состоянием распределенной системы. Мы воспользуемся одним из наиболее популярных и распространенных на текущий момент стеком технологий:
  • Micrometer - инструментация микросервисов для получения метрик
  • Prometheus - сбор, аггрегация и хранение метрик
  • Tempo - распределенные трассировки
  • Loki - сбора и анализа логов
  • Grafana - визуализация данных (трассировок, метрик, логов)

Доступ после оплаты курса


Общая информация

  • Основные определения
  • Micrometer
  • Prometheus
  • Tempo
  • Loki
  • Grafana

Настройка микросервисов

  • Настройка Gateway Service
  • ДЗ: настройка остальных микросервисов

Настройка окружения в Docker Deployment

  • Prometheus
  • Tempo
  • Loki
  • Grafana

Запуск микросервисов и работа с дашбордами

  • Запуск микросервисов
  • Grafana, вкладка Explore
    • Логи
    • Трассировки
    • Метрики
    • Использование готовых панелей мониторинга
    • Дашборд для Kafka
    • Визуализация показателей Kafka Consumer
    • Визуализация показателей Kafka Producer

Итак, в этом уроке мы подробно рассмотрели три основных компонента в Monitoring and Observability: логи, трассировки и метрики. Также мы подняли и настроили инфраструктуру, необходимую для организации централизованного сбора, обработки и визуализации телеметрии с микросервисов и настроили сами микросервисы, чтобы они отдавали данные в нужном формате. Помимо этого мы воспользовались готовыми публичными дашбордами для визуализации метрик, а также подготовили свой дашборд для работы с данными о сотоянии Kafka Producers и Consumers. Это завершающий урок курса, однако это вовсе не значит, что больше не над чем работать.

Идеи для развития проекта

  1. На текущий момент мы вручную управляем контейнерами с инфраструктурой и микросервисами, что не очень удобно, хотя и возможно, но до тех пор, пока количество микросервисов мало. Когда микросервисов становится гораздо больше, требуется система управления контейнерами. В современных реалиях де-факто стандартом такой системы является Kubernetes.
    В конце марта мы начнем готовить 2-ю часть от Александра - CloudJava K8s.
  2. Чтобы улучшить производительность, можно внедрить принципы CQRS (Command Query Responsibility Segregation) и Event Sourcing
  3. Также можно подумать над внедрением поиска по сайту с помощью мощного механизма, предоставляемого ElasticSearch.

Контакты: Григорий Кислин
E-mail: admin@javaops.ru
ОГРНИП: 317784700063201 | ИНН: 782581076920

Cайт-партнер: topjava.ru
Поделиться:
Москва Санкт-Петербург Киев Минск Харьков Новосибирск Львов Нижний Новгород Алматы Одесса Днепр Краснодар Екатеринбург Самара Ростов-на-Дону Днепропетровск Казань Воронеж Челябинск Пермь Гомель Владивосток Астана Томск Саратов Гродно Уфа Калининград Николаев Запорожье Ярославль Омск Кемерово Белгород Брест Ташкент Херсон Ижевск Чебоксары Караганда Волгоград Балашиха Йошкар-Ола Киров Барнаул Калуга Иркутск Магнитогорск Донецк Монреаль Warszawa Los Angeles Винница Сыктывкар Тюмень Рига Кишинев Бишкек Владимир Красноярск Ульяновск Жуковский Тольятти Тверь Вологда Улан-удэ Сочи Иваново Мариуполь Пенза Краков Сумы Подольск Тула Рязань Хабаровск Helsinki Могилев Haifa Полтава Сургут Новокузнецк Березники San Francisco Иннополис Tel Aviv Ереван Тернополь Ставрополь Кривой рог Северодвинск Витебск Астрахань

AltStyle によって変換されたページ (->オリジナル) /