Сравнение верхней наблюдаемости и инструментов отладки, чтобы помочь вам мониторировать Python в AWS Lambda.
Смертные архитектуры, состоящие из функций лямбда, являются расширением принципов Сервисные архитектуры , который популяризировал подход, где сервисы обмениваются с использованием сообщений или событий. Если это реализовано правильно, безвесочные архитектуры могут уменьшить сложность кода и проще управлять приложением.
AWS LAMBDA это услуга, которая управляет вашим кодом, развернутым к контейнеру с предварительно выделенным ЦП, диск и памятью. Вместе, ваш код и связанные с ними конфигурация в целом называются Лямбда функции Отказ Он тезирует фактическую инфраструктуру, позволяющую разработчикам сосредоточиться исключительно на коде. Функции вызываются в ответ на внешние события или триггеры. Функции лямбда — без гражданства без сродства к базовой инфраструктуре, и ваш код должен учитывать, что локальный Ресурсы и процессы не переживают текущую сессию .
ФАУС решает многие проблемы, с тем, что предыдущие архитектурные модели должны были справиться. С точки зрения разработчика, самый критический аспект в том, что Вы просто запустите свой код, не беспокоясь с администрацией сервера, масштабируемостью и доступностью . С другой стороны, некоторые факторы должны быть решены иначе, чем раньше Отказ
Одним из этих аспектов является ведение журнала.
Старые инструменты, используемые для регистрации (демонов), больше не являются опцией, поскольку в традиционном смысле нет «сервера». Кроме того, поскольку фактическая инфраструктура абстрагирована, у вас нет доступа к метрикам уровня системы, такими как RAM, CPU или использование диска.
Тем не менее, требования к системе звукового ведения в значительной степени одинаковы:
- Информация должна быть гранула
- Данные должны быть доступны в кратчайшие сроки
- Коллекция журнала не должна влиять на производительность приложений.
Мониторинг функций AWS Lambda
Может быть, вы спрашиваете себя, почему вы должны следить за своими функциями лямбда. Ну … Есть две одинаково важные причины для этого. Во-первых, если вы читаете это, вы, вероятно, знаете, AWS — это не бесплатный сервис, а каждый Cent считается, особенно когда вы пытаетесь начать свой новый бизнес. Во-вторых, клиенты требуют и ожидают ничего, кроме наилучшего с точки зрения отзывчивости. Если приложение не может поставить на это, он не будет иметь никакого значения в дизайне или насколько он становится маркетингом; Клиенты пойдут с соревнованием.
Мониторинг функций лямбда Разрешить разработчикам получить значимое понимание того, что происходит во время каждого шага выполнения . Вы сможете увидеть ошибки, а также измерить потребление ресурсов для каждого вызова. Проще говоря, Нет лучшего способа оптимизировать затраты и производительность ваших приложений, чем использование инструмента мониторинга.
Несколько слов на Cloudwatch
Давайте начнем с того, что уже в коробке.
Встроенный инструмент для лямбда, Cloudwatch , организует журналы на основе функции, версии и контейнеров, а лямбда добавляет метаданные для каждого вызова. Кроме того, время выполнения и контейнерные ошибки включены в журналы. CloudWatch предоставляет два метода для записи записи журнала:
Распечатать заявления:
Печать («Вы увидите это в CloudWatch»)
Функции регистратора доступны через модуль ведения журнала:
logger.info («Вы также увидите это в CloudWatch»)
Amazon советует разработчикам использовать функцию регистратора, чтобы получить дополнительную информацию, такую как уровень журнала, временные метки, и так далее. Когда вы начинаете строить свое первое приложение FAAS, шансы вы начнете использовать CloudWatch. Регистрация, скорее всего, будет самой используемой функцией. CloudWatch позволит вам отслеживать проблемы, и на некоторое время вы полагаетесь на него. Однако, поскольку ваши приложения становятся более сложными и в конечном итоге превращают его в производство, вы узнаете об их недостатках. К счастью, несколько инструментов могут облегчить вашу жизнь. В этой статье у нас будет глубокий взгляд на топ-3.
Мошенничество
Dashbird Excels в предоставлении оповещения об ошибках и мониторинге. Он работает, собирая и анализируя журналы CloudWatch и имеют Нулевое влияние на ваш лямбда Performance или AWS стоит Отказ Он также интегрируется с вашей учетной записью SLAST, который приносит предупреждению права на ваш чат # разработки. Нет сторонних агентов или обертков, и вся информация доступна на одной приборной панели, которая включает в себя:
- Обзор всех вызовов
- Лучшие активные функции
- Последние ошибки
- Система здоровья
Приборная панель позволяет подключить данные уровня вызова и анализировать каждую функцию индивидуально. Это просто использовать, и он предоставляет всю информацию, которую вы можете задать интуитивно.
Dashbird предоставляет подробные виды для:
- Отслеживание Python и мониторинг ошибок
- Отслеживание производительности
- исправление проблем
- Оптимизация и обработка ошибок
Предположим, что ваша логика приложений распространяется по большому количеству функций. В этом случае он имеет смысл собирать информацию из журналов, а не отправляя телеметрию в время выполнения, что именно там, где сияет dashbird.
Оптимизация кода и обработка ошибок
Dashbird включает в себя представление серии Time для предоставления разработчикам с информацией о задержеке и использовании памяти. Существуют метрики для объемов вызова, использование памяти, продолжительность и стоимость. Обработка ошибок поддерживается, и множество деталей, таких как следы стека, список пострадавших вызовов, журналы для каждого вызова собираются и анализируются.
Неспособность распознавание и отладку
Приятная функция, запеченная в Dashbird, является распознаванием неудачи в журналах. Dashbird обнаруживает все типы сбоев для Python, Node.js и Java. Это включает в себя аварии, ранние выходы, тайм-ауты и ошибки конфигурации. Dashbird обнаруживает ошибки в ваших функциях лямбда и предупреждает вас через Slack или Email. Каждая ошибка содержит подробные следы стека и журналы, связанные с аналогичными ошибками для более доступных усилий отладки.
Узнайте больше о том, как Dashbird может помочь вам отладить и монитор Python в AWS Lambda.
Новая реликвия
Новые Relic работает, добавляя Новое Relic Lambda Extension к вашим функциям Python. После добавления ваших функций будут приборными и отправлять свои данные мониторинга на новую службу Relic.
Исключения отчетности
Новый Relic Lambda Layer автоматически поймал, трассирует и поднимает какие-либо неосторожные исключения в вашей функции.
Пользовательские события
Новая реликвия обеспечивает поддержку отчетности пользовательских событий:
@ newrelic.agent.lambda_handler ()
DEF обработчик (событие, контекст):
newrelic.agent.record_custom_event (
«my_metric»,
custom_event_object.
)
Новая реликвия легко начать с; Это просто, и … это может быть весело!
Datadog.
DataDog использует функцию помощника, которая позволяет разработчику отправлять пользовательские метрики как предварительно отформатированные сообщения журнала:
Мониторинг | Unix_epoch_Timestamp | Metric_Value | Metric_Type | My.Meyric.name | # Tag1: значение, Tag2.
Не существует накладных расходов или задержек, возникающих с помощью конечного пользователя, поскольку сбор данных работает на заднем плане, и он позволяет корреляцию между метриками Lambda и другими операционными данными, обеспечивающими контекст.
Существует несколько доступных метрик для выполнения функции:
- время исполнения
- вызовы
- ошибки вызова
- дроссельные функции
DataDog определяет следующие типы метрики, которые можно использовать:
- датчик, используемый для мгновенных значений,
- Счет, долговечный счетчик, который можно увеличить/уменьшаться,
- Гистограмма, совокупные метрики с одной секундой гранулярности,
- Проверка обслуживания, целочисленное значение, представляющее состояние службы
Настройка
Кроме того, DataDog позволяет разработчикам определять их пользовательские метрики, распечатав функции лямбда после его предопределенного формата. Оповещение После того, как метрики собираются из функций Lambda, Datadog может отправлять оповещения, используя самые популярные инструменты связи, такие как Slack или Opsgenie. Увлекательная особенность данных Datadog — их алгоритмы изучения машин, которые могут предоставлять сигналы для событий, таких как выброс или обнаружение аномалии.
Заключение
Вы должны заплатить небольшую цену, чтобы полностью пользоваться преимуществами функций лямбда: абстракция, параллельное исполнение и высокая масштабируемость. Вы должны учиться и использовать новый подход к мониторингу архитектур без сервеса. FAAS не предоставляет метрики в традиционном смысле, а с надлежащим пониманием инфраструктуры AWS вы можете достичь большого уровня наблюдательности для ваших функций лямбда.
Dashbird Предлагает самый простой способ начать с мониторинга лямбда и самым взрывом для доллара.
Дальнейшее чтение:
Обработка ошибок Python в AWS Lambda
8 должны познавать трюки для использования S3 более эффективно в Python
Объясняя BOTO3: Как использовать любой сервис AWS с Python
Оригинал: «https://dev.to/dashbird/top-3-tools-for-monitoring-python-in-aws-lambda-13e5»