Мониторинг на времеви серии срещу мониторинг, управляван от събития
Изборът на правилната стратегия за наблюдаемост изисква разбиране на начина, по който се събират и обработват данните. Докато мониторингът на времеви серии проследява числени системни показатели на редовни интервали, за да разкрие дългосрочни тенденции в състоянието, мониторингът, управляван от събития, улавя незабавно дискретни промени в състоянието, за да задейства незабавни програмни отговори, което прави техните архитектурни дизайни коренно различни.
Акценти
Временните серии разчитат на предвидимо интервално анкетиране, докато наблюдението на събития действа единствено при поискване.
Телеметрията на събитията запазва дълбокия контекст на полезния товар, който традиционните числови показатели отхвърлят.
Изискванията за съхранение на времеви серии остават стабилни, докато съхранението на събития проследява пиковете на системната активност.
Настройките, управлявани от събития, позволяват незабавно автоматизирано самолечение, а не ретроспективен анализ.
Какво е Мониторинг на времеви серии?
Подход, фокусиран върху показатели, който събира числови данни през последователни, хронологични интервали, за да анализира системните тенденции.
Разчита в голяма степен на редовни интервали на запитване, като например извличане на данни на всеки петнадесет секунди.
Съхранява данните като структурирани, числови стойности, обвързани със специфични времеви отметки и етикети на измеренията.
Оптимизиран за високопроизводителни агрегирани заявки, като например изчисляване на средното натоварване на процесора за един месец.
Обикновено използва архитектура, базирана на изтегляне (pull-based), при която централен сървър изисква данни от целевите крайни точки.
Поддържа предвидим растеж на паметта, тъй като скоростта на приемане на данни остава стабилна, независимо от натоварването на системата.
Какво е Мониторинг, управляван от събития?
Реактивна система, която улавя и обработва богати контекстуални пакети данни в момента, в който настъпи промяна на специфично състояние.
Работи асинхронно, изпълнявайки действия само когато дефинирано условие или системен инцидент задейства предупреждение.
Записва подробни контекстуални метаданни във всеки пакет, включително пълни подробности за полезния товар и потребителски идентификатори.
Използва архитектура, базирана на push-базирани действия, при която отделните приложения предават събития директно към шина за събития.
Изискванията за съхранение се мащабират динамично в зависимост от системната активност, като се увеличават драстично по време на неочаквани пикове на трафика.
Интегрира се директно с инструменти за автоматизация за мигновено самовъзстановяване на инфраструктурата, без да е необходима човешка намеса.
Сравнителна таблица
Функция
Мониторинг на времеви серии
Мониторинг, управляван от събития
Задействане за събиране на данни
Редовни, предварително зададени интервали от време
Незабавно настъпване на промяна на състоянието
Формат на основни данни
Числови двойки ключ-стойност с времеви отпечатъци
Богат JSON или структуриран текстови полезни товари
Архитектурен модел
Основно изстъргване, базирано на издърпване
Стрийминг, базиран на push-услуги, чрез брокери на съобщения
Растеж на съхранението
Силно предвидимо и линейно
Променлива и пряко свързана с активността на системата
Идеален случай на употреба
Планиране на капацитета и дългосрочен анализ на тенденциите
Незабавна реакция при инциденти и автоматизирано самовъзстановяване
Фокус на заявката
Математически агрегации във времеви прозорци
Проследяване на пътищата на отделните събития и структурните мутации
Системни разходи
Нисък и постоянен отпечатък на ресурсите
Променлива консумация на ресурси въз основа на обема на събитията
Подробно сравнение
Механика на приемане на данни
Мониторингът на времеви серии работи като постоянен пулс, запитвайки системите на фиксирани интервали, за да събира моментни данни за производителността. Този подход гарантира, че получавате непрекъснат поток от числови данни, което позволява на двигателите лесно да изобразяват исторически траектории. От друга страна, мониторингът, управляван от събития, остава безшумен, докато нещо специфично не промени средата, като незабавно изпраща подробен пакет данни напред. Това означава, че моделът, управляван от събития, остава спящ по време на тихи периоди, но се задейства с изключителни детайли в милисекундата, в която възникне повреда.
Детайлност и контекст
Когато се работи със задачи за дълбока диагностика, разликите в дълбочината на данните стават очевидни. Структурите на времевите серии премахват текста и контекста, за да се фокусират стриктно върху числата, което прави нещата по-ефективни, но пропуска историята зад срива. Задвижваните от събития логове запазват целия контекстуален фон непокътнат, като ви казват точно кой потребител или функция е причинил прекъсване на пътя на изпълнение. Докато графиката на времевите серии показва пикове на връзките към базата данни, потокът от събития ви показва точната заявка, която е инициирала проблема.
Мащабируемост и динамика на съхранението
Управлението на финансовите и сторидж отпечатъци на тези платформи изисква два напълно различни начина на мислене. Настройките на времеви серии предлагат успокояваща предвидимост, защото мащабирането обикновено означава само коригиране на политиките за задържане или разширяване на интервалите на запитване. Системите, управлявани от събития, са далеч по-нестабилни и изискват архитектура за съхранение, която може да се справи с внезапни, масивни потоци от данни, когато грешките се разпространяват каскадно през микросървиси. Ако приложението ви стане вирусно или претърпи DDoS атака, изискванията за съхранение на събития ще се увеличат рязко заедно с входящия трафик.
Действие и скорост на предупреждаване
Скоростта, с която вашият оперативен екип може да реагира, зависи изцяло от това как се доставя вашата телеметрия. Предупрежденията за времеви серии естествено страдат от леко забавяне, тъй като системата трябва да изчака следващия цикъл на извличане на данни и да оцени няколко точки от данни, за да потвърди тенденция. Архитектурите, управлявани от събития, се отличават тук, като елиминират посредника, насочват критичните повреди директно към платформи за известия или автоматично мащабират скриптове в момента, в който се случат. Тази възможност за незабавно известяване прави подхода, управляван от събития, незаменим за критична инфраструктура, която изисква незабавно отстраняване.
Предимства и Недостатъци
Мониторинг на времеви серии
Предимства
+Високо предвидими разходи за съхранение
+Отличен дългосрочен анализ на тенденциите
+Ниски разходи за ресурси
+Опростено математическо агрегиране
Потребителски профил
−Липсва подробен текстов контекст
−Въвежда присъщи забавяния при анкетиране
−Пропуска кратки, периодични пикове
−Бори се с ефимерната инфраструктура
Мониторинг, управляван от събития
Предимства
+Незабавно известяване в реално време
+Богато запазване на ситуационни метаданни
+Идеален за разединени системи
+Задейства директни автоматизирани работни процеси
Потребителски профил
−Непредсказуемо потребление на място за съхранение
−Висока сложност на архитектурната конфигурация
−Трудно е да се анализират макро тенденциите
−Потенциална телеметрична буря над главата
Често срещани заблуди
Миф
Мониторингът на времеви серии може да улови всеки един микро-пик в поведението на системата.
Реалност
Тъй като наблюдението на времевите серии разчита на интервално базирано запитване, всеки пик на производителността, който възниква и отшумява изцяло между два цикъла на извличане на данни, ще бъде напълно невидим за вашите табла за управление.
Миф
Телеметрията, управлявана от събития, е достъпен заместител на традиционното агрегиране на лог файлове.
Реалност
Съхраняването на всяко едно системно събитие с пълни контекстуални метаданни може бързо да стане непосилно скъпо, често струвайки много повече от оптимизиран метричен двигател за времеви серии по време на пикови оперативни натоварвания.
Миф
Трябва да изберете една методология и да я внедрите изключително в цялата си инфраструктура.
Реалност
Съвременните корпоративни системи за наблюдение почти винаги комбинират и двете системи, използвайки данни от времеви серии за табла за управление на състоянието на високо ниво и сигнали, управлявани от събития, за проследяване на специфични грешки в транзакциите.
Миф
Инструментите за мониторинг, управлявани от събития, автоматично изчисляват процентите на наличност на вашата система.
Реалност
Потоците от събития знаят само кога се случват нещата, което означава, че им липсва постоянната честота, необходима за лесно изчисляване на времето за работа. Генерирането на показатели за наличност обикновено изисква преобразуване на тези дискретни събития във формат на непрекъснати времеви серии.
Често задавани въпроси
Мога ли да използвам Prometheus за задачи за наблюдение, управлявани от събития?
Не е ефективно, тъй като Prometheus е целенасочено създаден от нулата като двигател за измерване на времеви серии, базиран на извличане на данни. Опитът да се принуди той да обработва отделни събития от състоянието ще претовари вътрешния му модел за съхранение, който е проектиран за числа с плаваща запетая (float64), а не за богати, с голямо количество текст полезни товари за събития.
Защо мониторингът, управляван от събития, усложнява планирането на капацитета?
Планирането на капацитета изисква непрекъснат, исторически поглед върху използването на ресурсите, за да се установят текущите модели на употреба и да се прогнозират бъдещите нужди от инфраструктура. Данните за събитията са разпръснати и нередовни, което прави математически трудно изчисляването на гладките базови линии, необходими за дългосрочно прогнозиране.
Какво се случва със събития-управляваните монитори, когато системата се срине напълно?
Ако цял сървър или мрежова връзка прекъсне, една система, управлявана от събития, може да спре да изпраща събития напълно, което подвеждащо може да изглежда като напълно здрава система. Тази тишина е причината екипите да обгръщат архитектурите на събитията с прости времеви серии, за да гарантират, че основната платформа все още „диша“.
Кой стил на мониторинг е по-подходящ за безсървърни функции като AWS Lambda?
Мониторингът, управляван от събития, се вписва идеално в безсървърни среди, тъй като функциите са краткотрайни и бързо се задържат. Традиционните скрепери за времеви серии често пропускат тези преходни изпълнения напълно, докато събитията, базирани на push, улавят целия жизнен цикъл по време на изпълнение в момента, в който функцията се задейства.
По какво се различават работните процеси за отстраняване на грешки между тези два телеметрични метода?
Когато инженерът отстранява грешки с данни от времеви серии, той разглежда широки регресии, като например идентифициране на времеви прозорец, в който процентите на грешките са се увеличили. При данни, управлявани от събития, инженерът директно проверява уникалната следа на транзакцията, за да види точно кое API извикване е нарушило оперативната последователност.
Влияе ли телеметрията, управлявана от събития, на производителността на приложението?
Може, ако е лошо конфигурирано, тъй като синхронното избутване на тежки структури с полезен товар от основния път на приложението води до забавяне в обработката. За да смекчат този риск, разработчиците обикновено прехвърлят регистрирането на събития на фонови демони или асинхронни опашки от съобщения, за да поддържат бързи линиите, насочени към потребителя.
Какъв е най-добрият начин за обработка на данни с висока кардиналност, като например потребителски идентификатори?
Данните с висока кардиналност нарушават традиционните бази данни с времеви серии, защото всяка уникална комбинация от етикети създава съвсем нов файл за проследяване, консумирайки огромни количества памет. Структурите, управлявани от събития, нямат това ограничение и лесно обработват милиони уникални потребителски идентификатори, тъй като всяко събитие се третира като изолиран запис в лога.
Как се различават праговете за предупреждение между показателите и събитията?
Сигналите за показатели разчитат на математически тенденции, като например задействане, когато средният процент на грешки остане над пет процента в продължение на десет последователни минути. Сигналите за събития са двоични и експлицитни, задействайки се незабавно, защото в потока от данни се е появил специфичен тип критично събитие за повреда.
Решение
Изберете мониторинг на времеви серии, ако основните ви цели са визуализация на таблото за управление, прогнозиране на капацитета и проследяване на общото състояние на инфраструктурата за дълги периоди. Обърнете се към мониторинг, управляван от събития, когато изграждате отделени микросървиси, канали за одит в реално време или автоматизирани системи за самолечение, които трябва да реагират незабавно на специфични софтуерни аномалии.