Налаштування Serverless моніторингу (Lumigo / Datadog Serverless)

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.
Розробка та обслуговування будь-яких видів сайтів:
Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування Serverless моніторингу (Lumigo / Datadog Serverless)
Середня
від 1 робочого дня до 3 робочих днів
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Налаштування Serverless моніторингу (Lumigo / Datadog Serverless)

Стандартний моніторинг погано працює для serverless: немає постійно запущених процесів, екземпляри мінливі, cold start — унікальний тип затримки, немає прямого доступу до інфраструктури. Спеціалізовані інструменти заповнюють ці прогалини.

Проблеми стандартного моніторингу для Lambda

CloudWatch Metrics з коробки дає: Invocations, Errors, Duration, Throttles. Цього недостатньо:

  • Немає розділення cold start vs warm start latency
  • Немає трейсингу між функціями та downstream сервісами
  • Немає видимості конкретних помилок з контекстом
  • Немає кореляції між логами різних функцій одного запиту

Lumigo

Lumigo — платформа спостереження, орієнтована на serverless. Встановлення через Lambda Layer без змін коду:

resource "aws_lambda_function" "api" {
  layers = [
    "arn:aws:lambda:us-east-1:114300393969:layer:lumigo-python-tracer:latest"
  ]

  environment {
    variables = {
      LUMIGO_TRACER_TOKEN = var.lumigo_token
      LUMIGO_DEBUG        = "false"
    }
  }
}

Для Python через декоратор (якщо потрібна кастомізація):

import lumigo_tracer

@lumigo_tracer.lumigo_tracer(token="your-token")
def handler(event, context):
    # Автоматично трейсує HTTP, boto3, psycopg2 виклики
    response = requests.get("https://api.external.com/data")
    return process(response.json())

Що дає Lumigo:

  • Автоматичний distributed tracing (Lambda → SQS → Lambda → DynamoDB)
  • Timeline кожного invocation: ініціалізація, cold start, handler, downstream виклики
  • Payload inspector: вхідні/вихідні дані кожного виклику
  • Smart alerts: аномалії без ручного налаштування порогів
  • Cost analysis: витрати за функціями, оцінка оптимізації пам'яті

Datadog Serverless

Ширша платформа зі специфічними для serverless можливостями:

# serverless.yml (Serverless Framework)
plugins:
  - serverless-datadog-plugin

custom:
  datadog:
    apiKey: ${env:DD_API_KEY}
    enableXrayTracing: true
    enableDDTracing: true
    enableMergedXrayTraces: true
    captureLambdaPayload: true
    logLevel: WARN

Або через Terraform з Lambda Layer:

resource "aws_lambda_function" "api" {
  layers = [
    "arn:aws:lambda:us-east-1:464622532012:layer:Datadog-Python312:latest"
  ]

  environment {
    variables = {
      DD_API_KEY           = var.datadog_api_key
      DD_SITE              = "datadoghq.com"
      DD_ENHANCED_METRICS  = "true"
      DD_TRACE_ENABLED     = "true"
      DD_COLD_START_TRACING = "true"
    }
  }
}

Enhanced Lambda Metrics від Datadog: розбивка по cold/warm invocations, розрахункова вартість, out-of-memory события — поверх стандартних CloudWatch метрик.

Ключові метрики для Serverless моніторингу

Латентність breakdown:

  • Тривалість cold start (p50, p95, p99)
  • Час ініціалізації (handler setup)
  • Тривалість handler

Надійність:

  • Коефіцієнт помилок по функціях
  • Коефіцієнт timeout
  • Коефіцієнт throttle
  • Паралельні виконання vs ліміт

Вартість:

  • Споживання GB-seconds
  • Кількість invocations
  • Розрахункова місячна вартість

Distributed Tracing для Serverless

Коли Lambda → SQS → Lambda → RDS, трейс повинен проходити через усі сервіси:

# Перша Lambda: додати trace context до SQS повідомлення
from opentelemetry import trace
from opentelemetry.propagate import inject

def handler(event, context):
    tracer = trace.get_tracer(__name__)
    with tracer.start_as_current_span("process-order"):
        # Inject trace context у SQS message attributes
        headers = {}
        inject(headers)

        sqs.send_message(
            QueueUrl=QUEUE_URL,
            MessageBody=json.dumps({"orderId": "123"}),
            MessageAttributes={
                "trace_context": {
                    "StringValue": json.dumps(headers),
                    "DataType": "String"
                }
            }
        )

Lumigo та Datadog роблять це автоматично для AWS SDK викликів.

Алерти для Serverless

# Datadog monitor через Terraform
resource "datadog_monitor" "lambda_error_rate" {
  name    = "Lambda High Error Rate"
  type    = "metric alert"
  message = "Error rate на {{functionname.name}} > 5%. @pagerduty-oncall"

  query = "sum(last_5m):sum:aws.lambda.errors{env:production} by {functionname}.as_rate() / sum:aws.lambda.invocations{env:production} by {functionname}.as_rate() > 0.05"

  thresholds = {
    critical = 0.05
    warning  = 0.02
  }
}

Графік налаштування

  • Lumigo (Layer + без змін коду) — 0.5-1 день
  • Datadog Serverless (Layer + config) — 1-2 дні
  • Користувацькі метрики + алерти — 1-2 дні
  • Налаштування distributed tracing — 1-2 дні