Рубрики
Uncategorized

Лямбда понимание для спасения

Включить Lambda Insights. Помечено с AWS, безвесочна, наблюдаемостью, дежопами.

Наблюдаемость лямбда (4 части серии)

В предыдущем эпизоде мы включили трассировку, и мы смогли увидеть больше информации о нашей платформе, запросах и т. Д. Тем не менее, это не так много, но это лучше, чем было! Давайте продолжим тогда.

Лямбда Insights

Лучшее описание Lambda Insights будет улучшенным мониторингом. По словам AWS Документация , Insights — это услуга, которая собирает, агрегаты и суммировала метрики системы системы, такими как использование процессоров, использование памяти, диск и сеть, а также собирает диагностическую информацию, такую как завершенные отключения лямбда и холодный запуск.

Хорошо, похоже, это помогает лучше понять, что происходит в приложении.

Включить Lambda Insights

Точно так же, как вы сделали это для рентгеновского лука, перейдите к лямбде, Конфигурация И, наконец, до Инструменты мониторинга и операций Отказ

AWS пытается обновить свои роли и политики соответственно. При завершении вам нужно сделать несколько запросов и Подождите некоторое время прежде чем начать использовать идеи.

Кроме того, что самое главное, вы должны увидеть новый слой, добавленный в ваш лямбда

Чтобы увидеть Insights, вы можете пойти туда через CloudWatch Console или прямо из лямбда (с вкладки мониторинга).

Наконец, после многих минут много минут (в моем случае, когда я подготовил этот пример, это было более 30 минут), сгенерированы идеи.

Лямбда Insights Console.

AWS дает возможность проверить несколько функций одновременно, но я пойду с одним функцией, так как в данный момент включена только одна функция.

Метрики доступны и ясны и читаются. Зарегистрированные, ошибки, продолжительность и все метрики, связанные с инфраструктурой, имеют собственную панель.

Под этими панелями AWS разместил две вкладки. Один для журналов приложений, вы уже увидели это, поэтому я не буду сосредоточиться на этом. Второе (ну на самом деле первая вкладка) о вызовах.

Эта точка зрения дает нам много информации. Да, часть этого доступна в журналах, но здесь у нас есть его без анализа. Продолжительность, потребляемая память, время процессора, использование сети, информация об ошибке.

Кроме того, мы можем видеть продолжительность инициирования, что указывает холодное начало. Хороший.

Давайте рассмотрим это дальше. В правом верхнем углу этой части представления у нас есть два элемента управления.

Оба приведут вас к Logs Insights с двумя разными запросами.

Журналы производительности

Эта ссылка перейдет в журналы по запросу, показанному ниже

fields @timestamp, @message, @logStream
| filter function_name = "lambdaDemo-lambdaFunction-qnettGrKoNgh"
| sort @timestamp desc
| limit 20

Здесь мы хорошо отформатировали метрики по поводу всего вызова. Не только в отчете сгенерирован (например, в журналах), но полная информация. Например, довольно интересные данные, такие как холодное начало, версия агента, Timestamp в формате Unix, TraceID и многие другие.

Пример возвращенной записи показан ниже

Журналы приложений

Выполняет еще один запрос

fields @timestamp,@message,@logStream
| sort @timestamp desc
| limit 20

Это также показывает много интересной информации. Во-первых, визуализация (гистограмма) доступна. Очень хорошо.

Второй У нас есть все журналы, собранные в одном месте.

Конечно, мы можем добавить его в шаблон Сэма. Вот необходимые изменения:

AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31
Description: Simple Lambda

Resources:
  lambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: simplefunction.handler
      CodeUri: lambdafunction/
      Policies:
        - CloudWatchLambdaInsightsExecutionRolePolicy
      Runtime: python3.8
      AutoPublishAlias: live
      Description: Simple demo function
      MemorySize: 128
      Timeout: 10
      Tracing: Active
      Layers:
        - !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:14"
      Events:
        simpleApi:
          Type: Api
          TracingEnabled: true
          Properties:
            Path: /
            Method: get

Я добавил политику CloudwatchlampdainsightsexecutionRolepolicy и слой Lambdinesightsextension: 14 на определение лямбда. Что здесь важно, я использовал синтаксис $ {AWS:: Region} Чтобы прикрепить слой из области, в котором выполняется моя лямбда. Вот почему я использовал Действительно Sub Чтобы «перевести» эту информацию во время фактического выполнения шаблона.

Хорошо, все это очень приятно. Опять же, мы знаем больше о нашей системе. Но все же, что-то не хватает, что-то большое. В следующем эпизоде мы начинаем добавлять более подробные отслеживания/регистрацию/метрики в лямбду.

Обложка изображения по Hebi B. от Pixabay Ожидание изображения по Шломастер от Pixabay.

Наблюдаемость лямбда (4 части серии)

Оригинал: «https://dev.to/pawelpiwosz/lambda-insights-to-the-rescue-30io»