В чем разница между наблюдаемостью и мониторингом?

Наблюдаемость и мониторинг в системе DevOps – это два разных процесса на основе данных. Они помогают поддерживать работоспособность и производительность распределенных микросервисных архитектур и соответствующей инфраструктуры. Распределенные системы основаны на обмене данными между десятками, сотнями или тысячами отдельных компонентов. 

Мониторинг – это процесс сбора данных и создания отчетов по разным метрикам, которые определяют состояние системы. Наблюдаемость подразумевает другой подход, который можно назвать исследовательским. Этот процесс анализирует взаимодействия между компонентами распределенной системы и данными, собранными процессом мониторинга, позволяя выявлять первопричины проблем. Сюда относятся такие действия, как анализ путей трассировки, который отслеживает путь запроса в системе для выявления сбоев в интеграции. Мониторинг собирает данные об отдельных компонентах, а наблюдаемость анализирует распределенную систему в целом.

Подробнее о DevOps

Мониторинг и наблюдаемость: как это работает

Наблюдаемость и мониторинг являются важными процессами в любой эффективной программе DevOps.

Мониторинг

Мониторинг вычислительных систем используется так же долго, как и сами вычислительные системы. Процесс мониторинга собирает данные о системе, чтобы проверить, правильно ли она работает. Он создает отчеты и оповещения об ошибках, неисправностях или аномальных значениях данных. 

Например, инструменты мониторинга могут собирать данные для оценки времени, затрачиваемого на развертывание нового выпуска приложения. Если это время превышает предел ожиданий, инструменты мониторинга могут предупредить пользователей о потенциальной проблеме. 

Мониторинг DevOps охватывает весь жизненный цикл разработки программного обеспечения. Мониторинг производительности приложений – это специализированный набор технологий мониторинга DevOps, ориентированный на приложения в рабочей среде. В этом направлении приоритет отдается метрикам, которые оценивают взаимодействие с пользователем.

Подробнее о жизненном цикле разработки программного обеспечения

Подробнее о мониторинге производительности приложений (APM)

Наблюдаемость

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

Инструменты наблюдаемости можно использовать для отладки систем, основанных на архитектуре распределенных приложений. Также они позволяют в реальном времени отслеживать состояние систем в целом и взаимодействием между их компонентами. Программное обеспечение систем наблюдаемости создает подробную карту всей взаимосвязанной системы, ее зависимостей и взаимодействий в реальном времени.

Мониторинг и наблюдаемость: сходства

И наблюдаемость, и мониторинг изначально создавались на основе теории управления, системной инженерии и математики. Оба этих механизма широко используются в вычислительных и использующих вычисления физических средах для поддержания работоспособности и производительности системы. В концепции DevOps эти термины часто считаются синонимами, поскольку оба они относятся к данным телеметрии, таким как метрики, события, журналы и трассировки.

Метрики

Метрики – это изменяемые системные данные. Например, метрикой может являться пропускная способность сети или количество ошибок приложений за неделю. Мониторинг отчетов по метрикам и наблюдаемость стремятся найти способы улучшить значения метрик.

События

События – это отдельные действия, которые происходят в системе в любой момент времени. В качестве примеров можно указать смену пароля пользователем или предупреждение о большом количестве попыток ввода пароля. События запускают процессы мониторинг и помогают расследовать инциденты с помощью наблюдаемости.

Журналы

Журналы – это создаваемые программным обеспечением файлы с информацией об операциях, действиях и шаблонах использования в системе. Они включают в себя исторические записи обо всех процессах, событиях и сообщениях, а также дополнительные описательные данные, такие как временные метки, для контекстуализации этой информации. Мониторинг создает журналы, которые наблюдаемость затем применяет для анализа системы.

Подробнее о файлах журналов

Маршруты

Трассировка – это полный путь одной операции через несколько взаимосвязанных систем. Для отслеживания трассировки в полностью распределенной системе нужно получать сигналы от каждой транзакции в микросервисной архитектуре. Мониторинг позволяет получать трассировки, что очень важно для наблюдаемости.

Мониторинг и наблюдаемость: ключевые отличия

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

Мониторинг показывает, когда и где произошла системная ошибка, а наблюдаемость помогает разобраться, почему и как. Существует множество сигналов, которые необходимо сопоставлять и отслеживать, чтобы получить общую картину внутреннего состояния и работоспособности всей системы. Все эти данные необходимы для проведения эффективных исследований. Чтобы наблюдаемость была максимально полезной и эффективной, мониторинг должен быть всеобъемлющим и описательным.

