← Назад ко всем вопросам

Что такое observability и чем она отличается от мониторинга?

1️⃣ Как кратко ответить

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

2️⃣ Подробное объяснение темы

Observability и мониторинг — это два взаимосвязанных, но различных подхода к управлению и анализу состояния систем и приложений.

Observability (Наблюдаемость):

Observability — это концепция, которая позволяет понять внутреннее состояние системы на основе анализа внешних данных. Она основывается на трех ключевых столпах: логах, метриках и трассировках.

  • Логи: Записи событий, которые происходят в системе. Они дают детализированное представление о том, что именно произошло в конкретный момент времени.

  • Метрики: Числовые данные, которые показывают текущее состояние системы, такие как загрузка процессора, использование памяти, количество запросов в секунду и т.д.

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

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

Мониторинг:

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

  • Сбор данных: Автоматическое получение метрик и логов из системы.

  • Анализ данных: Использование собранных данных для выявления отклонений от нормального поведения.

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

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

Пример кода для мониторинга метрик:

import time
import random
​
def collect_metrics():
    # Генерация случайной метрики загрузки процессора
    cpu_load = random.uniform(0, 100)
    return cpu_load
​
def monitor_system():
    while True:
        cpu_load = collect_metrics()
        print(f"Current CPU Load: {cpu_load}%")
​
        # Проверка, превышает ли загрузка процессора пороговое значение
        if cpu_load > 80:
            print("Warning: High CPU Load!")
​
        # Задержка в 5 секунд перед следующим сбором метрик
        time.sleep(5)
​
monitor_system()
  • collect_metrics(): Функция, которая генерирует случайное значение загрузки процессора. В реальной системе здесь бы использовались реальные данные.

  • monitor_system(): Основная функция мониторинга, которая постоянно собирает метрики и проверяет их на превышение пороговых значений.

  • time.sleep(5): Задержка между циклами сбора метрик, чтобы не перегружать систему.

Отличия:

  • Цель: Observability позволяет исследовать и понимать поведение системы, в то время как мониторинг направлен на обнаружение и реагирование на известные проблемы.

  • Подход: Observability предоставляет возможность задавать новые вопросы и исследовать неизвестные проблемы, тогда как мониторинг работает с заранее определенными метриками и событиями.

  • Применение: Observability особенно полезна в сложных и динамичных системах, где проблемы могут возникать в неожиданных местах, а мониторинг эффективен для быстрого реагирования на известные проблемы.

Тема: Логи, мониторинг и observability
Стадия: Tech

🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!

Твои заметки