AWS X-Ray .NET용 SDK - AWS X-Ray

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS X-Ray .NET용 SDK

.NET용 X-Ray SDK는 C# .NET 웹 애플리케이션, .NET Core 웹 애플리케이션 및 .NET Core 함수를 계측하기 위한 라이브러리입니다. AWS Lambda이 라이브러리는 트레이스 데이터를 생성하여 X-Ray 대몬(daemon)으로 전송하기 위한 클래스 및 메서드를 제공합니다. 여기에는 응용 프로그램에서 제공하는 수신 요청, 응용 프로그램이 다운스트림 AWS 서비스, HTTP 웹 API 및 SQL 데이터베이스에 대해 수행하는 호출에 대한 정보가 포함됩니다.

웹 애플리케이션의 경우 메시지 핸들러를 웹 구성에 추가하여 수신 요청을 트레이스하는 것부터 시작합니다. 메시지 핸들러는 각 트레이스 요청에 대한 세그먼트를 생성하고, 응답이 전송되면 세그먼트를 완료합니다. 세그먼트가 열려 있는 동안에는 SDK 클라이언트의 메서드를 이용해 정보를 세그먼트에 추가하고 하위 세그먼트를 만들어 다운스트림 호출을 트레이스할 수 있습니다. 또한 SDK는 세그먼트가 열려 있는 동안 애플리케이션에서 발생하는 예외를 자동으로 기록합니다.

계측되는 애플리케이션 또는 서비스에 의해 호출되는 Lambda 함수의 경우, Lambda는 추적 헤더를 읽고 샘플링된 요청을 자동으로 추적합니다. 그 밖의 함수의 경우 수신 요청을 샘플링 및 추적하도록 Lambda를 구성합니다. 어느 경우든, Lambda는 세그먼트를 생성하여 X-Ray SDK에 제공합니다.

참고

Lambda의 X-Ray SDK는 선택 사항입니다. 이를 함수에 사용하지 않는 경우 여전히 서비스 맵에 Lambda 서비스용 노드와 각 Lambda 함수용 노트 하나가 포함됩니다. SDK를 추가하면 함수 코드를 계측하여 Lambda에 의해 기록되는 함수 세그먼트에 하위 세그먼트를 추가할 수 있습니다. 자세한 내용은 AWS Lambda 그리고 AWS X-Ray를 참조하세요.

그런 다음, X-Ray SDK for .NET를 사용하여 AWS SDK for .NET 클라이언트를 계측 합니다. 인스트루먼트된 클라이언트를 사용하여 다운스트림 AWS 서비스 또는 리소스에 전화를 걸 때마다 SDK는 해당 호출에 대한 정보를 하위 세그먼트에 기록합니다. AWS 서비스 내에서 액세스하는 서비스와 리소스는 추적 맵에 다운스트림 노드로 나타나므로 개별 연결의 오류 및 제한 문제를 식별하는 데 도움이 됩니다.

또한 .NET용 X-Ray SDK은 HTTP 웹 APISQL 데이터베이스에 대한 다운스트림 호출의 계측도 제공합니다. System.Net.HttpWebRequest에 대한 GetResponseTraced 확장 메서드는 발신 HTTP 호출을 트레이스합니다. .NET용 X-Ray SDK 버전의 SqlCommand를 사용하여 SQL 쿼리를 계측할 수 있습니다.

SDK를 사용하기 시작한 후에, 레코더와 메시지 핸들러를 구성하여 SDK 동작을 구성하십시오. 플러그인을 추가해 애플리케이션을 실행하는 컴퓨팅 리소스에 대한 데이터를 기록하고, 샘플링 규칙을 정의해 샘플링 동작을 구성하고, 로그 레벨을 설정해 애플리케이션 로그의 SDK에서 표시되는 정보 수준을 조절할 수 있습니다.

요청에 대한 추가 정보와 애플리케이션이 주석 및 메타데이터에서 하는 작업을 기록합니다. 주석은 필터 표현식과 함께 사용할 수 있도록 인덱싱된 단순한 키 값 쌍이기 때문에, 특정 데이터를 포함한 트레이스를 검색할 수 있습니다. 메타데이터 항목은 제한이 적으며 JSON으로 직렬화할 수 있는 모든 객체와 어레이를 기록할 수 있습니다.

주석 및 메타데이터