Аномалии

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

Причина и следствие

Мониторинг нацелен на сбор одного или нескольких параметров, которые оценивают наличие влияния на систему. Наблюдаемость нужна для того, чтобы понять причину такого влияния. Например, при публикации нового кода мониторинг отслеживает системные метрики и оценивает, повлияло ли это изменение на время загрузки приложения или время получения данных. Если будет обнаружено влияние, наблюдаемость позволит определить его причину. Она выяснит, изменения в какой части кода вызвали этот эффект, и предложит способы устранить проблему.

Взаимодействия с системой

Мониторинг обычно оценивает состояние конкретной системы. Он собирает данные от всех компонентов системы, но эти данные будут изолированы, и связи между ними не очевидны. Благодаря наблюдаемости вы получаете общее представление о взаимозависимостях в системе, что позволяет понять, где и как возникают проблемы.

Мониторинг и наблюдаемость: когда использовать

Ретроспективное обнаружение ошибок, например получение информации о сбоях от пользователей или обнаружение приложения, запущенного на неправильной целевой системе, может привести к потере времени, денег, репутации и ресурсов разработчиков. Мониторинг необходим для упреждающего выявления ошибок. Инструменты мониторинга предупреждают о несоответствиях любого типа, которые можно выявить и устранить до того, как они повлекут за собой долгосрочные последствия.

Наблюдаемость системы расширяет возможности мониторинга. Это очень важно при использовании архитектур микросервисных приложений, особенно развернутых в распределенной облачной инфраструктуре. Одного мониторинга в такой среде недостаточно, чтобы надежно определить и изолировать приложение или службу, в которых возникают ошибки. Правильный сбор данных и мониторинг в сочетании с наблюдаемостью позволяют отслеживать ошибки в сложных системах.

Мониторинг и наблюдаемость: краткое описание различий

 

Мониторинг

Наблюдаемость

Что это

Измерение конкретных метрик системы и составление отчетов по ним для контроля работоспособности системы.

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

Основная задача

Сбор данных для выявления аномальных системных эффектов.

Изучение первопричин аномальных системных эффектов.

Задействованные системы

Обычно относится к автономным системам.

Обычно относится к нескольким разрозненным системам.

Отслеживаемость

В пределах границ системы.

Везде, где генерируются сигналы в любых системных архитектурах.

Обнаружение системных ошибок

Когда и что.

Почему и как.

Как AWS может помочь в выполнении требований к наблюдаемости и мониторингу?

Сервис Операции в облаке AWS предоставляет модель и инструменты для безопасной и эффективной работы в облаке. С помощью Amazon Web Services (AWS) вы можете преобразовать свою организацию, модернизировать и перенести приложения, а также ускорить внедрение инноваций. 

Благодаря мониторингу и наблюдаемости для операций в облаке вы можете собирать, сопоставлять, агрегировать и анализировать данные телеметрии. Это могут быть данные о сети, инфраструктуре и приложениях в облачных, гибридных или локальных средах. Вы можете получить представление о поведении, производительности и текущем состоянии системы. Благодаря аналитическим данным вы сможете быстрее обнаруживать, исследовать и устранять проблемы. Добавление возможностей искусственного интеллекта и машинного обучения позволяет использовать эти данные для упреждающего реагирования, прогнозирования и предотвращения проблем.

Ниже приведены несколько примеров.

  • AWS X-Ray позволяет анализировать и отлаживать производственные и распределенные приложения, отслеживать запросы пользователей, выявлять узкие места и организовать мониторинг производительности.
  • Amazon CloudWatch позволяет получать и анализировать данные из приложений и внешних источников с применением мощных инструментов визуализации в облаке AWS, других облаках и локальной среде.
  • Управляемая Amazon Grafana предоставляет полностью управляемое средство Grafana для мониторинга запросов, визуализации и генерации оповещений по метрикам, журналам и трассировкам операционных данных.
  • Управляемый сервис Amazon для Prometheus предоставляет полностью управляемое средство Prometheus для мониторинга контейнеров, которое обеспечивает обработку показателей по самоуправляемым кластерам контейнеров Kubernetes в формате временных рядов и поддерживает запросы по ним.

Примените мониторинг и наблюдаемость в среде AWS, создав учетную запись прямо сейчас.