기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에 SDK 대한 X-Ray 구성 NET
에 SDK 대해 X-Ray를 구성할 수 있습니다. NET플러그인을 사용하여 애플리케이션이 실행되는 서비스에 대한 정보를 포함하거나, 기본 샘플링 동작을 수정하거나, 요청에 적용되는 샘플링 규칙을 특정 경로에 추가할 수 있습니다.
For. NET웹 애플리케이션, Web.config
파일 appSettings
섹션에 키를 추가하세요.
예 Web.config
<configuration>
<appSettings>
<add key="AWSXRayPlugins" value="EC2Plugin"/>
<add key="SamplingRuleManifest" value="sampling-rules.json"/>
</appSettings>
</configuration>
용. NETCore, 이름이 최상위 키인 이름을 appsettings.json
가진 파일을 만드세요. XRay
예 . NET앱 설정.json
{
"XRay": {
"AWSXRayPlugins": "EC2Plugin",
"SamplingRuleManifest": "sampling-rules.json"
}
}
그런 다음 애플리케이션 코드에서 구성 객체를 빌드하고 이 객체를 사용하여 X 레코더를 초기화합니다. 레코더를 초기화하기 전에 이 작업을 수행합니다.
예 . NET코어 Program.cs — 레코더 구성
using Amazon.XRay.Recorder.Core;
...
AWSXRayRecorder.InitializeInstance(configuration);
계측하는 경우 a. NET코어 웹 애플리케이션에서는 메시지 처리기를 구성할 때 구성 객체를 UseXRay
메서드에 전달할 수도 있습니다. Lambda 함수의 경우 위와 같이 InitializeInstance
메서드를 사용합니다.
에 대한 자세한 내용은 를 참조하십시오. NET핵심 컨피그레이션은 구성을 API 참조하십시오ASP. NETdocs.microsoft.com의 코어 앱
플러그인
플러그인을 사용하여 애플리케이션을 호스팅하는 서비스에 대한 데이터를 추가합니다.
플러그인
Amazon EC2 — 인스턴스 ID, 가용 영역 및 CloudWatch 로그 그룹을
EC2Plugin
추가합니다.Elastic Beanstalk –
ElasticBeanstalkPlugin
이 환경 이름, 버전 레이블 및 배포 ID를 추가합니다.Amazon ECS — 컨테이너 ID를
ECSPlugin
추가합니다.
플러그인을 사용하려면 SDK X-Ray를 구성하십시오. NETAWSXRayPlugins
설정을 추가하여 클라이언트를 실행하십시오. 여러 플러그인을 애플리케이션에 적용하는 경우 플러그인을 모두 동일 설정 안에 쉼표로 구분하여 지정합니다.
예 Web.config - 플러그인
<configuration>
<appSettings>
<add key="AWSXRayPlugins" value="EC2Plugin,ElasticBeanstalkPlugin"/>
</appSettings>
</configuration>
예 . NET코어 앱 설정.json — 플러그인
{
"XRay": {
"AWSXRayPlugins": "EC2Plugin,ElasticBeanstalkPlugin"
}
}
샘플링 규칙
는 X-Ray 콘솔에서 정의한 샘플링 규칙을 SDK 사용하여 기록할 요청을 결정합니다. 기본 규칙은 매초 첫 번째 요청을 추적하고, 모든 서비스에서 추가 요청의 5%를 X-Ray로 추적 전송합니다. X-Ray 콘솔에서 추가 규칙을 생성하여 각 애플리케이션에 대해 기록되는 데이터의 양을 사용자 지정합니다.
는 정의된 순서대로 사용자 지정 규칙을 SDK 적용합니다. 요청이 여러 사용자 지정 규칙과 일치하는 경우 는 첫 번째 규칙만 SDK 적용합니다.
참고
샘플링 규칙을 가져오기 위해 X-Ray에 연결할 SDK 수 없는 경우 1초마다 첫 번째 요청의 기본 로컬 규칙으로 되돌아가고 호스트당 추가 요청의 5% 로 되돌아갑니다. 이는 호스트가 샘플링을 APIs 호출할 권한이 없거나 에서 걸려온 호출에 대한 TCP API 프록시 역할을 하는 X-Ray 데몬에 연결할 수 없는 경우에 발생할 수 있습니다. SDK
문서에서 샘플링 규칙을 SDK 로드하도록 를 구성할 수도 있습니다JSON. 는 X-Ray 샘플링을 사용할 SDK 수 없는 경우 로컬 규칙을 백업으로 사용하거나 로컬 규칙만 사용할 수 있습니다.
예 sampling-rules.json
{
"version": 2,
"rules": [
{
"description": "Player moves.",
"host": "*",
"http_method": "*",
"url_path": "/api/move/*",
"fixed_target": 0,
"rate": 0.05
}
],
"default": {
"fixed_target": 1,
"rate": 0.1
}
}
이 예에서는 하나의 사용자 지정 규칙과 기본 규칙을 정의합니다. 사용자 지정 규칙은 최소 추적 요청 수 없이 5% 샘플링 비율을 /api/move/
아래 경로에 적용합니다. 기본 규칙은 매초 최초 요청과 추가 요청의 10%를 추적합니다.
로컬로 규칙의 정의할 때의 단점은 고정 대상이 X-Ray 서비스를 통해 관리되는 대신, 레코더의 각 인스턴스별로 독립적으로 적용된다는 것입니다. 호스트를 많이 배포할수록 고정 속도가 크게 증대하기 때문에 기록되는 데이터의 양을 제어하기가 어려워집니다.
아니오 AWS Lambda, 샘플링 레이트는 수정할 수 없습니다. 구성된 서비스가 함수를 호출하는 경우 해당 서비스에서 샘플링한 요청을 생성한 호출이 Lambda에 의해 기록됩니다. 활성 추적이 활성화되고 트레이스 헤더가 없는 경우 Lambda에서 샘플링 결정을 내립니다.
백업 규칙을 구성하려면 SDK X-Ray에 다음을 지정하십시오. NETSamplingRuleManifest
설정이 있는 파일에서 샘플링 규칙을 로드하려면
예 . NETWeb.config - 샘플링 규칙
<configuration>
<appSettings>
<add key="SamplingRuleManifest" value="sampling-rules.json"/>
</appSettings>
</configuration>
예 . NET핵심 앱 설정.json — 샘플링 규칙
{
"XRay": {
"SamplingRuleManifest": "sampling-rules.json"
}
}
로컬 규칙만 사용하려면 LocalizedSamplingStrategy
를 사용하여 레코더를 빌드합니다. 백업 규칙을 구성한 경우 해당 구성을 제거합니다.
예 . NET글로벌.asax — 로컬 샘플링 규칙
var recorder = new AWSXRayRecorderBuilder().WithSamplingStrategy(new LocalizedSamplingStrategy(
"samplingrules.json"
)).Build(); AWSXRayRecorder.InitializeInstance(recorder: recorder);
예 . NET코어 Program.cs — 로컬 샘플링 규칙
var recorder = new AWSXRayRecorderBuilder().WithSamplingStrategy(new LocalizedSamplingStrategy(
"sampling-rules.json"
)).Build(); AWSXRayRecorder.InitializeInstance(configuration,recorder);
로깅 (. NET)
SDK엑스레이를 위한 NET와 동일한 로깅 메커니즘을 사용합니다 AWS SDK for .NET. AWS SDK for .NET 출력을 기록하도록 애플리케이션을 이미 구성한 경우 X-Ray의 SDK 출력에도 동일한 구성이 적용됩니다. NET.
로깅을 구성하려면 aws
라는 구성 섹션을 App.config
파일이나 Web.config
파일에 추가합니다.
예 Web.config - 로깅
...
<configuration>
<configSections>
<section name="aws" type="Amazon.AWSSection, AWSSDK.Core"/>
</configSections>
<aws>
<logging logTo="Log4Net"/>
</aws>
</configuration>
자세한 내용은 AWS SDK for .NET 개발자 안내서의 AWS SDK for .NET 애플리케이션 구성을 참조하십시오.
로깅 (. NET코어)
SDK엑스레이를 위한 NET와 동일한 로깅 옵션을 사용합니다 AWS SDK for .NET. 로깅을 구성하려면 NET핵심 애플리케이션은 로깅 옵션을 AWSXRayRecorder.RegisterLogger
메서드에 전달합니다.
예를 들어 log4net을 사용하려면 로거, 출력 형식 및 파일 위치를 정의하는 구성 파일을 생성합니다.
예 . NET코어 log4net.config
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender,log4net">
<file value="c:\logs\sdk-log.txt
" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline
" />
</layout>
</appender>
<logger name="Amazon">
<level value="DEBUG" />
<appender-ref ref="FileAppender" />
</logger>
</log4net>
그런 다음 로거를 생성하고 프로그램 코드에 해당 구성을 적용합니다.
예 . NET코어 Program.cs — 로깅
using log4net;
using Amazon.XRay.Recorder.Core;
class Program
{
private static ILog log;
static Program()
{
var logRepository = LogManager.GetRepository(Assembly.GetEntryAssembly());
XmlConfigurator.Configure(logRepository, new FileInfo("log4net.config"));
log = LogManager.GetLogger(typeof(Program));
AWSXRayRecorder.RegisterLogger(LoggingOptions.Log4Net);
}
static void Main(string[] args)
{
...
}
}
log4net 구성에 대한 자세한 내용은 logging.apache.org의 구성
환경 변수
환경 변수를 사용하여 SDK X-Ray를 구성할 수 있습니다. NET. SDK는 다음 변수를 지원합니다.
-
AWS_XRAY_TRACING_NAME
— 세그먼트에 사용할 서비스 이름을 설정합니다. SDK 서블릿 필터의 세그먼트 이름 지정 전략에 설정한 서비스 이름을 재정의합니다. AWS_XRAY_DAEMON_ADDRESS
– X-Ray 대몬(daemon) 리스너의 호스트와 포트를 설정합니다. 기본적으로 추적 데이터 (UDP) 와 샘플링 (TCP)127.0.0.1:2000
모두에 SDK 사용됩니다. 다른 포트에서 수신 대기하도록 대몬(daemon)을 구성한 경우 또는 다른 호스트에서 실행 중인 경우 이 변수를 사용합니다.형식
-
동일한 포트 –
address
:port
-
다른 포트 –
tcp:
address
:port
udp:address
:port
-
AWS_XRAY_CONTEXT_MISSING
– 열려 있는 세그먼트가 없는 경우 구성된 코드가 데이터를 기록하려고 할 때 발생하는 예외를 방지하려면RUNTIME_ERROR
로 설정합니다.유효한 값
-
RUNTIME_ERROR
— 런타임 예외가 발생합니다. -
LOG_ERROR
– 오류를 기록하고 계속합니다 (기본값). -
IGNORE_ERROR
— 오류를 무시하고 계속합니다.
열린 요청이 없을 때 실행되는 시작 코드 또는 새 스레드를 생성하는 코드에서 계측된 클라이언트를 사용하려고 하는 경우 누락된 세그먼트 또는 하위 세그먼트와 관련된 오류가 발생할 수 있습니다.
-