• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

.NET 서버리스 AWS 람다 성능 모니터링에 대한 접근 방식

서버리스 애플리케이션에서 무슨 일이 일어나고 있는지 이해하려면 .NET Lambda 함수의 가장 세부적인 동작에 대한 통합된 가시성이 필수적입니다. 이 정보를 통해 기능의 문제를 해결하고 최적화하여 더 빠르게 작동하고 일관된 결과를 제공할 수 있습니다.

.NET Lambda 함수에 대한 가시성을 확보하기 위해 두 가지 계측 접근 방식 중에서 선택할 수 있습니다.

아래 팁을 사용하면 어떤 접근 방식이 귀하에게 가장 적합한지 결정하는 데 도움이 됩니다.

기능 비교

다음 표에는 각 접근 방식의 다양한 요구 사항과 기능이 요약되어 있습니다.

뉴렐릭 .NET 에이전트

OpenTelemetry용 AWS Distro

코드 변경이 필요합니다

아니요

데이터 전송을 위한 도구가 필요합니다.

아니요

뉴렐릭 UI 경험

서버리스

오픈 텔레메트리

분산 추적

부분

메트릭

아니요

트랜잭션 추적

해당 없음

트랜잭션 이벤트

부분

오류 이벤트/범위

범위 이벤트 또는 범위

SQL 트레이스

해당 없음

스레드 프로파일링

아니요

해당 없음

취약점 관리

아니요

해당 없음

외부 통화

부분

XML을 사용한 사용자 정의 작성

아니요

아니요

API사용한 사용자 정의

Yes (에이전트)

예(OpenTelemetry)

맞춤 측정항목

아니요

맞춤 이벤트

해당 없음

커스텀 범위

맞춤 오류

아니요

사용자 정의 속성

로그

구형 장거리 추적

아니요

아니요

정보

컨텍스트 내는 in-에이전트 로그인 포워딩이 아닌 Lambda 확장 또는 CloudWatch에 의해 캡처됩니다.

뉴렐릭 .NET 에이전트

에이전트 버전 10.26.0부터 뉴렐릭 .NET 에이전트는 AWS Lambda 함수를 지원합니다. 대부분의 경우 .NET 에이전트는 AWS Lambda 함수를 자동으로 호출합니다. 에이전트를 사용하면 대부분의 경우 Lambda 함수를 모니터링하는 데 코드 변경이 필요하지 않다는 이점이 있습니다.

Lambda 함수에서 에이전트는 뉴렐릭으로 직접 데이터 전송을 비활성화하고 일부 다른 기능을 비활성화하는 "서버리스 모드"로 전환합니다. 뉴렐릭으로 데이터를 보내려면 뉴렐릭 Lambda Extension(.NET 에이전트 계층에 포함됨) 또는 CloudWatch를 사용해야 합니다.

대부분의 Lambda 함수는 에이전트 NuGet 패키지를 사용하여 Lambda 함수를 모니터링할 수 있습니다. 선택한 배포 방법에 대한 환경 변수를 수동으로 구성해야 합니다( 설치 가이드 참조). 이를 위해서는 뉴렐릭 Lambda Extension 또는 CloudWatch 통합을 설정하여 데이터를 뉴렐릭으로 보내야 합니다.

다음 AWS Lambda 함수 유형에 대해 자동 계측을 사용할 수 있습니다(에이전트 버전 10.29.0 기준):

  • Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction
  • Amazon.Lambda.AspNetCoreServer.APIGatewayHttpApiV2ProxyFunction
  • Amazon.Lambda.AspNetCoreServer.ApplicationLoadBalancerFunction

제한 사항:

  • 일반 람다 메서드는 자동으로 다운로드되지 않습니다. 람다 메서드가 Task<TResponse> MyMethod<TRequest, TResponse>(TRequest, ILambdaContext) 와 같은 일반 메서드인 경우 .NET 에이전트는 현재 해당 메서드를 렌더링할 수 없습니다.
  • Lambda 주석 프레임워크 는 현재 지원되지 않습니다.
  • ApiGatewayV2 이벤트에는 분산 추적에 필요한 일부 컨텍스트가 누락되었습니다.
  • 다양한 AWS SDK 호출(예: SQS)에 대한 아웃바운드 분산 추적은 지원되지 않습니다.
  • Lambda 함수 핸들러에 ILambdaContext 트리거가 포함되어 있지 않으면 .NET 에이전트가 Lambda 함수에 대해 예상되는 모든 정보를 수집할 수 없습니다.
  • 기본 AOT 배포 방법 으로 구축된 .NET Lambda 함수는 지원되지 않습니다.

중요

.NET Lambda 함수에 대한 서버리스 프레임워크 플러그인 지원은 서버리스 플러그인 v5.3.0부터 시작됩니다. v5.3.0 이전 버전의 서버리스 플러그인을 실행 중인 경우, v5.3.0 이상으로 업그레이드하면 .NET Lambda 함수가 자동으로 업로드됩니다. serverless.yml의 제외 문을 사용하여 자동 계측에서 기능을 제외할 수 있습니다.

.NET에 대한 ADOT(OpenTelemetry용 AWS Distro) Lambda 지원

.NET용 OpenTelemetry Lambda 디버깅은 Lambda 함수를 디버깅하는 데 사용할 수 있는 확장 및 추적 API 제공합니다. ADOT는 설치를 더 쉽게 하기 위해 레이어로 제공됩니다. ADOT Lambda 계층은 AWS OpenTelemetry OpenTelemetry 데이터를 뉴렐릭으로 내보낼 수 있는 Distro for 수집기의 축소 버전을 제공합니다. 서버리스 UI 환경 대신 이 접근 방식에서는 OpenTelemetry UI를 사용합니다.

이 방법을 사용하려면 배포 방법에 따라 일부 초기 수동 설정이 필요합니다.

설치에 대한 자세한 내용은 뉴렐릭 및 OpenTelemetry사용하여 .NET Lambda 함수를 트레이스 하세요.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.