Моніторинг на основі журналів проти моніторингу на основі метрик
Моніторинг на основі журналів фіксує детальні записи подій для глибокого усунення несправностей, тоді як моніторинг на основі метрик відстежує числові точки даних з плином часу для отримання аналітики продуктивності в режимі реального часу. Обидва підходи служать різним цілям у сучасних стеках спостережуваності, і більшість команд виграють від їх спільного використання, а не від вибору одного з них.
Найважливіше
Журнали зберігають контекст подій для судово-медичної експертизи, тоді як метрики підсумовують стан системи для швидких запитів.
Метрики забезпечують майже миттєве оповіщення на основі порогових значень, тоді як оповіщення журналу вимагають парсингу та зіставлення зі шаблоном.
Вартість зберігання журналів масштабується залежно від обсягу подій та їх деталізації, тоді як сховище метрик залишається компактним та передбачуваним.
Поєднання обох підходів забезпечує повну картину спостережуваності, яку вимагають сучасні розподілені системи.
Що таке Моніторинг на основі журналів?
Записує окремі події з контекстуальними деталями, що дозволяє проводити судово-медичний аналіз та розслідування першопричин у розподілених системах.
Журнали — це структуровані або неструктуровані записи з часовими позначками про події, що генеруються програмами, серверами та компонентами інфраструктури.
Кожен запис у журналі зазвичай містить позначку часу, рівень серйозності, ідентифікатор джерела та описове повідомлення про те, що сталося.
Такі інструменти, як ELK Stack (Elasticsearch, Logstash, Kibana), Splunk та Loki, зазвичай використовуються для агрегації та пошуку даних журналів.
Моніторинг на основі журналів чудово відповідає на питання «чому це сталося», оскільки зберігає повний контекст окремих подій.
Вартість зберігання журналів, як правило, вища, ніж метрик, оскільки кожна подія може містити сотні байтів детальної інформації.
Що таке Моніторинг на основі метрик?
Збирає числові дані часових рядів для відстеження стану системи, тенденцій продуктивності та використання ресурсів у режимі реального часу.
Метрики – це числові вимірювання, що вибірково відбираються через регулярні проміжки часу, такі як відсоток використання процесора, затримка запитів або споживання пам'яті.
Бази даних часових рядів, такі як Prometheus, InfluxDB та Graphite, спеціально створені для ефективного зберігання та запитування метричних даних.
Моніторинг на основі показників відповідає на питання «що відбувається зараз» за допомогою інформаційних панелей, сповіщень та сповіщень на основі порогових значень.
Одна точка даних метрики зазвичай набагато менша за запис журналу, часто являє собою лише назву, позначку часу та значення.
Популярні інструменти візуалізації включають Grafana, панелі інструментів Datadog та представлення показників CloudWatch.
Таблиця порівняння
Функція
Моніторинг на основі журналів
Моніторинг на основі метрик
Тип даних
Записи подій з багатим контекстом
Точки даних числового часового ряду
Основний випадок використання
Аналіз першопричин та налагодження
Оповіщення в режимі реального часу та аналіз тенденцій
Обсяг сховища
Більше на запис, вищі витрати на зберігання
Компактні точки даних, нижчі витрати на зберігання
Метод запиту
Повнотекстовий пошук та фільтрація
Агрегація, математичні функції, запити до часових вікон
Час відгуку
Повільніше для великомасштабних запитів
Майже миттєво для запитів до панелі інструментів
Найкраще для відповіді
Чому сталася саме ця подія?
Який поточний стан системи?
Звичайні інструменти
ELK Stack, Splunk, Локі, Fluentd
Prometheus, Grafana, Datadog, CloudWatch
Можливість оповіщення
Обмежено, часто вимагає правил розбору журналів
Вбудовані порогові значення та сповіщення на основі аномалій
Детальне порівняння
Деталізація даних та контекст
Моніторинг на основі журналів фіксує кожну окрему подію з навколишнім контекстом, включаючи ідентифікатори користувачів, корисні навантаження запитів, трасування стека помилок та змінні середовища. Це робить журнали безцінними, коли вам потрібно точно відтворити, що сталося під час конкретного інциденту. Моніторинг на основі метрик, навпаки, підсумовує поведінку системи в числові значення, жертвуючи деталями окремих подій заради компактного, запитуваного формату, який добре працює на тривалих часових горизонтах.
Продуктивність та масштабованість
Бази даних метрик оптимізовані для високої пропускної здатності запису та швидкої агрегації, тому такі платформи, як Prometheus, можуть збирати дані з тисяч цільових даних кожні кілька секунд без зайвих зусиль. Системи логування вимагають більших обчислювальних витрат, оскільки вони індексують текст у вільній формі та підтримують складні пошукові запити. Оскільки обсяги логування зростають до терабайтів на день, командам часто доводиться інвестувати в багаторівневе сховище, стратегії вибірки або політики зберігання, щоб забезпечити контрольовані витрати.
Оповіщення та видимість у режимі реального часу
Метрики є надзвичайно корисними для сповіщень у реальному часі, оскільки оцінка числового порогу відносно часового ряду є обчислювально тривіальною. Ви можете налаштувати сповіщення, такі як «Завантаження процесора вище 90% протягом 5 хвилин», з мінімальними накладними витратами. Сповіщення на основі журналів можливі, але зазвичай вимагають правил розбору або механізмів запитів журналів для виявлення закономірностей, що додає затримки та складності. Для миттєвих сповіщень про стан системи метрики зазвичай є швидшим шляхом.
Налагодження та судово-медичний аналіз
Коли щось ламається, інженери часто в першу чергу дивляться в журнали, оскільки вони зберігають опис того, що сталося. Один запис у журналі може розкрити точне повідомлення про помилку, користувача, якого це стосувалося, та шлях коду, який спричинив збій. Метрики можуть показати, що рівень помилок зріс о 14:34, але вони рідко пояснюють, чому. Ось чому команди досвідчених інженерів розглядають журнали як інструмент розслідування, а метрики – як систему раннього попередження.
Міркування щодо вартості та зберігання
Зберігання журналів, як правило, дорожче, ніж зберігання метрик, оскільки кожен запис містить більше даних, а періоди зберігання часто довші з міркувань відповідності або аудиту. Середній за розміром додаток може генерувати мільйони рядків журналу щодня, створюючи при цьому лише кілька сотень унікальних серій метрик. Багато організацій впроваджують вибірку журналів, фільтрацію в джерелі або багаторівневе зберігання для контролю витрат, тоді як зберігання метрик зазвичай може тривати місяцями або роками за невеликих витрат.
Інтеграція в сучасній спостережуваності
Трьома стовпами спостережуваності є журнали, метрики та трасування, і більшість систем виробничого рівня спираються на всі три. Метрики надають загальний огляд стану справ, журнали пропонують глибокі діагностичні деталі, а розподілені трасування поєднують ці два елементи, показуючи потоки запитів між сервісами. Вибір між моніторингом на основі журналів та метрик рідко є рішенням «або-або»; натомість команди вирішують, як збалансувати інвестиції в кожен з них, виходячи зі своїх операційних потреб та бюджету.
Переваги та недоліки
Моніторинг на основі журналів
Переваги
+Багата контекстуальна деталізація
+Чудово підходить для налагодження
+Підтримує повнотекстовий пошук
+Зафіксовує рідкісні події
Збережено
−Вищі витрати на зберігання
−Повільніша продуктивність запитів
−Складне налаштування сповіщень
−Потрібні правила розбору
Моніторинг на основі метрик
Переваги
+Швидке сповіщення в режимі реального часу
+Низькі накладні витрати на зберігання
+Проста панель інструментів
+Ефективна агрегація
Збережено
−Обмежений контекст події
−Пропускає рідкісні аномалії
−Потрібні попередньо визначені показники
−Менше криміналістичних деталей
Поширені помилкові уявлення
Міф
Для роботи надійної системи вам потрібен лише один тип моніторингу.
Реальність
Більшість виробничих систем отримують користь від обох підходів. Метрики виявляють проблеми на ранній стадії за допомогою сповіщень, тоді як журнали допомагають інженерам зрозуміти першопричину проблеми після її виявлення. Покладання лише на один показник залишає сліпі зони, які можуть продовжити простої.
Міф
Колоди завжди занадто дорогі для тривалого зберігання.
Реальність
Хоча зберігання необроблених журналів може бути дорогим, багаторівневі стратегії зберігання, стиснення та інтелектуальна вибірка роблять довгострокове зберігання можливим. Багато систем відповідності фактично вимагають зберігання певних журналів протягом місяців або років, тому управління витратами — це радше стратегія, ніж уникнення.
Міф
Метрики можуть замінити журнали для налагодження.
Реальність
Метрики повідомляють про зміни, але вони рідко пояснюють, чому. Під час розслідування конкретної скарги користувача або рідкісної помилки журнали зазвичай є єдиним способом знайти справжню причину. Метрики та журнали виконують взаємодоповнюючі ролі у реагуванні на інциденти.
Міф
Більше даних журналу завжди означає кращий моніторинг.
Реальність
Надмірне ведення журналів створює шум, збільшує витрати та може фактично уповільнити усунення несправностей. Ефективний моніторинг на основі журналів зосереджений на фіксації значущих подій за допомогою структурованих полів, а не на викиданні кожної можливої деталі в неструктурований текст.
Міф
Моніторинг на основі метрик автоматично виявляє кожну аномалію.
Реальність
Метрики виявляють лише те, що ви явно вимірюєте. Якщо виникне новий режим відмови, про який ніхто не подумав, метрики його взагалі не врахують. Журнали, навпаки, фіксують неочікувані події, поки їх записує програма.
Часті запитання
Яка основна різниця між моніторингом на основі журналів та моніторингом на основі метрик?
Моніторинг на основі журналів записує окремі події з детальним контекстом, що робить його ідеальним для налагодження та судово-медичного аналізу. Моніторинг на основі метрик збирає числові дані з часом, що робить його ідеальним для сповіщень у режимі реального часу та візуалізації тенденцій. Журнали відповідають на запитання «чому», тоді як метрики відповідають на запитання «що» та «скільки».
Що дешевше, моніторинг журналів чи моніторинг метрик?
Моніторинг метрик, як правило, дешевший, оскільки кожна точка даних невелика та компактна. Моніторинг журналів коштує дорожче через обсяг та деталізацію записів журналу, особливо у великих масштабах. Однак витрати значною мірою залежать від політик зберігання, коефіцієнтів використання даних та конкретної моделі ціноутворення постачальника.
Чи можна виконувати сповіщення за допомогою моніторингу на основі журналів?
Так, але це складніше, ніж сповіщення на основі метрик. Такі інструменти, як Elasticsearch, Splunk та Loki, підтримують правила сповіщень, які спрацьовують, коли з'являються певні шаблони журналів. Компромісом є вища затримка та більше накладних витрат на обробку порівняно з оцінкою простого числового порогу.
Які інструменти найкраще підходять для моніторингу на основі журналів?
Популярні варіанти включають ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Grafana Loki та Fluentd для збору даних. Постачальники хмарних послуг також пропонують керовані сервіси, такі як AWS CloudWatch Logs, Google Cloud Logging та Azure Monitor Logs, для команд, які не хочуть використовувати власну інфраструктуру.
Які інструменти найкраще підходять для моніторингу на основі метрик?
Prometheus – це найпоширеніший варіант з відкритим кодом, який часто поєднується з Grafana для візуалізації. Комерційні платформи, такі як Datadog, New Relic та Dynatrace, пропонують керований збір метрик із вбудованими сповіщеннями. Хмарні варіанти включають AWS CloudWatch Metrics та Google Cloud Monitoring.
Чи варто використовувати журнали чи метрики для налагодження виробничого процесу?
Спочатку використовуйте метрики, щоб виявити, що щось не так, а потім перейдіть до журналів, щоб дослідити причину. Метрики звужують часовий проміжок та уражені системи, тоді як журнали надають детальний опис подій, необхідний для визначення першопричини. Цей двоетапний підхід є стандартною практикою в командах SRE та DevOps.
Як журнали та метрики взаємодіють у спостережуваності?
Вони утворюють два з трьох стовпів спостережуваності, поряд із розподіленими трасами. Метрики надають вам загальну картину стану, журнали надають глибокі діагностичні деталі, а траси пов'язують окремі запити між сервісами. Більшість сучасних платформ, таких як Datadog, Honeycomb та Grafana, інтегрують усі три.
Як довго слід зберігати журнали порівняно з показниками?
Загальною практикою є зберігання показників протягом 13 місяців або довше, оскільки їх дешево зберігати та вони корисні для планування потужностей. Журнали часто зберігаються протягом 30-90 днів у гарячому сховищі, а старіші журнали архівуються в холодному сховищі або об'єктному сховищі, такому як S3, для забезпечення відповідності або потреб періодичного розслідування.
Чи структуроване ведення журналу краще, ніж неструктуроване, для моніторингу?
Структуроване ведення журналу (зазвичай у форматі JSON) значно краще для моніторингу, оскільки воно дозволяє надійно виконувати розбір, фільтрацію та агрегацію. Неструктуровані журнали вимагають шаблонів регулярних виразів або ручного перегляду, що уповільнює як оповіщення, так і налагодження. Більшість сучасних програм за замовчуванням генерують структуровані журнали.
Чи може моніторинг на основі метрик виявляти проблеми, які пропускаються журналами?
Так, особливо для поступового зниження продуктивності або насичення ресурсів. Повільний витік пам'яті може ніколи не призвести до запису в журналі, але з часом чітко відобразиться в метриках використання пам'яті. Метрики також краще виявляють сукупні закономірності серед тисяч запитів, де окремі записи журналу були б занадто шумними для аналізу.
Висновок
Оберіть моніторинг на основі журналів, коли вашою основною потребою є глибоке налагодження, журнали аудиту або розуміння контексту певних подій. Оберіть моніторинг на основі метрик, коли вам потрібні інформаційні панелі в режимі реального часу, швидке сповіщення та довгостроковий аналіз тенденцій у великих масштабах. На практиці найсильніші стратегії спостереження поєднують обидва типи проблем, використовуючи метрики для раннього виявлення та журнали для ретельного розслідування.