기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
사용 AWS Management Console
최소한의 코딩이 필요한 그래픽 사용자 인터페이스 (GUI) 를 AWS Management Console 원한다면 를 사용하십시오. X-Ray를 처음 사용하는 사용자는 사전 구축된 시각화를 사용하고 기본 작업을 수행하여 빠르게 시작할 수 있습니다. 콘솔에서 직접 다음 작업을 수행할 수 있습니다.
-
X-Ray 활성화하기
-
애플리케이션 성능에 대한 개괄적인 요약을 볼 수 있습니다.
-
애플리케이션 상태를 확인하세요.
-
높은 수준의 오류를 식별하십시오.
-
기본 추적 요약을 확인하세요.
https://console.aws.amazon.com/cloudwatch/
Amazon CloudWatch 콘솔 사용
CloudWatch 콘솔에는 사용하기 쉽도록 X-Ray 콘솔에서 재설계된 새로운 X-Ray 기능이 포함되어 있습니다. CloudWatch 콘솔을 사용하는 경우 X-Ray Trace 데이터와 함께 CloudWatch 로그 및 메트릭을 볼 수 있습니다. CloudWatch 콘솔을 사용하여 다음을 포함한 데이터를 보고 분석할 수 있습니다.
-
X-Ray trace — 요청을 처리할 때 애플리케이션과 관련된 트레이스를 보고, 분석하고, 필터링합니다. 이러한 추적을 사용하여 높은 지연 시간을 찾고, 오류를 디버깅하고, 애플리케이션 워크플로를 최적화하십시오. 추적 맵과 서비스 맵을 보고 애플리케이션 워크플로를 시각적으로 확인할 수 있습니다.
-
로그 — 애플리케이션에서 생성되는 로그를 보고, 분석하고, 필터링합니다. 로그를 사용하여 오류를 해결하고 특정 로그 값을 기반으로 모니터링을 설정합니다.
-
지표 — 리소스가 내보내는 지표를 사용하여 애플리케이션 성능을 측정 및 모니터링하거나 자체 지표를 생성합니다. 이러한 지표를 그래프와 차트로 볼 수 있습니다.
-
네트워크 및 인프라 모니터링 — 주요 네트워크의 정전 여부와 컨테이너식 애플리케이션, 기타 AWS 서비스, 클라이언트를 포함한 인프라의 상태 및 성능을 모니터링합니다.
-
다음 X-Ray 콘솔 사용 섹션에 나열된 X-Ray 콘솔의 모든 기능
CloudWatch 콘솔에 대한 자세한 내용은 Amazon 시작하기를 참조하십시오 CloudWatch.
https://console.aws.amazon.com/cloudwatch/
X-Ray 콘솔 사용하기
X-Ray 콘솔은 애플리케이션 요청에 대한 분산 추적 기능을 제공합니다. 보다 간단한 콘솔 환경을 원하거나 애플리케이션 코드를 업데이트하고 싶지 않은 경우 X-Ray 콘솔을 사용하십시오. AWS 더 이상 X-Ray 콘솔을 개발하지 않습니다. X-Ray 콘솔에는 계측 애플리케이션을 위한 다음과 같은 기능이 포함되어 있습니다.
-
인사이트 — 애플리케이션 성능의 이상을 자동으로 감지하고 근본 원인을 찾아냅니다. 인사이트는 CloudWatch 콘솔의 Insights 아래에 포함됩니다. 자세한 내용은 X-Ray Insights 사용을 참조하십시오X-Ray 콘솔 살펴보기.
-
서비스 맵 — 애플리케이션의 그래픽 구조 및 클라이언트, 리소스, 서비스 및 종속성과의 연결을 그래프로 표시합니다.
-
트레이스 — 애플리케이션이 요청을 처리할 때 생성되는 트레이스의 개요를 확인하세요. 추적 데이터를 사용하여 HTTP 응답 및 응답 시간을 비롯한 기본 지표에 대한 애플리케이션 성능을 파악할 수 있습니다.
-
분석 — 응답 시간 분포를 위한 그래프를 사용하여 추적 데이터를 해석, 탐색 및 분석합니다.
-
구성 — 사용자 지정 트레이스를 생성하여 다음에 대한 기본 구성을 변경합니다.
-
샘플링 — 애플리케이션에서 추적 정보를 샘플링하는 빈도를 정의하는 규칙을 만드십시오. 자세한 내용은 에서 샘플링 규칙 구성을 참조하십시오X-Ray 콘솔 살펴보기.
-
암호화 - 감사하거나 사용하지 않도록 설정할 수 있는 키를 사용하여 저장된 데이터를 암호화합니다. AWS Key Management Service
-
그룹 - 필터 표현식을 사용하여 URL 이름 또는 응답 시간과 같은 공통 기능을 가진 추적 그룹을 정의합니다. 자세한 내용은 그룹 구성을 참조하십시오.
-
https://console.aws.amazon.com/xray/home
X-Ray 콘솔 살펴보기
X-Ray 콘솔을 사용하여 애플리케이션이 제공하는 요청에 대한 서비스 맵 및 관련 트레이스를 보고, 트레이스가 X-Ray로 전송되는 방식에 영향을 미치는 그룹 및 샘플링 규칙을 구성할 수 있습니다.
참고
X-Ray Service CloudWatch ServiceLens 맵과 맵이 Amazon CloudWatch 콘솔 내의 X-Ray 추적 맵에 통합되었습니다. CloudWatch콘솔을
CloudWatch 이제 애플리케이션 서비스, 클라이언트, Synthetics canary 및 서비스 종속성을 검색하고 모니터링할 수 있는 애플리케이션 시그널이 포함됩니다. Application Signals를 사용하여 서비스의 목록 또는 시각적 맵을 확인하고, 서비스 수준 목표(SLO)를 기준으로 상태 지표를 확인하고, 더 자세한 문제 해결을 위해 상관관계가 있는 X-Ray 트레이스를 드릴다운할 수 있습니다.
기본 X-Ray 콘솔 페이지는 애플리케이션에서 생성된 추적 데이터로부터 X-Ray가 생성하는 JSON 서비스 그래프를 시각적으로 표현한 추적 맵입니다. 맵은 요청을 처리하는 계정 내 각 애플리케이션에 대한 서비스 노드, 요청의 오리진을 나타내는 업스트림 클라이언트 노드, 애플리케이션이 요청을 처리하는 동안 사용하는 웹 서비스 및 리소스를 나타내는 다운스트림 서비스 노드로 구성됩니다. 추가 페이지에서 추적 및 추적 세부 정보를 보고 그룹 및 샘플링 규칙을 구성할 수 있습니다.
다음 섹션에서 X-Ray의 콘솔 환경을 보고 CloudWatch 콘솔과 비교해 보십시오.
X-Ray 및 CloudWatch 콘솔 살펴보기
X-Ray trace 맵을 보고 오류가 발생한 서비스, 대기 시간이 긴 연결 또는 실패한 요청에 대한 추적을 식별할 수 있습니다.
참고
CloudWatch 이제 애플리케이션 서비스, 클라이언트, 합성 카나리아 및 서비스 종속성을 검색하고 모니터링할 수 있는 애플리케이션 시그널이 포함됩니다. Application Signals를 사용하여 서비스의 목록 또는 시각적 맵을 확인하고, 서비스 수준 목표(SLO)를 기준으로 상태 지표를 확인하고, 더 자세한 문제 해결을 위해 상관관계가 있는 X-Ray 트레이스를 드릴다운할 수 있습니다.
X-Ray 서비스 맵과 CloudWatch ServiceLens 맵은 Amazon CloudWatch 콘솔 내의 X-Ray 추적 맵에 통합됩니다. CloudWatch콘솔을
추적 맵 보기
트레이스 맵은 애플리케이션에서 생성된 트레이스 데이터를 시각적으로 표현한 것입니다. 맵에는 요청을 처리하는 서비스 노드, 요청의 출처를 나타내는 업스트림 클라이언트 노드, 요청을 처리하는 동안 애플리케이션에서 사용하는 웹 서비스 및 리소스를 나타내는 다운스트림 서비스 노드가 표시됩니다.
추적 맵은 Amazon SQS 및 Lambda를 사용하는 이벤트 기반 애플리케이션 전반의 추적에 대한 연결된 보기를 표시합니다. 자세한 내용은 다음 Trace 이벤트 기반 애플리케이션 섹션을 참조하십시오. 추적 맵은 계정 간 추적도 지원하여 여러 계정의 노드를 단일 맵에 표시합니다.
참고
X-Ray 추적 맵은 최대 10,000개의 노드를 표시할 수 있습니다. 드문 경우지만 총 서비스 노드 수가 이 제한을 초과하는 경우 오류가 발생하여 콘솔에 전체 추적 맵을 표시하지 못할 수 있습니다.
그룹별 트레이스 맵 필터링
필터 표현식을 사용하여 그룹에 트레이스를 허용하는 기준을 정의할 수 있습니다. 필터 표현식에 대한 자세한 내용은 필터 표현식 사용을 참조하십시오. 그런 다음 다음 단계를 사용하여 추적 맵에 해당 특정 그룹을 표시하십시오.
이제 서비스 맵이 필터링되어 선택한 그룹의 필터 표현식과 일치하는 추적을 표시합니다.
트레이스 맵 범례 및 옵션
추적 맵에는 범례와 맵 표시를 사용자 지정하기 위한 여러 옵션이 포함되어 있습니다.
X-Ray 콘솔의 트레이스 페이지를 사용하여 URL, 응답 코드 또는 트레이스 요약의 다른 데이터를 기준으로 트레이스를 검색할 수 있습니다. 추적 목록에서 트레이스를 선택하면 트레이스 세부 정보 페이지에 선택한 트레이스와 관련된 서비스 노드의 맵과 트레이스 세그먼트의 타임라인이 표시됩니다.
추적 보기
트레이스 타임라인 살펴보기
타임라인 섹션에는 작업을 완료하는 데 사용한 시간에 해당하는 수평 막대 옆에 세그먼트와 하위 세그먼트의 계층 구조가 표시됩니다. 목록의 첫 번째 항목이 세그먼트인데, 단일 요청의 서비스에 의해 기록된 모든 데이터를 나타냅니다. 하위 세그먼트는 세그먼트 다음에 들여쓰여지고 나열됩니다. 열에는 각 세그먼트에 대한 정보가 포함됩니다.
계측된 AWS SDK 또는 SQL 클라이언트를 사용하여 외부 리소스를 호출하면 X-Ray SDK가 하위 세그먼트를 자동으로 기록합니다. HTTP 또한 X-Ray SDK를 사용하여 모든 함수 또는 코드 블록에 대한 사용자 지정 하위 세그먼트를 기록할 수 있습니다. 사용자 지정 하위 세그먼트가 열려 있는 동안 기록된 추가 하위 세그먼트는 사용자 지정 하위 세그먼트의 하위 세그먼트가 됩니다.
세그먼트 세부 정보 보기
추적 타임라인에서 세그먼트의 이름을 선택하여 세부 정보를 확인합니다.
세그먼트 세부 정보 패널에는 개요, 리소스, 주석, 메타데이터, 예외 및 SQL 탭이 표시됩니다. 다음이 적용됩니다.
-
개요 탭에 요청 및 응답에 대한 정보가 표시됩니다. 정보에는 이름, 시작 시간, 종료 시간, 기간, 요청 URL, 요청 작업, 요청 응답 코드, 오류 및 장애가 포함됩니다.
-
세그먼트의 리소스 탭에는 X-Ray-SDK의 정보와 애플리케이션을 실행하는 AWS 리소스에 대한 정보가 표시됩니다. X-Ray SDK용 Amazon EC2 또는 Amazon ECS 플러그인을 사용하여 서비스별 리소스 정보를 기록할 수 있습니다. AWS Elastic Beanstalk플러그인에 대한 자세한 내용은 의 서비스 플러그인 섹션을 참조하십시오. Java용 X-Ray SDK 구성
-
나머지 탭에는 세그먼트에 기록된 주석, 메타데이터 및 예외가 표시됩니다. 계측된 요청에서 예외가 생성되면 자동으로 캡처됩니다. 주석과 메타데이터에는 X-Ray SDK가 제공하는 작업을 사용하여 기록하는 추가 정보가 포함됩니다. 세그먼트에 주석이나 메타데이터를 추가하려면 X-Ray SDK를 사용하세요. 자세한 내용은 SDK를 사용하여 애플리케이션 계측하기 아래에 나열된 언어별 링크를 참조하십시오. AWS X-Ray 애플리케이션 측정 대상 AWS X-Ray
하위 세그먼트 세부 정보 보기
트레이스 타임라인에서 세부 정보를 보려는 하위 세그먼트 이름을 선택합니다.
-
개요 탭에는 요청 및 응답에 대한 정보가 포함되어 있습니다. 여기에는 이름, 시작 시간, 종료 시간, 기간, 요청URL, 요청 작업, 요청 응답 코드, 오류 및 오류가 포함됩니다. 구성된 클라이언트에 의해 생성된 하위 세그먼트의 경우, 개요 탭에 애플리케이션 관점에서의 요청 및 응답에 대한 정보가 포함됩니다.
-
하위 세그먼트의 리소스 탭에는 해당 하위 세그먼트를 실행하는 데 사용된 AWS 리소스에 대한 세부 정보가 표시됩니다. 예를 들어 리소스 탭에는 AWS Lambda 함수 ARN, DynamoDB 테이블에 대한 정보, 호출된 모든 작업, 요청 ID가 포함될 수 있습니다.
-
나머지 탭에는 하위 세그먼트에 기록된 주석, 메타데이터 및 예외가 표시됩니다. 계측된 요청에서 예외가 생성되면 자동으로 캡처됩니다. 주석과 메타데이터에는 X-Ray SDK가 제공하는 작업을 사용하여 기록하는 추가 정보가 포함됩니다. X-Ray SDK를 사용하여 세그먼트에 주석 또는 메타데이터를 추가할 수 있습니다. 자세한 내용은 SDK를 사용하여 애플리케이션 계측하기 아래에 나열된 언어별 링크를 참조하십시오. AWS X-Ray 애플리케이션 측정 대상 AWS X-Ray
사용자 지정 하위 세그먼트의 경우, 개요 탭에 하위 세그먼트의 이름이 표시됩니다. 이 이름은 이 하위 세그먼트가 기록하는 코드 영역이나 함수를 지정하는 데 설정할 수 있습니다. 자세한 내용은 SDK를 사용하여 애플리케이션 인스트루먼트에 나열된 언어별 링크를 참조하십시오. AWS X-Ray Java용 X-Ray SDK를 사용하여 사용자 지정 하위 세그먼트 생성하기
다음 이미지는 사용자 지정 하위 세그먼트의 개요 탭을 보여줍니다. 개요에는 하위 세그먼트 ID, 상위 ID, 이름, 시작 및 종료 시간, 기간, 상태, 오류 또는 장애가 포함됩니다.
![ID, 상위 ID, 이름, 시간, 오류 및 장애를 포함한 하위 세그먼트에 대한 개요 정보.](images/scorekeep-PUTrules-customsubsegment-overview.png)
사용자 지정 하위 세그먼트의 메타데이터 탭에는 해당 하위 세그먼트에서 사용하는 리소스에 대한 JSON 형식 정보가 들어 있습니다.
필터 표현식을 사용하여 특정 요청, 서비스, 두 서비스 간 연결 (에지) 또는 조건을 충족하는 요청에 대한 트레이스 맵 또는 트레이스를 볼 수 있습니다. X-Ray는 요청 헤더, 응답 상태 및 원래 세그먼트의 인덱싱된 필드에 포함된 데이터를 기반으로 요청, 서비스 및 엣지를 필터링하는 필터 표현식 언어를 제공합니다.
X-Ray 콘솔에서 볼 트레이스의 기간을 선택할 때 콘솔에서 표시할 수 있는 결과보다 더 많은 결과를 얻을 수 있습니다. 우측 상단 모서리에서 콘솔은 스캔한 트레이스의 수 및 사용 가능한 트레이스가 더 있는지를 표시합니다. 필터 표현식을 사용하면 찾고자 하는 트레이스로 결과 범위를 좁힐 수 있습니다.
추적 맵에서 노드를 선택하면 콘솔은 노드의 서비스 이름과 선택에 따라 나타나는 오류 유형을 기반으로 필터 표현식을 구성합니다. 성능 문제를 표시하거나 특정 요청과 관련된 트레이스를 찾으려면 콘솔에서 제공하는 표현식을 조정하거나 자체적으로 표현식을 생성합니다. X-Ray SDK로 주석을 추가하는 경우 주석 키의 존재 또는 키 값을 기준으로 필터링할 수도 있습니다.
참고
추적 맵에서 상대 시간 범위를 선택하고 노드를 선택하면 콘솔은 시간 범위를 절대 시작 및 종료 시간으로 변환합니다. 노드에 대한 트레이스가 검색 결과에 나타나도록 하고 노드가 활성 상태가 아닐 때 시간을 스캔하지 않도록 하기 위해 시간 범위에 노드가 트레이스를 보냈을 때 시간만 포함됩니다. 현재 시간에 상대적으로 검색하려는 경우 트레이스 페이지의 상대적 시간 범위로 다시 전환한 후 다시 스캔할 수 있습니다.
콘솔에서 표시할 수 있는 것보다 더 많은 결과가 계속 제공되는 경우 콘솔에서 일치한 트레이스 수와 스캔한 트레이스 수를 표시합니다. 표시된 백분율은 스캔한 선택된 시간 프레임의 백분율입니다. 결과에 나타난 일치하는 트레이스를 모두 보려면 필터 표현식의 범위를 더 좁히거나 보다 짧은 시간 범위를 선택합니다.
가장 최근 결과를 먼저 얻으려면 콘솔이 시간 범위의 끝에서 스캔을 시작하고 역방향으로 진행합니다. 트레이스 개수가 매우 많은데 결과가 거의 없는 경우 콘솔은 시간 범위를 청크로 분할하고 해당 청크를 병렬로 스캔합니다. 진행률 표시줄에서 스캔한 시간 범위 부분을 표시합니다.
![](images/console-tracescan-parallel.png)
그룹은 필터 표현식으로 정의한 추적 모음입니다. 그룹을 사용하여 추가 서비스 그래프를 생성하고 Amazon CloudWatch 지표를 제공할 수 있습니다.
그룹은 이름 또는 Amazon 리소스 이름(ARN)으로 식별되며 필터 표현식을 포함합니다. 이 서비스는 수신 트레이스를 표현식과 비교하여 그에 따라 저장합니다.
필터 표현식 검색 창 왼쪽에 있는 드롭다운 메뉴를 사용하여 그룹을 생성하고 수정할 수 있습니다.
참고
서비스가 그룹을 규정하는 데 오류가 발생하면 해당 그룹은 더 이상 수신 트레이스 처리에 포함되지 않으며 오류 지표가 기록됩니다.
그룹에 대한 자세한 정보는 그룹 구성 섹션을 참조하세요.
필터 표현식은 키워드, 유너리 또는 바이너리 연산자, 비교를 위한 값을 포함할 수 있습니다.
keyword
operator
value
다양한 유형의 키워드에 대해 다양한 연산자를 사용할 수 있습니다. 예를 들어 responsetime
은 숫자 키워드이며 숫자와 관련된 연산자를 사용하여 비교할 수 있습니다.
예 – 응답 시간이 5초를 초과한 요청
responsetime > 5
AND
및 OR
연산자를 사용하여 여러 표현식을 하나의 복합 표현식으로 결합할 수 있습니다.
예 – 총 기간이 5~8초인 요청
duration >= 5 AND
duration <= 8
단순한 키워드 및 연산자를 사용하면 트레이스 수준에서만 문제가 발견됩니다. 오류가 다운스트림에서 발생하지만 애플리케이션에 의해 처리되고 사용자에게 반환되지 않는 경우 error
검색에서는 발견되지 않습니다.
다운스트림 문제가 있는 트레이스를 찾으려면 복잡한 service()
키워드와 edge()
를 사용할 수 있습니다. 이러한 키워드를 사용하면 필터 표현식을 모든 다운스트림 노드, 단일 다운스트림 노드 또는 두 노드 간 에지에 적용할 수 있습니다. 이러한 키워드에 대한 자세한 내용은 다음 복합 키워드 섹션을 참조하십시오. 더욱 세분화하려면 id() 함수를 사용하여 서비스와 엣지를 필터링할 수 있습니다. 자세한 내용은 다음 id 함수 섹션을 참조하십시오.
부울 키워드 값은 true 또는 false입니다. 오류가 발생한 트레이스를 찾으려면 이 키워드를 사용합니다.
부울 키워드
-
ok
– 응답 상태 코드가 2XX Success. -
error
– 응답 상태 코드가 4XX Client Error. -
throttle
– 응답 상태 코드가 429 요청 과다. -
fault
– 응답 상태 코드가 5XX Server Error. -
partial
– 요청에 완료되지 않은 세그먼트가 있음. -
inferred
– 요청에 추론된 세그먼트가 있음 -
first
– 요소가 열거된 목록의 첫 번째임 -
last
– 요소가 열거된 목록의 마지막임 -
remote
– 근본 원인 개체가 원격임 -
root
– 서비스가 트레이스의 진입점 또는 루트 세그먼트임
부울 연산자는 지정된 키가 true
또는 false
인 세그먼트를 찾습니다.
부울 연산
-
none – 키워드가 true이면 표현식이 true입니다.
-
!
– 키워드가 false이면 표현식이 true입니다. -
=
,!=
– 키워드의 값을 문자열true
또는false
와 비교합니다. 이러한 연산자는 다른 연산자와 동일하게 작동하지만 보다 명시적입니다.
예 – 응답 상태가 2XX OK
ok
예 – 응답 상태가 2XX OK가 아님
!ok
예 – 응답 상태가 2XX OK가 아님
ok = false
예 – 마지막에 열거된 결함 트레이스의 오류 이름이 “deserialize”임
rootcause.fault.entity { last and name = "deserialize" }
예 – 범위가 0.7보다 크고 서비스 이름이 “traces"인 원격 세그먼트가 포함된 요청
rootcause.responsetime.entity { remote and coverage > 0.7 and name = "traces" }
예 – 서비스 유형이 "AWS:DynamonDB"인 추론 세그먼트가 포함된 요청
rootcause.fault.service { inferred and name = traces and type = "AWS::DynamoDB" }
예 – 이름이 “data-plane”인 세그먼트가 루트로 포함된 요청
service("data-plane") {root = true and fault = true}
숫자 키워드를 사용하면 특정 응답 시간, 기간 또는 응답 상태를 갖는 요청을 찾을 수 있습니다.
숫자 키워드
-
responsetime
– 서버가 응답을 전송하는 데 걸린 시간. -
duration
– 모든 다운스트림 호출을 포함한 총 요청 기간입니다. -
http.status
– 응답 상태 코드. -
index
– 열거 목록에서 요소의 위치 -
coverage
– 루트 세그먼트 응답 시간 경과에 따른 개체 응답 시간의 십진 비율 응답 시간 근본 원인 개체일 때만 사용 가능합니다.
숫자 연산자
숫자 키워드는 표준 등식 및 비교 연산자를 사용합니다.
-
=
,!=
– 이 키워드는 숫자값과 같음 또는 같지 않음입니다. -
<
,<=
,>
,>=
– 이 키워드는 숫자값보다 작음 또는 큼입니다.
예 – 응답 상태가 200 OK가 아님
http.status != 200
예 – 총 기간이 5~8초인 요청
duration >= 5 AND duration <= 8
예 – 모든 다운스트림 호출을 포함하여 3초 이내에 성공적으로 완료된 요청
ok !partial duration <3
예 – 5보다 큰 인덱스가 포함된 열거된 목록 개체
rootcause.fault.service { index > 5 }
예 – 0.8보다 큰 범위가 포함된 마지막 개체인 요청
rootcause.responsetime.entity { last and coverage > 0.8 }
문자열 키워드를 사용하면 요청 헤더 또는 특정 사용자 ID에 특정 텍스트가 포함된 트레이스를 찾을 수 있습니다.
문자열 키워드
-
http.url
– 요청 URL. -
http.method
– 요청 메서드. -
http.useragent
– 요청 사용자 에이전트 문자열. -
http.clientip
– 요청자 IP 주소. -
user
– 트레이스 내 세그먼트의 사용자 필드 값. -
name
– 서비스 또는 예외 이름 -
type
– 서비스 유형 -
message
– 예외 메시지 -
availabilityzone
– 트레이스 내 세그먼트의 availabilityzone 필드 값 -
instance.id
– 트레이스 내 세그먼트의 인스턴스 ID 필드 값 -
resource.arn
– 트레이스 내 세그먼트의 리소스 ARN 필드 값
문자열 연산자는 특정 텍스트와 같거나 이를 포함하는 값을 찾습니다. 값은 항상 인용 부호를 사용하여 지정해야 합니다.
문자열 연산자
-
=
,!=
– 이 키워드는 숫자값과 같음 또는 같지 않음입니다. -
CONTAINS
– 이 키워드는 특정 문자열을 포함합니다. -
BEGINSWITH
,ENDSWITH
– 이 키워드는 특정 문자열로 시작하거나 끝납니다.
예 – http.url 필터
http.url CONTAINS "/api/game/"
트레이스에서 값과 상관없이 특정 필드가 존재하는지 테스트하려면 필드가 빈 문자열을 포함하는지 확인합니다.
예 – 사용자 필터
사용자 ID가 있는 모든 트레이스를 찾습니다.
user CONTAINS ""
예 – “Auth”라는 이름의 서비스가 포함된 결함 근본 원인이 있는 트레이스를 선택합니다.
rootcause.fault.service { name = "Auth" }
예 – 마지막 서비스에 DynamoDB 유형이 포함된 응답 시간 근본 원인이 있는 트레이스를 선택합니다.
rootcause.responsetime.service { last and type = "AWS::DynamoDB" }
예 – 마지막 예외에 "access denied for account_id: 1234567890" 메시지가 포함된 결함 근본 원인이 있는 추적을 선택합니다.
rootcause.fault.exception { last and message = "Access Denied for account_id: 1234567890"
복합 키워드를 사용하여 서비스 이름, 엣지 이름 또는 주석 값을 기준으로 요청을 찾을 수 있습니다. 서비스 및 엣지의 경우 서비스 또는 엣지에 적용되는 추가 필터 표현식을 지정할 수 있습니다. 주석의 경우 부울, 숫자 또는 문자열 연산자를 사용하여 특정 키로 주석 값을 필터링할 수 있습니다.
복합 키워드
-
annotation.
–key
key
필드가 있는 주석의 값. 주석 값은 부울, 숫자 또는 문자열일 수 있으므로 이러한 유형의 비교 연산자를 모두 사용할 수 있습니다. 이 키워드는service
또는edge
키워드와 함께 사용할 수 있습니다. -
edge(
–source
,destination
) {filter
}source
서비스와destination
서비스 사이를 연결합니다. 선택적으로, 이 연결의 세그먼트에 적용되는 필터 표현식을 중괄호로 묶을 수 있습니다. -
group.
– 그룹 이름 또는 그룹 ARN으로 참조되는 그룹의 필터 표현식 값입니다.name
/ group.arn
-
json
– JSON 근본 원인 객체. 프로그래밍 방식으로 JSON 항목을 생성하는 단계는 AWS X-Ray에서 데이터 가져오기를 참조하십시오. -
service(
– 이름이name
) {filter
}name
인 서비스. 선택적으로, 서비스에서 생성하는 세그먼트에 적용되는 필터 표현식을 중괄호로 묶을 수 있습니다.
service 키워드를 사용하여 추적 맵의 특정 노드에 도달한 요청의 트레이스를 찾을 수 있습니다.
복합 키워드 연산자는 지정된 키가 설정되었거나 설정되지 않은 세그먼트를 찾습니다.
복합 키워드 연산자
-
none – 키워드가 설정된 경우 표현식이 true입니다. 키워드가 부울 유형인 경우 부울 값으로 평가됩니다.
-
!
– 키워드가 설정되지 않은 경우 표현식이 true입니다. 키워드가 부울 유형인 경우 부울 값으로 평가됩니다. -
=
,!=
- 키워드의 값을 비교합니다. -
edge(
–source
,destination
) {filter
}source
서비스와destination
서비스 사이를 연결합니다. 선택적으로, 이 연결의 세그먼트에 적용되는 필터 표현식을 중괄호로 묶을 수 있습니다. -
annotation.
–key
key
필드가 있는 주석의 값. 주석 값은 부울, 숫자 또는 문자열일 수 있으므로 이러한 유형의 비교 연산자를 모두 사용할 수 있습니다. 이 키워드는service
또는edge
키워드와 함께 사용할 수 있습니다. -
json
– JSON 근본 원인 객체. 프로그래밍 방식으로 JSON 항목을 생성하는 단계는 AWS X-Ray에서 데이터 가져오기를 참조하십시오.
service 키워드를 사용하여 추적 맵의 특정 노드에 도달한 요청의 트레이스를 찾을 수 있습니다.
예 – 서비스 필터
api.example.com
호출을 포함하고 오류(500 시리즈 오류)가 발생한 요청
service("api.example.com") { fault }
서비스 이름을 제외하여 필터 표현식을 서비스 맵의 모든 노드에 적용할 수 있습니다.
예 – 서비스 필터
트레이스 맵의 어느 곳에서든 장애를 일으킨 요청.
service() { fault }
에지 키워드는 필터 표현식을 두 노드 간 연결에 적용합니다.
예 – 엣지 필터
api.example.com
서비스가 backend.example.com
을 호출했으나 실패하고 오류가 발생한 요청
edge("api.example.com", "backend.example.com") { error }
또한 서비스 및 에지 키워드와 함께 !
연산자를 사용하여 다른 필터 표현식의 결과에서 서비스 또는 에지를 제외할 수 있습니다.
예 – 서비스 및 요청 필터
URL이 http://api.example.com/
으로 시작하고 /v2/
를 포함하지만 api.example.com
서비스에 연결되지 않는 요청
http.url BEGINSWITH "http://api.example.com/" AND http.url CONTAINS "/v2/" AND !service("api.example.com")
예 – 서비스 및 응답 시간 필터
http url
이 설정되어 있고 응답 시간이 2초보다 큰 트레이스를 찾습니다.
http.url AND responseTime > 2
주석의 경우 annotation.
가 설정된 모든 트레이스를 직접 호출하거나 값 유형에 해당하는 비교 연산자를 사용할 수 있습니다.key
예 – 문자열 값을 포함하는 주석
문자열 값이 gameid
인 "817DL6VO"
라는 주석이 포함된 요청
annotation.gameid = "817DL6VO"
예 – 주석이 설정되었습니다.
age
set이라는 주석이 포함된 요청.
annotation.age
예 – 주석이 설정되지 않았습니다.
age
set이라는 주석이 없는 요청.
!annotation.age
예 – 숫자 값을 포함하는 주석
주석의 수명이 숫자 값 29보다 큰 요청
annotation.age > 29
예 – 서비스 또는 엣지와 조합한 주석
service { annotation.request_id = "917DL6VO" }
edge { source.annotation.request_id = "916DL6VO" }
edge { destination.annotation.request_id = "918DL6VO" }
예 – 사용자가 있는 그룹
트레이스가 high_response_time
그룹 필터(예:responseTime > 3
)를 충족하고 사용자 이름이 Alice인 요청.
group.name = "high_response_time" AND user = "alice"
예 – 근본 원인 개체가 포함된 JSON
일치하는 근본 원인 개체가 포함된 요청
rootcause.json = #[{ "Services": [ { "Name": "GetWeatherData", "EntityPath": [{ "Name": "GetWeatherData" }, { "Name": "get_temperature" } ] }, { "Name": "GetTemperature", "EntityPath": [ { "Name": "GetTemperature" } ] } ] }
]
service
또는 edge
키워드에 서비스 이름을 제공하면 해당 이름의 모든 노드가 결과로 반환됩니다. 보다 세밀하게 필터링하려면 id
함수로 이름 외에 서비스 유형도 지정하여 이름이 같은 노드를 구별할 수 있습니다.
모니터링 계정에서 여러 계정의 트레이스를 볼 때 이 account.id
함수를 사용하여 서비스의 특정 계정을 지정합니다.
id(name: "service-name
", type:"service::type
", account.id:"account-ID
")
서비스 및 엣지 필터에 서비스 이름 대신 id
함수를 사용할 수 있습니다.
service(id(name: "service-name
", type:"service::type
")) { filter
}
edge(id(name: "service-one
", type:"service::type
"), id(name: "service-two
", type:"service::type
")) { filter
}
예를 들어, AWS Lambda 함수는 추적 맵에 두 개의 노드를 생성합니다. 하나는 함수 호출용이고 다른 하나는 Lambda 서비스용입니다. 두 노드는 이름이 같지만 유형이 다릅니다. 표준 서비스 필터는 두 노드 모두의 트레이스를 찾습니다.
예 – 서비스 필터
random-name
이라는 서비스에 대한 오류를 포함하는 요청
service("function-name") { error }
서비스로 인한 오류를 제외하고 함수 자체의 오류로 검색 범위를 좁히려면 id
함수를 사용합니다.
예 – id 함수를 사용한 서비스 필터
유형이 random-name
인 AWS::Lambda::Function
서비스의 오류를 포함하는 요청
service(id(name: "random-name", type: "AWS::Lambda::Function")) { error }
또한 이름을 완전히 제외하여 노드를 유형별로 검색할 수 있습니다.
예 – id 기능 및 서비스 유형을 포함하는 서비스 필터
유형이 AWS::Lambda::Function
인 서비스의 오류를 포함하는 요청
service(id(type: "AWS::Lambda::Function")) { error }
특정 AWS 계정노드를 검색하려면 계정 ID를 지정하십시오.
예 – id 기능 및 계정 ID를 사용한 서비스 필터
특정 계정 ID AWS::Lambda::Function
내에 서비스를 포함하는 요청.
service(id(account.id: "account-id
"))
AWS X-Ray 계정 간 관찰 기능을 지원하므로 한 계정 내 여러 계정에 걸쳐 있는 애플리케이션을 모니터링하고 문제를 해결할 수 있습니다. AWS 리전연결된 모든 계정의 지표, 로그 및 추적을 마치 하나의 계정에서 작업하는 것처럼 원활하게 검색, 시각화 및 분석할 수 있습니다. 이를 통해 여러 계정에 걸쳐 발생하는 요청을 전체적으로 볼 수 있습니다. CloudWatch콘솔의
공유된 통합 관찰성 데이터에는 다음 유형의 원격 분석이 포함될 수 있습니다.
-
아마존의 지표 CloudWatch
-
Amazon CloudWatch 로그의 로그 그룹
-
트레이스 인 AWS X-Ray
-
Amazon의 애플리케이션 CloudWatch 애플리케이션 인사이트
교차 계정 관찰성 구성
교차 계정 관찰성을 활성화하려면 하나 이상의 AWS 모니터링 계정을 설정하고 여러 소스 계정과 연결하세요. 모니터링 계정은 소스 계정에서 생성된 통합 가시성 데이터를 보고 상호 작용할 수 AWS 계정 있는 중앙 계정입니다. 소스 계정은 포함된 리소스에 대한 가시성 데이터를 생성하는 AWS 계정 개인입니다.
소스 계정은 관찰성 데이터를 모니터링 계정과 공유합니다. 트레이스는 각 소스 계정에서 최대 5개의 모니터링 계정으로 복사됩니다. 소스 계정에서 첫 번째 모니터링 계정으로의 트레이스 사본은 무료입니다. 추가 모니터링 계정으로 전송된 트레이스 사본은 표준 요금에 따라 각 소스 계정에 청구됩니다. 자세한 내용은 AWS X-Ray 요금 및 Amazon CloudWatch 가격을
모니터링 계정과 소스 계정 간에 링크를 생성하려면 CloudWatch 콘솔 또는 AWS CLI 및 API의 새로운 Observability Access Manager 명령을 사용하십시오. 자세한 내용은 CloudWatch 계정 간 옵저버빌리티를 참조하십시오.
참고
X-Ray 트레이스는 수령한 AWS 계정 곳으로 요금이 청구됩니다. 샘플링된 요청이 둘 AWS 계정이상의 서비스에 걸쳐 있는 경우 각 계정은 별도의 트레이스를 기록하고 모든 트레이스는 동일한 트레이스 ID를 공유합니다. 교차 계정 옵저버빌리티 요금에 대한 자세한 내용은 요금 및 Amazon AWS X-Ray CloudWatch
교차 계정 추적 보기
교차 계정 추적은 모니터링 계정에 표시됩니다. 각 소스 계정에는 해당 특정 계정의 로컬 트레이스만 표시됩니다. 다음 섹션에서는 모니터링 계정에 로그인하고 Amazon CloudWatch 콘솔을 열었다고 가정합니다. 추적 맵과 추적 페이지 모두에서 오른쪽 상단에 모니터링 계정 배지가 표시됩니다.
![모니터링 계정 배지](images/crossaccount-monitoring-account.png)
트레이스 맵
CloudWatch 콘솔의 왼쪽 탐색 창의 X-Ray 트레이스에서 Trace Map을 선택합니다. 기본적으로 추적 맵에는 모니터링 계정으로 추적을 보내는 모든 소스 계정의 노드와 모니터링 계정 자체의 노드가 표시됩니다. 추적 맵의 왼쪽 상단에서 필터를 선택하여 계정 드롭다운을 사용하여 추적 맵을 필터링합니다. 계정 필터가 적용되면 현재 필터와 일치하지 않는 계정의 서비스 노드는 회색으로 표시됩니다.
![필터링된 트레이스 맵](images/crossaccount-servicemap-account-filter.png)
서비스 노드를 선택하면 노드 세부정보 창에 서비스의 계정 ID와 레이블이 포함됩니다.
![노드 세부 정보 창](images/crossaccount-servicemap-node-detail.png)
추적 맵의 오른쪽 상단에서 목록 보기를 선택하여 서비스 노드 목록을 확인합니다. 서비스 노드 목록에는 모니터링 계정 및 구성된 모든 소스 계정의 서비스가 포함됩니다. 노드 필터에서 선택하여 계정 레이블 또는 계정 ID를 기준으로 노드 목록을 필터링합니다.
![필터링된 서비스 목록](images/crossaccount-servicelist-account-filter.png)
트레이스
모니터링 계정에서 CloudWatch 콘솔을 열고 왼쪽 탐색 창의 X-Ray 트레이스에서 트레이스를 선택하여 여러 계정에 걸친 트레이스의 트레이스 세부 정보를 확인합니다. X-Ray Trace Map에서 노드를 선택한 다음 노드 세부 정보 창에서 추적 보기를 선택하여 이 페이지를 열 수도 있습니다.
Traces(추적) 페이지는 계정 ID로 쿼리를 지원합니다. 시작하려면 하나 이상의 계정 ID가 포함된 쿼리를 입력합니다. 쿼리에 대한 자세한 내용은 을 참조하십시오필터 표현식 사용. 다음 예시에서는 계정 ID X 또는 Y를 통과한 트레이스를 쿼리합니다.
service(id(account.id:"
X
")) OR service(id(account.id:"Y
"))
![계정별 쿼리 추적](images/crossaccount-traces-query-by-account.png)
계정별로 쿼리를 구체화하세요. 목록에서 하나 이상의 계정을 선택하고 Add to query(쿼리에 추가)를 선택합니다.
![계정별로 추적 쿼리를 세분화하세요.](images/crossaccount-traces-refine-by-account.png)
트레이스 세부 정보
트레이스 페이지 하단의 트레이스 목록에서 트레이스를 선택하여 트레이스의 세부 정보를 볼 수 있습니다. 트레이스가 통과한 모든 계정의 서비스 노드가 포함된 트레이스 세부 정보 맵을 포함한 트레이스 세부 정보가 표시됩니다. 특정 서비스 노드를 선택하면 해당 계정을 확인할 수 있습니다.
세그먼트 타임라인 섹션에는 타임라인의 각 세그먼트에 대한 계정 세부 정보가 표시됩니다.
![세그먼트 타임라인](images/crossaccount-traces-segment-timeline.png)
AWS X-Ray Amazon SQS 및 를 사용하는 이벤트 기반 애플리케이션 추적을 지원합니다. AWS Lambda CloudWatch 콘솔을 사용하면 Amazon SQS로 대기하고 하나 이상의 Lambda 함수로 처리되는 각 요청의 연결된 보기를 볼 수 있습니다. 업스트림 메시지 생산자의 트레이스는 다운스트림 Lambda 소비자 노드의 트레이스에 자동으로 연결되어 애플리케이션 뷰를 생성합니다. end-to-end
참고
각 추적 세그먼트는 최대 20개의 추적에 연결할 수 있으며, 추적에는 최대 100개의 링크가 포함될 수 있습니다. 특정 시나리오에서 추가 추적을 연결하면 최대 추적 문서 크기를 초과하여 잠재적으로 불완전한 추적을 초래할 수 있습니다. 예를 들어 추적이 활성화된 Lambda 함수가 한 번의 간접 호출로 많은 SQS 메시지를 대기열에 전송하는 경우 이런 일이 발생할 수 있습니다. 이 문제가 발생하는 경우 X-Ray SDK를 사용하는 완화 방법을 사용할 수 있습니다. 자세한 내용은 자바
추적 맵에서 연결된 추적 보기
CloudWatch콘솔
![Amazon SQS와 Lambda 노드 사이의 엣지](images/console-batch-servicemap-linkededge.png)
점선 엣지를 선택하면 수신된 이벤트 기간 히스토그램을 표시합니다. 이 히스토그램은 소비자가 수신한 이벤트 기간의 분포를 매핑합니다. 기간은 이벤트가 수신될 때마다 계산됩니다.
![수신된 이벤트 기간 히스토그램의 엣지.](images/console-servicemap-linkededgedetails-cw.png)
연결된 추적 세부 정보 보기
메시지 생산자, Amazon SQS 대기열 또는 람다 소비자로부터 전송된 추적 세부 정보를 확인합니다:
-
추적 맵을 사용하여 메시지 생산자, Amazon SQS 또는 Lambda 소비자 노드를 선택합니다.
-
노드 세부 정보 창에서 추적 보기를 선택하여 추적 목록을 표시합니다. 콘솔 내에서 Traces 페이지로 직접 이동할 수도 있습니다. CloudWatch
-
목록에서 특정 추적을 선택하면 추적 세부정보 페이지가 열립니다. 선택한 추적이 연결된 추적 집합의 일부인 경우 추적 세부정보 페이지에 메시지가 표시됩니다.
추적 세부 정보 맵에는 업스트림 및 다운스트림 연결 추적과 함께 현재 트레이스가 표시되며, 각 트레이스는 각 트레이스의 범위를 나타내는 상자 안에 들어 있습니다. 현재 선택된 트레이스가 여러 업스트림 또는 다운스트림 트레이스에 연결되어 있는 경우, 연결된 업스트림 또는 다운스트림 트레이스 내의 노드가 스택되고 트레이스 선택 버튼이 표시됩니다.
![여러 개의 연결된 업스트림 트레이스](images/console-batch-tracedetails-tracemap.png)
트레이스 세부 정보 맵 아래에는 업스트림 및 다운스트림 연결 트레이스를 포함한 트레이스 세그먼트의 타임라인이 표시됩니다. 업스트림 또는 다운스트림에 연결된 트레이스가 여러 개 있는 경우 해당 세그먼트 세부 정보를 표시할 수 없습니다. 연결된 트레이스 세트 내 단일 트레이스의 세그먼트 세부 정보를 보려면 다음 섹션에 설명된 대로 트레이스 하나를 선택하십시오.
![연결된 트레이스를 보여주는 세그먼트 타임라인](images/console-batch-tracedetails-timeline.png)
연결된 트레이스 세트 내에서 단일 트레이스 선택하기
연결된 트레이스 세트를 단일 트레이스에 필터링하여 타임라인에서 세그먼트 세부 정보를 확인할 수 있습니다.
-
트레이스 세부 정보 맵에서 연결된 트레이스 아래에 있는 트레이스 선택을 선택합니다. 추적 목록이 표시됩니다.
-
트레이스 옆의 라디오 버튼을 선택하면 트레이스 세부 정보 맵 내에서 트레이스를 볼 수 있습니다.
-
연결된 트레이스의 전체 세트를 보려면 트레이스 선택 취소를 선택합니다.
추적 맵에서 노드나 에지를 선택하면 X-Ray 콘솔에 지연 시간 분포 히스토그램이 표시됩니다.
지연 시간
지연 시간은 요청 시작에서 요청 완료까지의 시간입니다. 히스토그램은 지연 시간의 분포를 보여줍니다. x축에는 기간이 표시되고, y축에는 각 기간에 해당하는 요청의 비율이 표시됩니다.
이 히스토그램은 300ms 미만에 요청이 대부분 완료되는 서비스를 보여줍니다. 소수의 요청이 최대 2초까지 걸리며, 몇몇 특이값은 이보다 오래 걸립니다.
![x축에 기간이 표시되고 y축에 각 기간에 해당하는 요청의 비율이 표시되는 지연 시간 히스토그램](images/scorekeep-servicemap-histogram.png)
서비스 세부 정보 해석
서비스 히스토그램과 에지 히스토그램은 서비스 또는 요청자의 관점에서 지연 시간을 시각적으로 표현합니다.
-
원을 클릭하여 서비스 노드를 선택합니다. X-Ray는 서비스에서 처리한 요청에 대한 히스토그램을 보여줍니다. 지연 시간은 서비스에 의해 기록된 것이며 서비스와 요청자 간 네트워크 지연 시간은 포함하지 않습니다.
-
두 서비스 간 가장자리의 선이나 화살표 끝을 클릭하여 엣지를 선택합니다. X-Ray는 다운스트림 서비스에서 처리한 요청자의 요청에 대한 히스토그램을 보여줍니다. 지연 시간은 요청자에 의해 기록된 것이며 두 서비스 간 네트워크 연결 지연 시간을 포함합니다.
[Service details] 패널 히스토그램을 해석하려면 히스토그램에서 대부분의 값과 다른 값을 찾아야 합니다. 이러한 특이값은 히스토그램에서 피크 또는 스파이크로 보일 수 있으며, 현재 상황을 조사하기 위해 특정 영역의 트레이스를 볼 수 있습니다.
지연 시간을 기준으로 필터링된 트레이스를 보려면 히스토그램에서 범위를 선택합니다. 선택을 시작하려는 지점을 클릭하고 왼쪽에서 오른쪽으로 끌어 트레이스 필터에 포함시킬 지연 시간 범위를 강조 표시합니다.
![시작하려는 지점을 클릭하고 왼쪽에서 오른쪽으로 끌어 트레이스 필터용 범위를 생성하여 트레이스를 볼 범위를 선택](images/scorekeep-servicemap-servicedetails-selection.png)
범위를 선택한 후 [Zoom]를 선택하여 히스토그램의 해당 부분만 보고 선택을 미세 조정할 수 있습니다.
![히스토그램에서 선택된 범위를 보려면 Zoom(확대/축소)을 선택](images/scorekeep-servicemap-servicedetails-zoom.png)
보려는 영역에 초점을 맞췄으면 [View traces]를 선택합니다.
AWS X-Ray 계정의 추적 데이터를 지속적으로 분석하여 애플리케이션에서 발생하는 긴급 문제를 식별합니다. 결함률이 예상 범위를 초과하면 문제를 기록하고 문제가 해결될 때까지 그 영향을 추적하는 인사이트를 생성합니다. Insights를 사용하면 다음을 수행할 수 있습니다.
-
애플리케이션에서 문제가 발생하는 위치, 문제의 근본 원인 및 관련 영향을 파악합니다. Insights에서 제공하는 영향 분석을 통해 문제의 심각도와 우선순위를 도출할 수 있습니다.
-
시간이 지남에 따라 문제가 변경될 때마다 알림을 받습니다. EventBridgeAmazon을 사용하여 Insights 알림을 모니터링 및 경고 솔루션과 통합할 수 있습니다. 이 통합 기능을 사용하면 문제의 심각도에 따라 자동화된 이메일 또는 알림을 보낼 수 있습니다.
X-Ray 콘솔은 추적 맵에서 진행 중인 사고가 있는 노드를 식별합니다. 인사이트 요약을 보려면 해당 노드를 선택하십시오. 왼쪽 탐색 창에서 Insights를 선택하여 Insights를 보고 필터링할 수도 있습니다.
![인사이트 요약이 포함된 트레이스 맵 노드.](images/console-insights-servicemap.png)
X-Ray는 서비스 맵에서 하나 이상의 노드에서 이상을 감지할 때 인사이트를 제공합니다. 이 서비스는 통계적 모델링을 사용하여 애플리케이션에서 예상되는 서비스 장애율을 예측합니다. 위 예제에서 이상 현상은 의 결함 증가입니다. AWS Elastic Beanstalk Elastic Beanstalk 서버에서 여러 번의 API 직접 호출 시간 초과 현상이 발생하여 다운스트림 노드에 이상 징후가 발생했습니다.
X-Ray 콘솔에서 인사이트 활성화
인사이트 기능을 사용하려는 각 그룹에서 인사이트를 활성화해야 합니다. 그룹 페이지에서 인사이트를 활성화할 수 있습니다.
참고
X-Ray는 GetInsightSummaries GetInsight, GetInsightEvents, 및 GetInsightImpactGraph API 작업을 사용하여 인사이트로부터 데이터를 검색합니다. 통찰력을 보려면 AWSXrayReadOnlyAccess IAM 관리형 정책을 사용하거나 IAM 역할에 다음 사용자 지정 정책을 추가하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:GetInsightSummaries", "xray:GetInsight", "xray:GetInsightEvents", "xray:GetInsightImpactGraph" ], "Resource": [ "*" ] } ] }
자세한 정보는 AWS X-Ray IAM과의 작동 방식을 참조하세요.
인사이트 알림 활성화
인사이트 알림을 사용하면 인사이트가 생성되거나, 크게 변경되거나, 종료된 시점과 같은 각 인사이트 이벤트에 대해 알림이 생성됩니다. 고객은 Amazon EventBridge 이벤트를 통해 이러한 알림을 수신하고 조건부 규칙을 사용하여 SNS 알림, Lambda 호출, SQS 대기열에 메시지 게시 또는 대상 지원 등의 조치를 취할 수 있습니다. EventBridge 인사이트 알림은 최선의 노력을 다해 발송되지만 반드시 발송된다는 보장은 없습니다. 대상에 대한 자세한 내용은 Amazon EventBridge 대상을 참조하십시오.
그룹 페이지에서 인사이트가 활성화된 모든 그룹에 대해 인사이트 알림을 활성화할 수 있습니다.
X-Ray 그룹에 대한 알림을 활성화하려면
Amazon EventBridge 조건부 규칙을 구성하려면
-
왼쪽 탐색 표시줄의 규칙으로 이동하여 규칙 생성을 선택합니다.
-
규칙의 이름 및 설명을 입력합니다.
-
이벤트 패턴을 선택한 다음 사용자 지정 패턴을 선택합니다.
"source": [ "aws.xray" ]
및"detail-type": [ "AWS X-Ray Insight Update" ]
를 포함하는 패턴을 제공하십시오. 다음은 가능한 패턴의 몇 가지 예입니다.-
X-Ray 인사이트에서 들어오는 모든 이벤트와 일치하는 이벤트 패턴:
{ "source": [ "aws.xray" ], "detail-type": [ "AWS X-Ray Insight Update" ] }
-
지정된
state
및category
와 일치하는 이벤트 패턴:{ "source": [ "aws.xray" ], "detail-type": [ "AWS X-Ray Insight Update" ], "detail": { "State": [
"ACTIVE"
], "Category": ["FAULT"
] } }
-
-
이벤트가 이 규칙과 일치할 때 간접 호출할 대상을 선택하고 구성합니다.
-
(선택 사항) 이 규칙을 더 쉽게 식별하고 선택할 수 있도록 태그를 입력합니다.
-
생성을 선택합니다.
참고
X-Ray Insights 알림은 현재 고객 관리 키를 지원하지 않는 EventBridge Amazon으로 이벤트를 전송합니다. 자세한 정보는 AWS X-Ray의 데이터 보호을 참조하세요.
인사이트 개요
인사이트 개요 페이지에서는 세 가지 주요 질문에 대한 답변을 제시합니다:
-
근본적인 문제는 무엇인가요?
-
근본 원인은 무엇인가요?
-
어떤 영향이 있나요?
Anomalous Services 섹션에는 인시던트 중 결함률의 변화를 보여주는 각 서비스에 대한 타임라인이 표시됩니다. 타임라인에는 결함이 있는 추적의 개수와 기록된 트래픽 양에 따라 예상되는 결함 수를 나타내는 실선 밴드가 겹쳐져 표시됩니다. 인사이트 지속 시간은 인시던트 윈도우에 시각화되어 표시됩니다. 인시던트 윈도우는 X-Ray에서 지표가 비정상적으로 변하는 것을 관찰할 때 시작되며 인사이트가 활성화되어 있는 동안 지속됩니다.
다음 예는 인시던트를 발생시킨 결함의 증가를 보여줍니다:
![X-Ray 인사이트 개요 페이지](images/console-insights-overview.png)
근본 원인 섹션에는 근본 원인 서비스 및 영향을 받는 경로에 초점을 맞춘 추적 맵이 표시됩니다. 근본 원인 맵의 오른쪽 상단에 있는 눈 아이콘을 선택하면 영향을 받지 않은 노드를 숨길 수 있습니다. 근본 원인 서비스는 X-Ray가 이상 징후를 식별한 가장 멀리 위치한 다운스트림 노드입니다. 이는 사용자가 계측한 서비스 또는 서비스가 계측된 클라이언트로 호출한 외부 서비스를 나타낼 수 있습니다. 예를 들어 AWS 계측된 SDK 클라이언트를 사용하여 Amazon DynamoDB를 호출하는 경우 DynamoDB의 장애가 증가하면 DynamoDB를 근본 원인으로 파악하게 됩니다.
근본 원인을 자세히 조사하려면 근본 원인 그래프에서 근본 원인 세부 정보 보기를 선택하십시오. 분석 페이지를 사용하여 근본 원인 및 관련 메시지를 조사할 수 있습니다. 자세한 정보는 애널리틱스 콘솔과 상호 작용하세요.을 참조하세요.
![X-Ray 인사이트 개요 페이지](images/console-insights-root-cause.png)
맵의 업스트림에서 계속해서 발생하는 오류는 여러 노드에 영향을 미치고 여러 이상 징후를 유발할 수 있습니다. 오류가 요청을 한 사용자에게까지 전달되면클라이언트 오류가 발생하게 됩니다. 이는 추적 맵의 루트 노드에 발생한 결함입니다. 영향 그래프는 전체 그룹에 대한 클라이언트 경험의 타임라인을 제공합니다. 이 경험은 장애, 오류, 스로틀, 정상 상태의 백분율을 기반으로 계산됩니다.
![X-Ray 인시던트에 대한 영향 그래프.](images/console-insights-impact.png)
이 예는 인시던트 발생 시간 동안 루트 노드에서 결함이 발생하여 트레이스가 증가한 것을 보여줍니다. 다운스트림 서비스의 인시던트가 항상 클라이언트 오류의 증가와 일치하는 것은 아닙니다.
인사이트 분석을 선택하면 인사이트의 원인이 되는 일련의 트레이스에 대해 자세히 살펴볼 수 있는 X-Ray 분석 콘솔이 창에 열립니다. 자세한 정보는 애널리틱스 콘솔과 상호 작용하세요.을 참조하세요.
영향력 이해하기
AWS X-Ray 인사이트 및 알림 생성의 일환으로 진행 중인 문제로 인한 영향을 측정합니다. 영향력은 두 가지 방법으로 측정됩니다:
-
X-Ray 그룹에 미치는 영향. 자세한 내용은 그룹 구성을 참조하십시오.
-
근본 원인 서비스에 미치는 영향
이 영향력은 지정된 기간 내에 실패하거나 오류를 일으키는 요청의 비율에 따라 결정됩니다. 이 영향력 분석을 통해 특정 시나리오를 기반으로 문제의 심각도와 우선 순위를 도출할 수 있습니다. 이 영향력은 인사이트 알림 외에도 콘솔 환경의 일부로 제공됩니다.
중복 제거
AWS X-Ray 인사이트는 여러 마이크로서비스 전반의 중복 문제를 제거합니다. 이상 징후 탐색을 사용하여 문제의 근본 원인이 되는 서비스를 파악하고, 동일한 근본 원인으로 인해 다른 관련 서비스에서 이상 행동을 보이는지 확인하고, 그 결과를 하나의 인사이트로 기록합니다.
인사이트 진행 상황 검토
X-Ray는 인사이트가 해결될 때까지 주기적으로 재평가하고, 각 주목할 만한 중간 변경 사항을 알림으로 기록하여 Amazon 이벤트로 전송할 수 있습니다. EventBridge 이를 통해 프로세스와 워크플로를 구축하여 시간이 지남에 따라 문제가 어떻게 변했는지 파악하고 이메일을 보내거나 를 사용하여 경고 시스템과 통합하는 등의 적절한 조치를 취할 수 있습니다. EventBridge
검사 페이지의 영향 타임라인에서 인시던트 이벤트를 검토할 수 있습니다. 다른 서비스를 선택할 때까지 타임라인에는 기본값으로 가장 영향을 많이 받는 서비스가 표시됩니다.
![영향력 타임라인이 있는 페이지를 살펴보세요.](images/console-insights-inspect.png)
이벤트에 대한 추적 맵과 그래프를 보려면 영향 타임라인에서 이벤트를 선택하십시오. 트레이스 맵은 인시던트의 영향을 받는 애플리케이션 내 서비스를 보여줍니다. 영향 분석은 선택한 노드와 그룹 내 클라이언트의 장애 타임라인을 그래프로 표시합니다.
![X-Ray 인사이트에 대한 영향 분석 그래프.](images/console-insights-inspect-analysis.png)
인시던트와 관련된 트레이스를 더 자세히 살펴보려면 검사 페이지에서 이벤트 분석을 선택하십시오. 분석 페이지를 사용하여 추적 목록을 세분화하고 영향을 받는 사용자를 식별할 수 있습니다. 자세한 정보는 애널리틱스 콘솔과 상호 작용하세요.을 참조하세요.
AWS X-Ray Analytics 콘솔은 추적 데이터를 해석하여 애플리케이션과 기본 서비스가 어떻게 작동하는지 빠르게 이해할 수 있는 대화형 도구입니다. 콘솔에서는 대화형 응답 시간 및 시계열 그래프를 통해 트레이스를 탐색, 분석 및 시각화할 수 있습니다.
분석 콘솔에서 선택하면 콘솔이 선택한 트레이스의 하위 집합까지 반영하여 필터를 생성합니다. 현재 트레이스 집합과 연결된 지표 및 필드의 그래프와 패널을 클릭하면 더욱 세부적인 필터로 활성 데이터 세트를 구체화할 수 있습니다.
X-Ray 분석 콘솔은 다음과 같이 트레이스 데이터의 그룹화, 필터링, 비교 및 정량화 같은 주요 기능을 사용합니다.
특성
기능 | 설명 |
---|---|
그룹 |
처음에 선택되는 그룹은 |
Retrieved traces(검색된 트레이스) |
기본적으로 분석 콘솔은 선택된 그룹 내 모든 트레이스를 기준으로 그래프를 생성합니다. 검색된 트레이스란 유효 집합에 속한 모든 트레이스를 의미합니다. 트레이스 수는 현재 타일에서 찾을 수 있습니다. 메인 검색창에 적용하는 필터 표현식이 검색된 트레이스를 구체화하여 업데이트합니다. |
Show in charts/Hide from charts(차트에 표시/차트에서 숨기기) |
활성 그룹을 검색된 트레이스와 비교할 수 있는 토글입니다. 그룹 관련 데이터를 활성 필터와 비교하려면 Show in charts(차트에 표시)를 선택합니다. 현재 뷰를 차트에서 제거하려면 Hide from charts(차트에서 숨기기)를 선택합니다. |
Filtered trace set A(필터링된 트레이스 집합 A) |
그래프 및 표와의 상호 작용을 통해 필터를 적용하여 필터링된 추적 세트 A의 기준을 생성합니다. 필터가 적용되면 이 타일 내에서 적용 가능한 추적의 수와 검색된 전체에서 차지하는 추적의 비율이 계산됩니다. 필터가 Filtered trace set A(필터링된 추적 집합 A) 타일 내에서 태그로 채워지며, 타일에서 필터를 제거할 수도 있습니다. |
Refine(구체화) |
이 기능은 검색된 추적 집합을 추적 집합 A에 적용되는 필터를 기준으로 업데이트합니다. 검색된 추적 집합을 구체화하면 추적 집합 A의 필터를 기준으로 검색된 모든 추적의 유효 집합이 새로 고쳐집니다. 검색된 추적의 유효 집합이란 그룹에 속한 모든 추적의 하위 집합 샘플을 말합니다. |
Filtered trace set B(필터링된 트레이스 집합 B) |
필터링된 추적 세트 B가 생성되면 필터링된 추적 세트 A의 복사본이 됩니다. 두 추적 세트를 비교하려면 추적 세트 A는 고정된 상태로 유지하면서 추적 세트 B에 적용할 새 필터를 선택합니다. 필터가 적용되면 사용 가능한 트레이스 수와 검색된 트레이스의 전체 대비 비율이 현재 타일 내에서 계산됩니다. 필터가 Filtered trace set B(필터링된 추적 집합 B) 타일 내에서 태그로 채워지며, 타일에서 필터를 제거할 수도 있습니다. |
Response Time Root Cause Entity Paths(응답 시간 근본 원인 개체 경로) |
기록된 개체 경로의 테이블입니다. X-Ray는 트레이스에서 응답 시간 원인으로 가장 가능성이 높은 경로가 무엇인지 결정합니다. 포맷은 발생하는 개체 계층 구조를 나타내며, 응답 시간 근본 원인으로 끝납니다. 이러한 계층 구조의 행을 사용해 반복되는 응답 시간 결함을 필터링합니다. 근본 원인 필터를 사용자 지정하고 API를 통해 데이터를 가져오는 방법에 대한 자세한 내용은 의 근본 원인 분석 검색 및 구체화 섹션을 참조하십시오. X-Ray에서 데이터 가져오기 |
델타(�) |
추적 집합 A와 추적 집합 B가 모두 활성 상태일 때 지표 테이블에 추가되는 열입니다. 델타 열은 추적 집합 A와 추적 집합 B의 추적 비율 차이를 계산합니다. |
분석 콘솔은 기본적으로 두 가지 그래프인 Response Time Distribution(응답 시간 분포)와 Time Series Activity(시계열 활동)을 생성하여 트레이스를 시각화합니다. 이번 섹션과 다음 섹션에서는 각 그래프의 예를 살펴보고 그래프를 읽는 기본적인 방법에 대해서 살펴보겠습니다.
다음은 응답 시간 선 그래프와 연결되는 색상을 나타낸 것입니다(시계열 그래프는 동일한 색상 체계를 사용함).
-
All traces in the group(그룹 내 모든 트레이스 – 회색
-
Retrieved traces(검색된 트레이스) – 주황색
-
Filtered trace set A(필터링된 트레이스 집합 A) – 녹색
-
Filtered trace set B(필터링된 트레이스 집합 B) – 파란색
예 – 응답 시간 분포
응답 시간 분포란 임의 응답 시간을 갖는 트레이스 수를 나타낸 차트를 말합니다. 응답 시간 분포 내에서 선택하려면 클릭하여 끌어오면 됩니다. 그러면 특정 응답 시간에 속하는 모든 트레이스를 대상으로 responseTime
이라고 하는 유효 트레이스 집합에 필터가 선택 및 생성됩니다.
![트레이스의 응답 시간 분포를 보여주는 차트입니다.](images/analytics-responseTime.png)
시계열 활동 차트에는 특정 시간의 범위에 속하는 트레이스 수가 표시됩니다. 색상 표시기에는 응답 시간 분포의 선 그래프 색상이 그대로 반영됩니다. 연속된 활동 내에서 색상 블록이 더욱 어둡고 진할수록 해당 시간에 트레이스가 더욱 많다는 것을 의미합니다.
예 – 시계열 활동
시계열 활동 그래프 내에서 선택하려면 클릭하고 드래그하면 됩니다. 그러면 특정 시간 범위에 속하는 모든 트레이스를 대상으로 유효 트레이스 집합에 timerange
이라고 하는 필터가 선택 및 생성됩니다.
![필터 선택 및 생성](images/analytics-timeSeries.png)
다음은 X-Ray 분석 콘솔의 공통 사용 사례를 나타낸 예시입니다. 각 예시는 콘솔 환경의 주요 기능을 설명하고 있습니다. 또한 그룹으로서 기본적인 문제 해결 워크플로우를 따릅니다. 이 단계에서는 비정상 노드를 먼저 찾아낸 다음 Analytics 콘솔과 상호 작용하여 비교 쿼리를 자동으로 생성하는 방법을 안내합니다. 쿼리를 통해 범위를 좁혔으면 마지막으로 관심 있는 추적을 자세히 살펴보고 서비스 상태를 저하시키는 것이 무엇인지 파악합니다.
추적 맵은 오류 및 장애에 대한 성공적인 호출의 비율을 기준으로 색상을 지정하여 각 노드의 상태를 나타냅니다. 노드에서 빨간색 비율은 결함을 의미합니다. 이때는 X-Ray 분석 콘솔을 사용해 조사하십시오.
추적 맵을 읽는 방법에 대한 자세한 내용은 X-Ray 추적 맵 사용을 참조하십시오.
![결함 관찰](images/scorekeep-gettingstarted-servicemap-before-2021.png)
응답 시간 분포를 사용해 응답 시간 피크를 관찰할 수 있습니다. 응답 시간 피크를 선택하면 그래프 아래 테이블이 업데이트되면서 상태 코드 등 연결된 지표가 모두 표시됩니다.
클릭하고 끌면 X-Ray에서 필터를 선택하고 생성합니다. 그래프의 선 위에 회색 그림자로 표시됩니다. 이제 해당 그림자를 분포 그래프를 따라 왼쪽 또는 오른쪽으로 끌어서 선택 항목과 필터를 업데이트할 수 있습니다.
![필터 선택 및 생성](images/analytics-showFilterf.png)
그래프 아래 지표 테이블을 사용해 선택한 피크 범위에 속하는 트레이스를 자세하게 살펴볼 수 있습니다. HTTP STATUS CODE 테이블에서 행을 클릭하면 유효한 데이터 세트에 필터가 자동으로 생성됩니다. 예를 들어 상태 코드가 500인 트레이스를 모두 볼 수 있습니다. 동시에 트레이스 집합 타일에 http.status
라는 이름으로 필터 태그가 생성됩니다.
사용자, URL, 응답 시간 근본 원인 또는 기타 사전 설정된 속성을 기준으로 오류 집합을 자세하게 살펴봅니다. 예를 들어 상태 코드가 500인 트레이스 집합을 추가로 필터링한다고 가정할 경우, 먼저 USERS 테이블에서 행을 선택합니다. 그러면 트레이스 집합 타일에 앞서 지정했던 http.status
와 user
까지 필터 태그 2개가 생성됩니다.
다양한 사용자와 사용자의 POST 요청을 비교하여 불일치 및 상관관계를 찾습니다. 첫 번째 필터 집합을 적용합니다. 이 집합은 응답 시간 분포 그래프에서 파란색 선으로 정의됩니다. 그런 다음 비교를 선택합니다. 그러면 처음에는 트레이스 집합 A에 필터 복사본이 생성됩니다.
계속 하려면 트레이스 집합 B에 적용할 필터 집합을 새로 정의합니다. 두 번째 집합은 녹색 선으로 표시됩니다. 아래 예에서는 파란색 및 녹색 체계에 따라 다른 선으로 표시되어 있습니다.
![선 그래프 비교](images/analytics-compareLines.png)
콘솔 필터를 사용해 범위를 좁히면 지표 테이블 아래 트레이스 목록이 더 의미있게 바뀝니다. 추적 목록 테이블은 URL, USER 및 STATUS CODE에 대한 정보를 결합하여 단일 뷰로 표시합니다. 더 많은 세부 정보를 원한다면 테이블에서 행을 선택하여 트레이스 세부 정보 페이지를 열고 타임라인과 원시 데이터를 확인합니다.
그룹은 필터 표현식으로 정의한 추적 모음입니다. 그룹을 사용하여 추가 서비스 그래프를 생성하고 Amazon CloudWatch 지표를 제공할 수 있습니다. AWS X-Ray 콘솔 또는 X-Ray API를 사용하여 서비스에 대한 그룹을 만들고 관리할 수 있습니다. 이 항목에서는 X-Ray 콘솔을 사용하여 그룹을 만들고 관리하는 방법에 대해 설명합니다. X-Ray API를 사용하여 그룹을 관리하는 방법에 대한 자세한 내용은 X-Ray API를 사용하여 샘플링, 그룹 및 암호화 설정 구성을 참조하십시오.
트레이스 맵, 트레이스 또는 분석을 위한 트레이스 그룹을 생성할 수 있습니다. 그룹을 생성하면 트레이스 맵, 트레이스, 애널리틱스의 세 페이지 모두에 있는 그룹 드롭다운 메뉴에서 해당 그룹을 필터로 사용할 수 있습니다.
![그룹 메뉴](images/group-menu.png)
그룹은 이름 또는 Amazon 리소스 이름(ARN)으로 식별되며 필터 표현식을 포함합니다. 이 서비스는 수신 트레이스를 표현식과 비교하여 그에 따라 저장합니다. 필터 표현식을 작성하는 방법에 대한 자세한 내용은 필터 표현식 사용을 참조하십시오.
그룹의 필터 표현식을 업데이트해도 이미 기록한 데이터는 변경되지 않습니다. 업데이트는 후속 추적에만 적용됩니다. 이렇게 하면 새 표현식과 이전 표현식의 그래프를 병합할 수 있습니다. 이를 방지하려면 현재 그룹을 삭제하고 새로 만드십시오.
참고
그룹은 필터 표현식과 일치하는 검색 완료 트레이스의 수로 청구됩니다. 자세한 내용은 AWS X-Ray 요금
그룹 생성
참고
이제 Amazon CloudWatch 콘솔 내에서 X-Ray 그룹을 구성할 수 있습니다. X-Ray 콘솔을 계속 사용할 수도 있습니다.
그룹 적용
그룹 편집
그룹 복제
그룹을 복제하면 기존 그룹의 필터 표현식과 태그가 포함된 새 그룹이 생성됩니다. 그룹을 복제하면 새 그룹은 해당 그룹이 복제된 그룹과 이름이 같으며 이름 뒤에 -clone
이 추가됩니다.
그룹 삭제
이 섹션의 단계를 따르면 그룹을 삭제할 수 있습니다. 기본 그룹은 삭제할 수 없습니다.
Amazon에서 그룹 지표 보기 CloudWatch
그룹이 생성된 후 수신 추적은 X-Ray 서비스에 저장될 때 그룹의 필터 표현식에 대해 확인됩니다. 각 기준과 일치하는 트레이스 수에 대한 지표는 CloudWatch 1분마다 Amazon에 게시됩니다. 그룹 편집 페이지에서 지표 보기를 선택하면 CloudWatch 콘솔에서 지표 페이지가 열립니다. CloudWatch 메트릭을 사용하는 방법에 대한 자세한 내용은 Amazon 사용 CloudWatch 설명서의 Amazon CloudWatch 메트릭스 사용을 참조하십시오.
AWS X-Ray 콘솔을 사용하여 서비스의 샘플링 규칙을 구성할 수 있습니다. 샘플링 구성을 통한 능동적 추적을 AWS 서비스 지원하는 X-Ray SDK는 샘플링 규칙을 사용하여 기록할 요청을 결정합니다.
샘플링 규칙을 구성합니다.
다음 사용 사례에 대한 샘플링을 구성할 수 있습니다.
-
API 게이트웨이 진입점 — API 게이트웨이는 샘플링 및 활성 추적을 지원합니다. API 단계에서 적극 추적을 활성화하려면 Amazon API Gateway 액티브 트레이싱 지원 대상 AWS X-Ray 단원을 참조하십시오.
-
AWS AppSync— 샘플링 및 활성 추적을 AWS AppSync 지원합니다. AWS AppSync 요청에 대한 활성 추적을 활성화하려면 AWS X-Ray를 사용한 추적을 참조하십시오.
-
컴퓨팅 플랫폼 기반 인스트루먼트 X-Ray SDK — Amazon EC2, Amazon ECS AWS Elastic Beanstalk또는 같은 컴퓨팅 플랫폼을 사용하는 경우 애플리케이션이 최신 X-Ray SDK로 계측된 경우 샘플링이 지원됩니다.
샘플링 규칙 사용자 정의
샘플링 규칙을 사용자 지정하여 기록하는 데이터의 양을 제어할 수 있습니다. 코드를 수정하거나 다시 배포하지 않고도 샘플링 동작을 수정할 수도 있습니다. 샘플링 규칙은 X-Ray SDK에 기준 세트에 대해 얼마나 많은 요청을 기록할지 알려줍니다. 기본적으로 X-Ray SDK는 1초가 시작될 때 수신된 첫 번째 요청과 모든 추가 요청의 5% 를 기록합니다. 초당 하나의 요청은 리저버입니다. 이는 서비스가 요청을 처리 중인 동안 하나 이상의 트레이스가 매초 기록되도록 합니다. 5퍼센트는 리저버 크기를 넘는 추가 요청이 샘플링되는 비율입니다.
코드에 포함시키는 JSON 문서에서 샘플링 규칙을 읽도록 X-Ray SDK를 구성할 수 있습니다. 그러나 여러 서비스 인스턴스를 실행할 때 각 인스턴스는 독립적으로 샘플링을 수행합니다. 이로 인해 샘플링되는 요청의 전체 백분율이 증가합니다. 모든 인스턴스의 리저버가 함께 효과적으로 추가되기 때문입니다. 또한 로컬 샘플링 규칙을 업데이트하려면 코드를 다시 배포해야 합니다.
X-Ray 콘솔에서 샘플링 규칙을 정의하고 X-Ray 서비스에서 규칙을 읽도록 SDK를 구성하면 이러한 문제를 모두 피할 수 있습니다. 서비스는 각 규칙의 리저버를 관리하고, 서비스의 각 인스턴스에 할당량을 할당하여 실행 중인 인스턴스의 수에 따라 리저버를 고르게 배포합니다. 리저버 제한은 설정한 규칙에 따라 계산됩니다. 그리고 규칙이 서비스에 구성되어 있기 때문에 추가로 배포하지 않고도 규칙을 관리할 수 있습니다. AWS SDK에 대한 자세한 내용은 SDK 사용을 참조하십시오.
참고
X-Ray는 샘플링 규칙을 적용할 때 최선의 방법을 사용하며, 경우에 따라 유효 샘플링 속도가 구성된 샘플링 규칙과 정확히 일치하지 않을 수 있습니다. 하지만 시간이 지나면서 샘플링된 요청 수는 구성된 비율에 가까워야 합니다.
이제 Amazon CloudWatch 콘솔 내에서 X-Ray 샘플링 규칙을 구성할 수 있습니다. X-Ray 콘솔을 계속 사용할 수도 있습니다.
샘플링 규칙 옵션
다음과 같은 옵션을 각 규칙에 사용할 수 있습니다. 문자열 값은 와일드카드를 사용하여 단일 문자(?
) 또는 0개 이상의 문자(*
)와 일치시킬 수 있습니다.
샘플링 규칙 옵션
-
규칙 이름(문자열) - 규칙의 고유한 이름입니다.
-
우선 순위(1~9999 사이의 정수) - 샘플링 규칙의 우선 순위입니다. 서비스에서 규칙의 우선 순위를 오름차순으로 평가하며 일치하는 첫 번째 규칙으로 샘플링을 결정합니다.
-
리저버 (음수가 아닌 정수) – 고정 비율을 적용하기 전의 초당 구성과 일치하는 요청의 일정한 수. 리저버는 서비스에서 직접 사용하지 않지만 규칙을 총체적으로 사용하여 모든 서비스에 적용됩니다.
-
속도(0~100 사이의 정수) - 리저버가 소진된 후, 계측과 일치하는 요청의 백분율입니다. 콘솔에서 샘플링 규칙을 구성할 때 0에서 100 사이의 백분율을 선택합니다. JSON 문서를 사용하여 클라이언트 SDK에서 샘플링 규칙을 구성할 때는 0에서 1 사이의 백분율 값을 입력합니다.
-
서비스 이름 (문자열) - 추적 맵에 나타나는 계측 서비스의 이름입니다.
-
X-Ray SDK – 레코더에서 구성한 서비스 이름.
-
Amazon API Gateway –
.api-name
/stage
-
-
서비스 유형 (문자열) - 추적 맵에 나타나는 서비스 유형입니다. X-Ray SDK의 경우 적절한 플러그인을 적용하여 서비스 유형을 설정합니다.
-
AWS::ElasticBeanstalk::Environment
— AWS Elastic Beanstalk 환경 (플러그인). -
AWS::EC2::Instance
– Amazon EC2 인스턴스 (플러그인). -
AWS::ECS::Container
– 아마존 ECS 컨테이너 (플러그인). -
AWS::APIGateway::Stage
– Amazon API Gateway 단계 -
AWS::AppSync::GraphQLAPI
— AWS AppSync API 요청.
-
-
호스트(문자열) - HTTP 호스트 헤더에 있는 호스트 이름.
-
HTTP 메서드(문자열) – HTTP 요청 메서드.
-
URL 경로(문자열) - 요청의 URL 경로.
-
X-Ray SDK – HTTP 요청 URL의 경로 부분.
-
-
리소스 ARN (문자열) - 서비스를 실행하는 AWS 리소스의 ARN입니다.
-
X-Ray SDK – 지원되지 않습니다. SDK는 리소스 ARN이
*
로 설정된 규칙만 사용할 수 있습니다. -
Amazon API Gateway – 스테이지 ARN.
-
-
(선택 사항) 속성(키와 값) – 샘플링 결정을 내릴 때 알려진 세그먼트 속성.
-
X-Ray SDK – 지원되지 않습니다. SDK는 속성을 지정하는 규칙을 무시합니다.
-
Amazon API Gateway – 원본 HTTP 요청의 헤더.
-
샘플링 규칙 예
예 – 리저버가 없고 비율이 낮은 기본 규칙
기본 규칙의 리저버와 비율을 수정할 수 있습니다. 기본 규칙은 다른 규칙과 일치하지 않는 요청에 적용됩니다.
-
리저버:
0
-
속도:
5
(JSON 문서를 사용하여 구성한 경우0.05
)
예 – 문제가 있는 경로에 대한 모든 요청을 추적하는 디버깅 규칙
디버깅을 위해 우선 순위가 높은 규칙이 일시적으로 적용되었습니다.
-
규칙 이름:
DEBUG – history updates
-
우선 순위:
1
-
리저버:
1
-
속도:
100
(JSON 문서를 사용하여 구성한 경우1
) -
서비스 이름:
Scorekeep
-
서비스 유형:
*
-
호스트:
*
-
HTTP 메서드:
PUT
-
URL 경로:
/history/*
-
리소스 ARN:
*
예 – POST에 대한 더 높은 최소 비율
-
규칙 이름:
POST minimum
-
우선 순위:
100
-
리저버:
10
-
속도:
10
(JSON 문서를 사용하여 구성한 경우.1
) -
서비스 이름:
*
-
서비스 유형:
*
-
호스트:
*
-
HTTP 메서드:
POST
-
URL 경로:
*
-
리소스 ARN:
*
샘플링 규칙을 사용하도록 서비스를 구성합니다.
콘솔에서 구성한 샘플링 규칙을 사용하려면 X-Ray SDK에 추가 구성이 필요합니다. 샘플링 전략 구성에 대한 자세한 내용은 해당 언어의 구성 주제를 참조하십시오.
API 게이트웨이의 경우 Amazon API Gateway 액티브 트레이싱 지원 대상 AWS X-Ray 단원을 참조하십시오.
샘플링 결과 보기
X-Ray 콘솔 샘플링 페이지에는 서비스가 각 샘플링 규칙을 사용하는 방법에 대한 자세한 정보가 표시됩니다.
Trend(추세) 열에는 규칙이 지난 몇 분간 사용된 방법이 표시됩니다. 각 열에는 10초 동안의 통계가 표시됩니다.
샘플링 통계
-
총 일치된 규칙: 이 규칙과 일치한 요청 수입니다. 이 수에는 이 규칙과 일치했을 수 있었지만 먼저 우선 순위가 더 높은 규칙과 일치한 요청은 포함되지 않습니다.
-
총 샘플링 수: 기록된 요청 수입니다.
-
고정 비율로 샘플링됨: 규칙의 고정 비율을 적용하여 샘플링된 요청 수입니다.
-
리저버 한도로 샘플링됨: 가 할당한 할당량을 사용하여 샘플링된 요청 수입니다.
-
리저버에서 빌림: 리저버에서 빌려 샘플링된 요청 수입니다. 서비스에서 요청을 규칙에 처음 일치시킬 때 X-Ray가 아직 할당량을 할당하지 않았습니다. 그러나 리저버가 1이상인 경우 X-Ray가 할당량을 할당할 때까지 서비스는 초당 트레이스 하나를 빌립니다.
샘플링 통계와 서비스가 샘플링 규칙을 사용하는 방법에 대한 자세한 내용은 X-Ray API에 샘플링 규칙 사용 단원을 참조하십시오.
다음 단계
X-Ray API를 사용하여 샘플링 규칙을 관리할 수 있습니다. API를 사용하여 일정을 기반으로 또는 경보나 알림에 대한 응답으로 규칙을 프로그래밍 방식으로 생성하고 업데이트할 수 있습니다. 지침 및 추가 규칙 예제는 X-Ray API를 사용하여 샘플링, 그룹 및 암호화 설정 구성 단원을 참조하십시오.
X-Ray SDK와 X-Ray API를 사용하여 샘플링 규칙을 읽고, 샘플링 결과를 보고하고, 샘플링 대상을 얻을 AWS 서비스 수도 있습니다. 서비스는 각 규칙을 적용하는 빈도를 추적하고, 우선 순위에 따라 규칙을 평가하며, 요청이 X-Ray가 아직 서비스에 할당량을 할당하지 않은 규칙과 일치하는 경우 리저버에서 빌려야 합니다. 서비스가 API를 샘플링에 사용하는 방법에 대한 자세한 내용은 을 참조하십시오X-Ray API에 샘플링 규칙 사용.
X-Ray SDK가 샘플링 API를 호출할 때, X-Ray 대몬(daemon)을 프록시로 사용합니다. TCP 포트 2000을 이미 사용하는 경우, 다른 포트에서 프록시를 실행하도록 데몬을 구성할 수 있습니다. 세부 정보는 AWS X-Ray 데몬 설정하기를 참조하세요.
경로와 쿼리를 사용하여 특정 트레이스에 딥링크하거나 트레이스 및 트레이스 맵의 필터링된 보기를 만들 수 있습니다.
콘솔 페이지
-
시작 페이지 – xray/home#/welcome
-
시작하기 – xray/home#/getting-started
-
트레이스 맵 — xray/home#/서비스
맵 -
트레이스 – xray/home#/traces
트레이스
개별 트레이스의 타임라인, 원시 및 맵 보기에서 링크를 생성할 수 있습니다.
트레이스 타임라인 – xray/home#/traces/
trace-id
원시 트레이스 데이터 – xray/home#/traces/
trace-id
/raw
예 – 원시 트레이스 데이터
https://console.aws.amazon.com/xray/home#/traces/1-57f5498f-d91047849216d0f2ea3b6442/raw
필터 표현식
필터링된 트레이스 목록으로 연결합니다.
필터링된 트레이스 보기 – xray/home#/traces?filter=
filter-expression
예 – 필터 표현식
https://console.aws.amazon.com/xray/home#/traces?filter=service("api.amazon.com") { fault = true OR responsetime > 2.5 } AND annotation.foo = "bar"
예 – 필터 표현식(URL로 인코딩됨)
https://console.aws.amazon.com/xray/home#/traces?filter=service(%22api.amazon.com%22)%20%7B%20fault%20%3D%20true%20OR%20responsetime%20%3E%202.5%20%7D%20AND%20annotation.foo%20%3D%20%22bar%22
필터 표현식에 대한 자세한 내용은 필터 표현식 사용 단원을 참조하십시오.
시간 범위
기간 또는 시작 및 종료 시간을 ISO8601 형식으로 지정합니다. 시간 범위는 UTC 기준이며 최대 6시간까지 가능합니다.
기간 – xray/home#/
page
?timeRange=range-in-minutes
예 — 지난 1시간 동안의 트레이스 맵
https://console.aws.amazon.com/xray/home#/service-map?timeRange=PT1H
시작 및 종료 시간 – xray/home#/
page
?timeRange=start
~end
예 – 초 단위 시간 범위
https://console.aws.amazon.com/xray/home#/traces?timeRange=2023-7-01T16:00:00~2023-7-01T22:00:00
예 – 분 단위 시간 범위
https://console.aws.amazon.com/xray/home#/traces?timeRange=2023-7-01T16:00~2023-7-01T22:00
지역
해당 지역의 페이지로 AWS 리전 연결하려면 an을 지정합니다. 리전을 지정하지 않을 경우 콘솔이 마지막으로 방문한 리전으로 리디렉션됩니다.
리전 – xray/home
?region=
#/region
page
예 — 미국 서부 (오레곤) 의 트레이스 맵 (us-west-2)
https://console.aws.amazon.com/xray/home?region=us-west-2#/service-map
쿼리 파라미터가 다른 리전을 포함시킬 경우 리전 쿼리가 해시 앞에 오고 X-Ray 고유 쿼리가 페이지 이름 뒤에 옵니다.
예 — 미국 서부 (오레곤) 의 지난 시간 동안의 트레이스 맵 (us-west-2)
https://console.aws.amazon.com/xray/home?region=us-west-2#/service-map?timeRange=PT1H
조합
예 – 최근 트레이스와 기간 필터
https://console.aws.amazon.com/xray/home#/traces?timeRange=PT15M&filter=duration%20%3E%3D%205%20AND%20duration%20%3C%3D%208
출력
-
페이지 – 트레이스
-
시간 범위 – 마지막 15분
-
필터 – duration >= 5 AND duration <= 8