주석 및 메타데이터는 X-Ray SDK를 사용하여 세그먼트에 추가하는 임의의 텍스트입니다. 주석은 필터 표현식에서 사용하기 위해 인덱싱됩니다. 메타데이터는 인덱싱되지 않지만 X-Ray 콘솔 또는 API를 사용하여 원시 세그먼트에서 볼 수 있습니다. X-Ray에 대한 읽기 액세스가 부여된 사용자는 누구나 이 데이터를 볼 수 있습니다.

코드에 구성된 클라이언트가 많이 있다면, 구성된 클라이언트로 만든 각 요청의 하위 세그먼트를 대량으로 보관하는 요청 세그먼트 하나를 만들 수 있습니다. 사용자 지정 하위 세그먼트의 클라이언트 호출을 래핑해 하위 세그먼트를 조직하고 그룹화할 수 있습니다. 전체 함수나 특정 코드 부분에 대한 사용자 지정 하위 세그먼트를 만들고, 상위 세그먼트에 모든 것을 적는 대신 하위 세그먼트에 메타데이터와 주석을 기록할 수 있습니다.

SDK의 클래스 및 메서드에 대한 참조 문서는 다음을 참조하십시오.

동일한 패키지에서 NET 및 .NET Core를 둘 다 지원하지만, 사용되는 클래스는 다릅니다. 이 장의 예제는 클래스가 .NET Core로 국한된 경우가 아니면 .NET API 참조로 연결됩니다.

요구 사항

.NET용 X-Ray SDK를 사용하려면 .NET 프레임워크 4.5 이상 버전이 필요합니다. AWS SDK for .NET

.NET Core 애플리케이션 및 함수의 경우, SDK에는 .NET Core 2.0 이상이 필요합니다.

애플리케이션에 .NET용 X-Ray SDK 추가하기

.NET용 X-Ray SDK를 애플리케이션에 NuGet 추가하는 데 사용합니다.

비주얼 스튜디오에서 패키지 관리자를 NuGet 사용하여.NET용 X-Ray SDK를 설치하려면
  1. [도구], [NuGet 패키지 관리자], [솔루션용 NuGet 패키지 관리] 를 선택합니다.

  2. AWSXRayRecorder를 찾습니다.

  3. 패키지를 선택하고 Install(설치)을 선택합니다.

종속성 관리

.NET용 X-Ray SDK는 Nuget에서 사용할 수 있습니다. 패키지 관리자를 사용하여 SDK를 설치합니다:

Install-Package AWSXRayRecorder -Version 2.10.1

AWSXRayRecorder v2.10.1 nuget 패키지에는 다음과 같은 종속성을 가지고 있습니다:

NET Framework 4.5

AWSXRayRecorder (2.10.1)
|
|-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- AWSSDK.Core (>= 3.3.25.1)
|      
|-- AWSXRayRecorder.Handlers.AspNet (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.AwsSdk (>= 2.8.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.EntityFramework (>= 1.1.1)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- EntityFramework (>= 6.2.0)
|
|-- AWSXRayRecorder.Handlers.SqlServer (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.System.Net (>= 2.7.3)
    |-- AWSXRayRecorder.Core (>= 2.10.1)      
      

NET Framework 2.0

AWSXRayRecorder (2.10.1)
|
|-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- AWSSDK.Core (>= 3.3.25.1)
|   |-- Microsoft.AspNetCore.Http (>= 2.0.0)
|   |-- Microsoft.Extensions.Configuration (>= 2.0.0)
|   |-- System.Net.Http (>= 4.3.4)
|      
|-- AWSXRayRecorder.Handlers.AspNetCore (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- Microsoft.AspNetCore.Http.Extensions (>= 2.0.0)
|   |-- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.0.0)
|
|-- AWSXRayRecorder.Handlers.AwsSdk (>= 2.8.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.EntityFramework (>= 1.1.1)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- Microsoft.EntityFrameworkCore.Relational (>= 3.1.0)
|
|-- AWSXRayRecorder.Handlers.SqlServer (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- System.Data.SqlClient (>= 4.4.0)
|
|-- AWSXRayRecorder.Handlers.System.Net (>= 2.7.3)
    |-- AWSXRayRecorder.Core (>= 2.10.1)
      

종속성 관리에 대한 자세한 내용은 Nuget 종속성Nuget 종속성 해결에 대한 Microsoft 의 문서를 참조하십시오.