В то время как организации и инженеры сдвигаются к новой парадигме, которая меняет способ создания и управлять приложениями, необходимостью эффективного Мониторинг еще более важно соответствовать целям надежности и удовлетворенности пользователей.
Действительно, с облачными вычислениями, видимость в услугах имеет решающее значение, особенно когда мы говорим о Контейнеры , микросервисы и высоко распределенные системы. Воображение самолета, летаю без каких-либо способов рассказать, как его системы делают жесткие, воображая флот или самолеты, летающие над городами без каких-либо дорожных башен, контролирующих все, что все еще сильнее и близко к невозможным.
С этой отправной точки мы должны быть в состоянии согласиться с тем, что мониторинг важен, потому что:
- Вопросы возникнут даже с лучшими приложениями, построенными лучшими инженерами
- С распределенными системами приходят распределенные сбои, которые могут быть разрушительными, когда не подготовлены и никаких способов сказать, откуда они приходят
- Это способствует прозрачности и подотчетности
- Он открывает ошибки раннее и предлагает пути к обучению и улучшениям
Со всем, что сказано, где мы должны начать и каковы различия между журналами, отслеживанием и профилированием, которые являются важными частями того, как мы контролируем системы?
Логирование: делать заметки о вещах, происходящих в систему
Давайте начнем с самым простым способом понимания того, как ведет себя систему: журналы.
Журнал — это запись событий, произошедших со временем: скриншот чего-то с помощью связанного отметки.
Список журналов, отображаемых в Datadog
Манифест полета — это хороший пример этого принципа: мы регистрируем всех пассажиров и членов экипажа, прежде чем отправиться, поэтому мы знаем, кто во всех летающих самолетах в любой момент времени.
В контексте облачных приложений журнал может использоваться для сохранения информации о запросах (продолжительность, код состояния, usive), запросах баз данных, использование балансировки нагрузки и многое другое. Это дает вам драгоценные детали, когда возникают ошибки, чтобы определить корневую причину отключения или проблемы с производительностью.
Во время регистрации все заманчиво, эта стратегия может быть действительно дорогой и неэффективной. Вам нужно найти правильный баланс между возобновлением во всем и нечего получить достаточно, чтобы он был полезен.
Регистрация состоит из нескольких шагов:
- Сбор и глотание: Когда вы генерируете журналы в разных услугах, вам нужно центральное место, где их отправить.
- Обработка: Проглоты журналы обогащаются метаданными и атрибутами для будущего использования.
- Индексирование: Журналы сегментированы на группы для генерирования метрик, шаблонов и приборных панелей.
С инструментами, как Стек лося , Datadog или AWS CloudWatch , вы можете генерировать мощные идеи от огромных объемов журналов, исходящих сотен различных услуг.
Копать глубже в ведение журнала
- Узнайте больше о упругий стек Собирать, совокупные и анализировать журналы с использованием Elasticsearch, Logstash и Kibana
- Посмотрите, как решение журнала AWS, AWS CloudWatch С работает
- Прочитайте, как вы можете использовать такие услуги, как Datadog Чтобы собрать журналы и использовать их для мониторинга вашего приложения
Tracing: путешествие по одному пользователю или запросу через систему
Несмотря на то, что регистрация за обслуживание является хорошим способом внутрирегулирующих вещей, недостаточно, чтобы передать большую картину запроса, распространяющегося через распределенную систему. В архитектуре микросервисов запрос является результатом многих взаимодействий между различными объектами (API, базами данных, очереди), которые все могут быть точкой отказа.
Трассировка действует как BlackBox самолета во время аварии: это поможет вам понять, как все прошло во время аварии, чтобы обнаружить цепочку событий, которые привели к проблеме.
Он обеспечивает вид на низкий уровень, чтобы понять:
- Что вызвало то, что в программе
- с которыми аргументы
- в каком порядке
- Как долго каждый шаг длится
Это помогает быстро обнаружить узкие места производительности и найти причину сбоев, когда происходят.
Результат трассировки может быть визуализирован двумя способами:
- Следы: Похоже на график пламени с пропанами и их связанные метаданные
- Карты обслуживания: Это похоже на облако узлов и связей между ними для визуализации потока запросов
Распределенный трассу, используя стек лося
С такими инструментами, как Открытая трассировка , AWS рентген или Zipkin , вы можете создавать следы и карты обслуживания, чтобы обеспечить более богатый и более актуальный контекст при устранении неисправностей.
Копая глубже в трассировку:
- Учить Как Uber использует распределенную трассировку Чтобы покорить сложность микросервисов
- Смотреть Как Lyft интегрировал и теперь использует распределенную трассировку
- Читать Как Netflix построил инструменты наблюдеемости Чтобы лучше понять его системы
- Узнайте больше о таких инструментах, как Открытая трассировка и Трассировка Jaeger
Профилирование и метрики: измерить здоровье системы с течением времени
Профилирование и метрики — последняя часть головоломки мониторинга. Вместе они предоставляют статистический обзор здоровья системы и отслеживаемых событий со временем.
Профилирование программного обеспечения поможет вам создать профили, такие как профилировщики в полиции. Но вместо того, чтобы ловить плохие парни, вы хотите поймать плохие выступления.
Метрики, отображаемые в Графане, используя PROMETHEUS
Профили варьируются от низкоуровневых метрик, таких как использование ЦП или файл Ввода/вывод для более высокого уровня метрики, такие как пропускная способность или задержка. Когда агрегированы и видели вместе, они являются мощными сигналами, предоставляющими вам целостный взгляд на вашу систему и может помочь обнаружить проблемы.
Как и для регистрации, легко думать, что тем больше метрики, которые у вас есть, лучший ваш мониторинг будет. Хотя заманчиво, вы хотите обеспечить измерение вещей, которые непосредственно влияют на пользователей вашего приложения, чтобы иметь возможность эффективно обнаруживать и оповещать инженеров при необходимости.
С такими инструментами, как Prometheus , Zabbix или Datadog , вы можете создавать профили и метрики для улучшения того, как вы контролируете свои услуги и базовую инфраструктуру.
Копать глубже в профилирование и метрики
- Узнайте больше о Золотые сигналы SRE Как описано Стив Мусшеро
- Читайте о Введение Цифрового океана к мониторингу и оповещения
Суть
При использовании вместе, регистрация, отслеживание и профилирование могут дать вам мощные идеи о ваших услугах и системах: обнаружение аномалий, когда они возникают и быстро понимают корневую причину проблем с производительностью.
Хотя мониторинг идеально подходит для ответов на вопросы, вы уже спрашиваете о своем приложении, он работает только тогда, когда системы не удаются предсказуемыми способами. Наблюдаемость О том, что еще один шаг вперед, предоставляя инструменты открыто наблюдать и исследовать системы.
Эта история изначально была опубликована на Redefined.cloud , публикация с открытым исходным кодом, где начать с облачных вычислений, используя простые слова и аналоги, которые вы можете понять.
Оригинал: «https://dev.to/greeeg/monitoring-explained-what-is-the-difference-between-logging-tracing-and-profiling-4028»