Изображение по Dashbird.io
Системы все время сталкиваются с проблемами. Чтобы все работало гладко, нам нужно иметь ошибку Система мониторинга и регистрации Чтобы помочь нам открыть и решить любую проблему, которая может возникнуть как можно скорее. Чем больше система, тем более сложной она становится монитор это и точная точка проблема. А с без серверных систем со 100 -х годов, работающими одновременно, мониторинг и устранение неполадок являются еще более сложными задачами.
В моей последней статье я представил Dashbird.io Без сервера платформа мониторинга и наблюдения, специально предназначенная для обеспечения Улучшенный мониторинг, действия и архитектурные улучшения Для ваших систем без серверов на базе AWS и как это Заполняет пробелы Осталось традиционными услугами мониторинга.
Чтобы узнать больше об функциях Dashbird и о том, как его настроить, ознакомьтесь с Моя предыдущая статья Анкет
Использование Lambda для Dashbird
Dashbird имеет много классных функций, и в этой статье я буду специально демонстрировать, как мы можем использовать эти классные функции, чтобы помочь отладке без серверов. Для демонстрационных целей я разработал случай без серверов.
Архитектура вариантов использования Lambda
Архитектура достаточно проста, клиент загружает изображения в источник S3 (чтобы узнать больше о S3 Нажмите здесь ) ведро. Спункт S3 создан между нашим Lambda функция (Чтобы узнать больше о Lambda Service Нажмите здесь ), который вызывается S3 всякий раз, когда запрашивается запрос на загрузку (изображение) выполняется на исходном ведре. Функция Lambda извлекает информацию о метаданных изображения и сохраняет данные в нашей таблице DynamoDB. Проверьте Эта статья Чтобы узнать больше о триггерах S3 и AWS Lambda.
Мы знаем, что у AWS Lambda есть свои собственные проблемы, много раз мы сталкиваемся с различными проблемами, такими как выходы времени функции, проблемы вне памяти, исключения Python, ошибки конфигурации и т. Д. Используя приведенную выше архитектуру, я буду создавать различные сценарии, чтобы издеваться над различными проблемами с AWS Lambda, которые они включают:
- Холод начинается и проблемы с задержкой.
- Тайм -ауты функции.
- Вне памяти исключения.
- Проблемы конфигурации функции.
- Мониторинг затрат Lambda.
Эти проблемы могут быть очень хорошо решены с использованием Решетка который предоставляет очень точную информацию о каждом из вышеупомянутых вопросов.
Использование Dashbird для управления лямбдами -проблемами
В этой части статьи я сосредоточится на том, как мы можем использовать Dashbird, чтобы эффективно справиться с некоторыми из распространенных проблем, с которыми мы сталкиваемся с AWS Lambda. Если вы еще не настроили Dashbird с учетной записью AWS, посмотрите мой Последняя статья Чтобы узнать, как.
- Как только мы настроили Dashbird с нашей учетной записью AWS, Dashbird анализирует различные сервисы, которые мы используем из нашей учетной записи. После входа в Dashbird мы приземляемся на приборной панели, что дает нам обзор с птицами всей нашей учетной записи.
Приборная доска
- На панели приборной панели мы можем перейти к различным модулям мониторинга, чтобы копаться в различных ошибках или предупреждениях, которые могли произойти в нашей системе. Как мы видим сверху, я столкнулся с несколькими ошибками, пока моя система работала.
- Нажатие на ошибку ведет нас к ‘ События ‘Модуль, который подробно описывает ошибку, с которой мы столкнулись.
Модуль событий Dashbird
Использование Dashbird для мониторинга Lambda Cold Starts и проблем с задержкой:
Холодные старты являются основным вкладчиком унижение Lambda Performance. Особенно для систем в реальном времени воздействие холодных стартов не очень желательно, поскольку с каждым добавленным Lambda Cold Start the задержка опытный увеличение. Решетка помогает нам очень эффективно анализировать Какие из наших функций Lambda столкнулись Холод начинается и его влияние на Задержка функции Анкет
Из Инвентарь Модуль, мы можем легко проанализировать, какие из наших функций сталкиваются с холодными запусками, и из Тревога Модуль, мы можем настроить тревоги для своевременного предупреждения нас всякий раз, когда Lambda Cold начинается превышать определенный порог.
— Мониторинг запуска холода и задержка функции:
- В Navbar на левой части щелкните « инвентаризация », а затем нажмите на Lambda Resource Вы хотите просмотреть. Как мы можем видеть ниже, мы получаем много полезной информации о наших вызовах функций Lambda, таких как общие вызовы, сколько ошибок произошло, сколько вызовов имело холодные запуска, общая продолжительность выполнения, процент потребляемой памяти и понесенные затраты.
1- Анализ Lambda Cold Betars.
- Нажатие на вкладку « Coldstarts » Далее показывает график того, сколько раз наша функция Lambda сталкивалась с холодным запуском и в какое время это произошло.
2- Анализ Lambda Cold Betars.
- Мы также можем индивидуально проанализировать конкретный вызов Lambda. В разделе « недавние вызовы » внизу нажмите на вызов, который вы хотите просмотреть, который будет более подробно описать всю необходимую информацию, связанную с этим вызовом.
- Как мы видим ниже, наш призыв лямбда соответственно помечен Метка холодного старта Анкет
3- Анализ Lambda Cold Betars.
- Нажатие на вкладку « Продолжительность » Отображает общее время выполнения всех призывов Lambda, а также кривый график, отображающий средний, мин и макс Время исполнения, принятые нашими призыками Lambda.
4- Анализ функций задержки.
5- среднее, мин, максимальная продолжительность выполнения.
- Из секции « недавние вызовы » внизу мы также можем увидеть, что функции с холодом имеют большую продолжительность выполнения, чем те, у кого не хватает холода.
— Настройка сигналов тревоги для Lambda Cold Starts и проблем с задержкой:
Помимо мониторинга задержки Lambda и простуды, Dashbird также предоставляет нам отличное Системное оповещение о предложении Использование, которые мы можем настроить сигналы на основе метрических, чтобы своевременно уведомить нас всякий раз, когда наши функции Lambda сталкиваются с холодом, начинается больше, чем определенный желательный порог или всякий раз, когда время выполнения функции превышает определенное время. Я буду обсуждать настройку лямбда -сигналов в предстоящем разделе о Аварийные сигналы приборной зоны Анкет
Использование Dashbird для работы с временными ресурсами функции:
Функции Lambda имеют Конфигурация тайм -аута что является максимальным количеством времени выполнения, после чего функция автоматически автоматически. Минимум может быть 1sec и максимальное значение для тайм -аута может быть 15 минут (на данный момент). Часто наши вычисления могут превышать ограничение тайм -аута, которое мы установили. Для любых таких случаев мы хотели бы отслеживать, какие функции сталкиваются с тайм -аутами и действуют соответственно. С помощью Dashbird мы можем легко справиться с Timambda Timeouts:
- Чтобы продемонстрировать это поведение, я установил тайм-аут для моей функции « the Dashbird-IMG-обработка» Lambda до 20 секунд, и в рамках своей функции я назвал функцию сна Python с 30 секунд. После перераспределения я призвал свою функцию лямбды.
- На панели инструментов В разделе «
- ошибки » внизу слева мы видим, что наша « dashbird-img-функция» Функция столкнулась с ошибкой « задача истекает ». Мы также можем увидеть количество вызовов (29), которые столкнулись с ошибкой и серьезностью (критической) ошибки.
1- Анализ тайм-аутов Lambda.
- Нажав на указанную ошибку, приведет нас к модулю «События ». Здесь мы можем покопаться в более подробной информации. Мы можем видеть, когда произошла первая ошибка, когда произошла последняя ошибка, тип ошибки (тайм -аут), ее серьезность, область, в которой развернута функция. Мы также получаем трассировку стека, сопровождающая ошибку.
2- Анализ тайм-аутов Lambda.
- В разделе « Accurances » внизу мы также можем увидеть детали для каждого отдельного вызова.
3- Анализ тайм-аутов Lambda.
- Не только это, но Dashbird автоматически отправляет Email Alert к нашему зарегистрированному адресу электронной почты (или Slack Channel, Webhooks или SNS) относительно ошибки тайм -аута, побуждая нас предпринять необходимые действия для решения этой проблемы. Используя модуль « тревоги », мы также можем установить пользовательские тревоги для ошибок Lambda.
4- Анализ Tambda Timeouts- оповещения по электронной почте.
Использование Dashbird для Lambda Out из памяти исключений:
Так же, как Lambda имеет параметр конфигурации тайм -аута, есть также Параметр памяти это определяет Максимальный объем памяти Функция Lambda может использовать. Минимум, который мы можем установить, составляет 128 МБ, и он может подняться максимум до 10 ГБ (на данный момент). При выполнении задачи с интенсивной памятью вполне вероятно, что потребление памяти функции выходит за рамки предела памяти, которую мы установили для нашей функции Lambda, и в этом случае функция выбросит « вне памяти исключение », остановившись выполнение функции. Dashbird также получила это покрытие и дает нам надлежащую информацию и оповещения, чтобы справиться со всеми исключениями из памяти.
- Чтобы продемонстрировать этот вариант использования, я установил предел памяти моей функции Lambda на 128 МБ и изменил функцию так, чтобы всякий раз, когда она вызывается, он загружает большой файл CSV в память, заставляя ее вызвать «ошибку памяти».
- После вызова моей функции Lambda я мог видеть в модуле панели приборной панели в учетной записи моей приборной панели, что действительно произошла ошибка памяти.
1- Анализ ошибок памяти лямбда.
- Чтобы больше копаться в причине ошибки, нажмите на вкладку MemoryError в « ошибки» Секция внизу слева. Это ведет нас к » События» модуль, где мы получаем более глубокое понимание всех наших критических событий.
- В этой точке мы видим, сколько из наших призывов Lambda вызвало ошибку памяти, мы получаем график времени, когда произошла каждая ошибка, мы можем просмотреть трассировку стека ошибки, и каждый отдельный вызов можно просматривать отдельно, чтобы получить еще больше понимание.
- Dashbird автоматически отправляла предупреждение по электронной почте на зарегистрированный адрес электронной почты, чтобы проинформировать о том, что произошло « memoryerr ».
2- Анализ ошибок лямбда памяти.
3- Анализ ошибок памяти лямбда.
4- Оповещение по электронной почте приборной панели о ошибках памяти.
- Так же, как мы можем настроить тревоги для других метрик, модуль Dashbird « Alarms » также имеет метрики для потребления памяти, которые мы можем установить в соответствии с нашим вариантом использования, чтобы предупредить нас в случае, когда используется память выше определенного порога. Подробнее о оповещениях Dashbird в предстоящем разделе.
Проблемы конфигурации функций мониторинга для мониторинга
Ошибки конфигурации Lambda связаны с неудачной инициализацией функции, как правило, из -за некоторого неправильного импорта. Выполнение функции прекращается, и функция не может инициализировать из -за некоторой проблемы с некоторым модулем, который мы пытаемся импортировать. Так же, как другие ошибки, связанные с Lambda, также получила это покрытие.
- Чтобы продемонстрировать способность Dashbird обрабатывать «ошибки конфигурации», я изменил свою функцию Lambda, так что он пытается импортировать несуществующий модуль, вызывая «ошибку конфигурации времени выполнения» Анкет На приборной панели мы можем увидеть, какая ошибка произошла, и перейти к модулю «
- Events », чтобы получить более глубокое понимание. Мы можем видеть, сколько наших призывов Lambda вызвало ошибку, временной график, когда произошла каждая ошибка, след стека ошибки и каждого отдельного вызова можно просматривать отдельно, чтобы получить еще больше информации. И, как и для всех других ошибок, Dashbird также автоматически отправляла предупреждение по электронной почте.
1- Анализ ошибок конфигурации Lambda.
2- Анализ ошибок конфигурации Lambda.
3- Анализ ошибок конфигурации Lambda.
4- Оповещение по электронной почте Dashbird для ошибок конфигурации.
Мониторинг стоимости лямбды с помощью мониторинга
Dashbird не только помогает нам контролировать ошибки с помощью наших систем без серверов, но и обновлять нас за счет работы нашей инфраструктуры.
- В нашем аккаунте на Панель инструментов , существует выделенный раздел на общую стоимость, понесенную нашей системой в течение продолжительности времени. Точно так же в Инвентарь Модуль, мы можем отдельно увидеть для каждого из наших ресурсов стоимость эксплуатации этого ресурса.
- В Тревоги Модуль, мы также можем настроить тревогу для данного ресурса, чтобы уведомить нас, когда стоимость превышает определенный порог.
ПРИМЕЧАНИЕ — Так как у меня есть бесплатный уровень AWS, так что мои общие затраты на данный момент стоят 0 долларов.
1- Мониторинг затрат на лямбда.
2- Мониторинг затрат на лямбда.
Аварийные сигналы примира
« Аварийные сигналы » — это специальный модуль Dashbird, который поможет нам создать пользовательские тревоги для наших ресурсов на основе некоторых показателей, связанных с этим ресурсом. Это значительно улучшает MTTD/R. Создание тревоги достаточно просто:
- В Navbar на левой части щелкните «
1- Настройка тревоги для лямбды
- Мы можем создать два типа тревоги, критический или Предупреждение Анкет Затем мы выбираем метрику, на которой мы хотим, чтобы тревога вызвала это ошибки/холодные запуска/повторное количество/призыв, подсчет обзора, выполнение или продолжительность счетов, используемая память, понесенные затраты или одновременные выполнения Lambda.
- После выбора метрики мы указываем, когда триггеры тревоги, т. Е. Когда выбранная метрика — выше/ниже конкретный порог (5,10,20) на Среднее/макс/мин/сумма для Продолжительность времени в считанные минуты, часы или дни. Наконец, мы выбираем один или несколько целевых ресурсов, для которых мы хотим, чтобы тревога была установлена.
- Например, я создал тревогу, чтобы моя функция Lambda была запускается, когда* Количество ошибок в среднем выше 10 за последние 15 минут * .
Решетка Lambda Alarms.
- Мы можем настроить несколько сигналов тревоги для наших ресурсов на основе метрик, которые мы хотим контролировать, и с помощью DashBird увеличить возможности мониторинга и устранения неполадок наших систем.
Усовершенствованное устранение неполадок с модулем поиска журнала Dashbird
Очень классная функция в Dashbird, которую я хотел бы, наконец, обсудить, это ее* Поиск журнала *модуль. Этот модуль позволяет нам выполнять поиск продвинутого уровня во всех наших журналах, помогая нам эффективно отфильтровать журналы, которые имеют для нас ценные.
- Мы можем искать все наши ресурсы или выбрать несколько ресурсов, журналы которых мы хотим отфильтровать.
- Мы можем искать конкретное ключевое слово, которое нас интересует, и все соответствующие результаты, соответственно, отфильтрованы. Например, как можно увидеть ниже, я отфильтровал все мои ресурсы для поиска журналов, содержащих ключевое слово » memoryError «, и все соответствующие результаты были отфильтрованы.
Модуль поиска в журнале приборных птиц.
Дальнейшее чтение:
Создание комплекса хорошо архизированных приложений без серверов
AWS CloudWatch оповещения о проницательных приборных птицах
Защита без серверов при критической регистрации
Оригинал: «https://dev.to/dashbird/serverless-observability-and-real-time-debugging-with-dashbird-tutorial-17ai»