Рубрики
Uncategorized

Без сервера наблюдаемость и отладка в реальном времени с помощью Dashbird [Учебное пособие]

Системы изображения от Dashbird.io постоянно сталкиваются с проблемами. Чтобы все работало гладко, мы … отмечены AWS, без серверов, DevOps, Cloud.

Изображение по 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»