Lambda SnapStart 모니터링 - AWS Lambda

Lambda SnapStart 모니터링

Amazon CloudWatch, AWS X-Ray 및 텔레메트리 API를 사용하여 확장의 실시간 텔레메트리 데이터에 액세스를 사용하여 Lambda SnapStart 함수를 모니터링할 수 있습니다.

참고

AWS_LAMBDA_LOG_GROUP_NAMEAWS_LAMBDA_LOG_STREAM_NAME 환경 변수는 Lambda SnapStart 함수에서 사용할 수 없습니다.

SnapStart를 사용하는 로깅 및 청구 동작 이해

SnapStart 함수의 CloudWatch 로그 스트림 형식에는 몇 가지 차이점이 있습니다.

  • 초기화 로그 — 새 실행 환경이 생성되면 REPORT에는 Init Duration 필드가 포함되지 않습니다. 이는 Lambda가 함수를 호출할 때가 아니라 버전을 생성할 때 SnapStart 함수를 초기화하기 때문입니다. SnapStart 함수의 경우 Init Duration 필드는 INIT_REPORT 레코드에 있습니다. 이 레코드에는 beforeCheckpoint 런타임 후크의 지속 시간을 비롯한 초기화 단계의 지속 시간 세부 정보가 표시됩니다.

  • 호출 로그 — 새 실행 환경이 생성되면 REPORT에는 Restore DurationBilled Restore Duration 필드가 포함됩니다.

    • Restore Duration: Lambda가 스냅샷을 복원하고, 런타임을 로드하고, 복원 후 런타임 후크를 실행하는 데 걸리는 시간입니다. 스냅샷 복원 프로세스에는 microVM 외부 작업에 소요되는 시간이 포함될 수 있습니다. 이 시간은 Restore Duration에서 보고됩니다.

    • Billed Restore Duration: Lambda가 런타임을 로드하고 복원 후 런타임 후크를 실행하는 데 걸리는 시간입니다.

참고

모든 Lambda 함수와 마찬가지로 함수 핸들러에서 실행하는 코드에는 지속 시간 요금이 적용됩니다. SnapStart 함수의 경우 지속 시간 요금은 핸들러 외부에서 선언된 초기화 코드, 런타임에서 로드하는 데 걸리는 시간, 런타임 후크에서 실행하는 모든 코드에 적용됩니다.

콜드 스타트 지속 시간은 Restore DurationDuration의 합계입니다.

다음 예는 SnapStart 함수의 지연 시간 백분위수를 반환하는 Lambda Insights 쿼리입니다. Lambda Insights 쿼리에 대한 자세한 내용은 쿼리를 사용하여 함수 문제를 해결하는 예제 워크플로 섹션을 참조하세요.

filter @type = "REPORT" | parse @log /\d+:\/aws\/lambda\/(?<function>.*)/ | parse @message /Restore Duration: (?<restoreDuration>.*?) ms/ | stats count(*) as invocations, pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 50) as p50, pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 90) as p90, pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 99) as p99, pct(@duration+coalesce(@initDuration,0)+coalesce(restoreDuration,0), 99.9) as p99.9 group by function, (ispresent(@initDuration) or ispresent(restoreDuration)) as coldstart | sort by coldstart desc

SnapStart에 대한 X-Ray 활성 추적

X-Ray를 사용하여 Lambda SnapStart 함수에 대한 요청을 추적할 수 있습니다. SnapStart 함수에 대한 X-Ray 하위 세그먼트에는 몇 가지 차이점이 있습니다.

  • SnapStart 함수에 대한 Initialization 하위 세그먼트가 없습니다.

  • Restore 하위 세그먼트는 Lambda가 스냅샷을 복원하고, 런타임을 로드하고, 복원 후 런타임 후크를 실행하는 데 걸리는 시간을 보여줍니다. 스냅샷 복원 프로세스에는 microVM 외부 작업에 소요되는 시간이 포함될 수 있습니다. 이 시간은 Restore 하위 세그먼트에서 보고됩니다. 스냅샷을 복원하기 위해 microVM 외부에서 소요된 시간에 대한 요금은 부과되지 않습니다.

SnapStart용 텔레메트리 API 이벤트

Lambda는 다음과 같은 SnapStart 이벤트를 텔레메트리 API로 전송합니다.

  • platform.restoreStart - Restore 단계가 시작된 시간을 표시합니다.

  • platform.restoreRuntimeDone - Restore 단계가 성공했는지 여부를 표시합니다. Lambda는 런타임이 restore/next 런타임 API 요청을 보낼 때 이 로그 메시지를 보냅니다. 가능한 상태로는 성공, 실패 및 시간 초과가 있습니다.

  • platform.restoreReport - Restore 단계가 지속된 시간과 이 단계에서 청구된 시간(밀리초)이 표시됩니다.

Amazon API Gateway 및 함수 URL 지표

API Gateway를 사용하여 웹 API를 생성하는 경우 IntegrationLatency 지표를 사용하여 엔드 투 엔드 지연 시간(API Gateway가 요청을 백엔드로 릴레이한 시점부터 백엔드에서 응답을 받는 시점까지의 시간)을 측정할 수 있습니다.

Lambda 함수 URL을 사용하는 경우 UrlRequestLatency 지표를 사용하여 엔드 투 엔드 지연 시간(함수 URL이 요청을 수신한 시점부터 함수 URL이 응답을 반환하는 시점까지의 시간)을 측정할 수 있습니다.