Doc AWS SDK 예제 GitHub 리포지토리에서 더 많은 SDK 예제를 사용할 수 있습니다. AWS
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용한 X-Ray 예제 AWS CLI
다음 코드 예제에서는 X-Ray와 AWS Command Line Interface 함께를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 관련 시나리오의 컨텍스트에 따라 표시되며, 개별 서비스 함수를 직접적으로 호출하는 방법을 보여줍니다.
각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.
주제
작업
다음 코드 예시에서는 batch-traces-get
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
추적 목록 가져오기
다음
batch-get-traces
예제에서는 ID로 지정된 추적 목록을 검색합니다. 전체 트레이스에는 동일한 트레이스 ID로 수신된 모든 세그먼트 문서로부터 컴파일된 각 세그먼트의 문서가 포함됩니다.aws xray batch-get-traces \ --trace-ids
1-5d82881a-0a9126e92a73e971eed891b9
출력:
{ "Traces": [ { "Id": "1-5d82881a-0a9126e92a73e971eed891b9", "Duration": 0.232, "Segments": [ { "Id": "54aff5735b12dd28", "Document": "{\"id\":\"54aff5735b12dd28\",\"name\":\"Scorekeep\",\"start_time\":1.568835610432E9,\"end_time\":1.568835610664E9,\"http\":{\"request\":{\"url\":\"http://scorekeep-env-1.m4fg2pfzpv.us-east-2.elasticbeanstalk.com/api/user\",\"method\":\"POST\",\"user_agent\":\"curl/7.59.0\",\"client_ip\":\"52.95.4.28\",\"x_forwarded_for\":true},\"response\":{\"status\":200}},\"aws\":{\"elastic_beanstalk\":{\"version_label\":\"Sample Application-1\",\"deployment_id\":3,\"environment_name\":\"Scorekeep-env-1\"},\"ec2\":{\"availability_zone\":\"us-east-2b\",\"instance_id\":\"i-0e3cf4d2de0f3f37a\"},\"xray\":{\"sdk_version\":\"1.1.0\",\"sdk\":\"X-Ray for Java\"}},\"service\":{\"runtime\":\"OpenJDK 64-Bit Server VM\",\"runtime_version\":\"1.8.0_222\"},\"trace_id\":\"1-5d82881a-0a9126e92a73e971eed891b9\",\"origin\":\"AWS::ElasticBeanstalk::Environment\",\"subsegments\":[{\"id\":\"2d6900034ccfe558\",\"name\":\"DynamoDB\",\"start_time\":1.568835610658E9,\"end_time\":1.568835610664E9,\"http\":{\"response\":{\"status\":200,\"content_length\":61}},\"aws\":{\"table_name\":\"scorekeep-user\",\"operation\":\"UpdateItem\",\"request_id\":\"TPEIDNDUROMLPOV17U4A79555NVV4KQNSO5AEMVJF66Q9ASUAAJG\",\"resource_names\":[\"scorekeep-user\"]},\"namespace\":\"aws\"}]}" }, { "Id": "0f278b6334c34e6b", "Document": "{\"id\":\"0f278b6334c34e6b\",\"name\":\"DynamoDB\",\"start_time\":1.568835610658E9,\"end_time\":1.568835610664E9,\"parent_id\":\"2d6900034ccfe558\",\"inferred\":true,\"http\":{\"response\":{\"status\":200,\"content_length\":61}},\"aws\":{\"table_name\":\"scorekeep-user\",\"operation\":\"UpdateItem\",\"request_id\":\"TPEIDNDUROMLPOV17U4A79555NVV4KQNSO5AEMVJF66Q9ASUAAJG\",\"resource_names\":[\"scorekeep-user\"]},\"trace_id\":\"1-5d82881a-0a9126e92a73e971eed891b9\",\"origin\":\"AWS::DynamoDB::Table\"}" } ] } ], "UnprocessedTraceIds": [] }
자세한 내용은 AWS X-Ray 개발자 안내서의 AWS CLI에서 X-Ray API 사용을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 BatchTracesGet
섹션을 참조하세요.
-
다음 코드 예시에서는 create-group
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
그룹 생성
다음 예제에서는
create-group
이라는 그룹 리소스를 생성합니다. 그룹은 장애 또는 오류를 일으키는 특정 서비스와 관련된 세그먼트로 그룹의 기준을 정의하는 필터 식을 가져옵니다.aws xray create-group \ --group-name
"AdminGroup"
\ --filter-expression "service(\"mydomain.com\") {fault OR error}"출력:
{ "GroupName": "AdminGroup", "GroupARN": "arn:aws:xray:us-west-2:123456789012:group/AdminGroup/123456789", "FilterExpression": "service(\"mydomain.com\") {fault OR error}" }
자세한 내용은 AWS X-Ray 개발자 안내서의 X-Ray API를 사용한 샘플링, 그룹 및 암호화 설정 구성을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 CreateGroup
을 참조하세요.
-
다음 코드 예시에서는 create-sampling-rule
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
샘플링 규칙 생성
다음
create-sampling-rule
예제에서는 계측된 애플리케이션의 샘플링 동작을 제어하는 규칙을 생성합니다. 규칙은 JSON 파일에서 제공됩니다. 대부분의 샘플링 규칙 필드는 규칙을 생성하는 데 필요합니다.aws xray create-sampling-rule \ --cli-input-json
file://9000-base-scorekeep.json
9000-base-scorekeep.json
의 콘텐츠:{ "SamplingRule": { "RuleName": "base-scorekeep", "ResourceARN": "*", "Priority": 9000, "FixedRate": 0.1, "ReservoirSize": 5, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1 } }
출력:
{ "SamplingRuleRecord": { "SamplingRule": { "RuleName": "base-scorekeep", "RuleARN": "arn:aws:xray:us-west-2:123456789012:sampling-rule/base-scorekeep", "ResourceARN": "*", "Priority": 9000, "FixedRate": 0.1, "ReservoirSize": 5, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1, "Attributes": {} }, "CreatedAt": 1530574410.0, "ModifiedAt": 1530574410.0 } }
자세한 내용은 AWS X-Ray 개발자 안내서의 X-Ray API를 사용한 샘플링, 그룹 및 암호화 설정 구성을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의CreateSamplingRule
섹션을 참조하세요.
-
다음 코드 예시에서는 delete-group
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
그룹 삭제
다음
delete-group
예제에서는 지정된 그룹 리소스를 삭제합니다.aws xray delete-group \ --group-name
"AdminGroup"
\ --group-arn"arn:aws:xray:us-east-2:123456789012:group/AdminGroup/123456789"
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 AWS X-Ray 개발자 안내서의 X-Ray API를 사용한 샘플링, 그룹 및 암호화 설정 구성을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteGroup
을 참조하세요.
-
다음 코드 예시에서는 delete-sampling-rule
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
샘플링 규칙 삭제
다음
delete-sampling-rule
예제에서는 지정된 샘플링 규칙을 삭제합니다. 그룹 이름 또는 그룹 ARN을 사용하여 그룹을 지정할 수 있습니다.aws xray delete-sampling-rule \ --rule-name
polling-scorekeep
출력:
{ "SamplingRuleRecord": { "SamplingRule": { "RuleName": "polling-scorekeep", "RuleARN": "arn:aws:xray:us-west-2:123456789012:sampling-rule/polling-scorekeep", "ResourceARN": "*", "Priority": 5000, "FixedRate": 0.003, "ReservoirSize": 0, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "GET", "URLPath": "/api/state/*", "Version": 1, "Attributes": {} }, "CreatedAt": 1530574399.0, "ModifiedAt": 1530574399.0 } }
자세한 내용은 AWS X-Ray 개발자 안내서의 X-Ray API를 사용한 샘플링, 그룹 및 암호화 설정 구성을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteSamplingRule
섹션을 참조하세요.
-
다음 코드 예시에서는 get-encryption-config
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
암호화 구성 검색
다음
get-encryption-config
예제에서는 AWS X-Ray 데이터에 대한 현재 암호화 구성을 검색합니다.aws xray get-encryption-config
출력:
{ "EncryptionConfig": { "KeyId": "ae4aa6d49-a4d8-9df9-a475-4ff6d7898456", "Status": "ACTIVE", "Type": "NONE" } }
자세한 내용은 AWS X-Ray 개발자 안내서의 X-Ray API를 사용한 샘플링, 그룹 및 암호화 설정 구성을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 GetEncryptionConfig
섹션을 참조하세요.
-
다음 코드 예시에서는 get-group
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
그룹 검색
다음
get-group
예제에서는 지정된 그룹 리소스에 대한 세부 정보를 표시합니다. 세부 정보에는 그룹 이름, 그룹 ARN 및 해당 그룹에 대한 기준을 정의하는 필터 표현식이 포함됩니다. 그룹은 ARN으로도 검색할 수 있습니다.aws xray get-group \ --group-name
"AdminGroup"
출력:
{ "Group": [ { "GroupName": "AdminGroup", "GroupARN": "arn:aws:xray:us-west-2:123456789012:group/AdminGroup/123456789", "FilterExpression": "service(\"mydomain.com\") {fault OR error}" } ] }
자세한 내용은 AWS X-Ray 개발자 안내서의 X-Ray API를 사용한 샘플링, 그룹 및 암호화 설정 구성을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 GetGroup
을 참조하세요.
-
다음 코드 예시에서는 get-groups
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
모든 그룹 검색
다음 예제에서는 모든 활성 그룹에 대한 세부 정보를 표시합니다.
aws xray get-groups
출력:
{ "Groups": [ { "GroupName": "AdminGroup", "GroupARN": "arn:aws:xray:us-west-2:123456789012:group/AdminGroup/123456789", "FilterExpression": "service(\"example.com\") {fault OR error}" }, { "GroupName": "SDETGroup", "GroupARN": "arn:aws:xray:us-west-2:123456789012:group/SDETGroup/987654321", "FilterExpression": "responsetime > 2" } ] }
자세한 내용은 AWS X-Ray 개발자 안내서의 X-Ray API를 사용한 샘플링, 그룹 및 암호화 설정 구성을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 GetGroup
섹션을 참조하세요.
-
다음 코드 예시에서는 get-sampling-rules
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
모든 샘플링 규칙 검색
다음
get-sampling-rules
예제에서는 사용 가능한 모든 샘플링 규칙에 대한 세부 정보를 표시합니다.aws xray get-sampling-rules
출력:
{ "SamplingRuleRecords": [ { "SamplingRule": { "RuleName": "Default", "RuleARN": "arn:aws:xray:us-east-1::sampling-rule/Default", "ResourceARN": "*", "Priority": 10000, "FixedRate": 0.01, "ReservoirSize": 0, "ServiceName": "*", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1, "Attributes": {} }, "CreatedAt": 0.0, "ModifiedAt": 1530558121.0 }, { "SamplingRule": { "RuleName": "base-scorekeep", "RuleARN": "arn:aws:xray:us-east-1::sampling-rule/base-scorekeep", "ResourceARN": "*", "Priority": 9000, "FixedRate": 0.1, "ReservoirSize": 2, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1, "Attributes": {} }, "CreatedAt": 1530573954.0, "ModifiedAt": 1530920505.0 }, { "SamplingRule": { "RuleName": "polling-scorekeep", "RuleARN": "arn:aws:xray:us-east-1::sampling-rule/polling-scorekeep", "ResourceARN": "*", "Priority": 5000, "FixedRate": 0.003, "ReservoirSize": 0, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "GET", "URLPath": "/api/state/*", "Version": 1, "Attributes": {} }, "CreatedAt": 1530918163.0, "ModifiedAt": 1530918163.0 } ] }
자세한 내용은 AWS X-Ray 개발자 안내서에서 X-Ray API로 샘플링 규칙 사용을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetBucketWebsite
섹션을 참조하세요.
-
다음 코드 예시에서는 get-sampling-targets
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
샘플링 할당량 요청
다음
get-sampling-targets
예제에서는 서비스가 요청을 샘플링하기 위해 사용하는 규칙에 대한 샘플링 할당량을 요청합니다. AWS X-Ray의 응답에는 리저버에서 빌리는 대신 사용할 수 있는 할당량이 포함됩니다.aws xray get-sampling-targets \ --sampling-statistics-documents '
[ { "RuleName": "base-scorekeep", "ClientID": "ABCDEF1234567890ABCDEF10", "Timestamp": "2018-07-07T00:20:06, "RequestCount": 110, "SampledCount": 20, "BorrowCount": 10 }, { "RuleName": "polling-scorekeep", 31, "BorrowCount": 0 } ]
'출력:
{ "SamplingTargetDocuments": [ { "RuleName": "base-scorekeep", "FixedRate": 0.1, "ReservoirQuota": 2, "ReservoirQuotaTTL": 1530923107.0, "Interval": 10 }, { "RuleName": "polling-scorekeep", "FixedRate": 0.003, "ReservoirQuota": 0, "ReservoirQuotaTTL": 1530923107.0, "Interval": 10 } ], "LastRuleModification": 1530920505.0, "UnprocessedStatistics": [] }
자세한 내용은 AWS X-Ray 개발자 안내서에서 X-Ray API로 샘플링 규칙 사용을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetSamplingTargets
섹션을 참조하세요.
-
다음 코드 예시에서는 get-service-graph
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
서비스 그래프 가져오기
다음 예제에서는 수신 요청을 처리하는 서비스와 그 결과로 호출하는 다운스트림 서비스를 설명하는 지정된 기간 내의 문서를 표시합니다.
aws xray get-service-graph \ --start-time
1568835392.0
--end-time1568835446.0
출력:
{ "Services": [ { "ReferenceId": 0, "Name": "Scorekeep", "Names": [ "Scorekeep" ], "Root": true, "Type": "AWS::ElasticBeanstalk::Environment", "State": "active", "StartTime": 1568835392.0, "EndTime": 1568835446.0, "Edges": [ { "ReferenceId": 1, "StartTime": 1568835392.0, "EndTime": 1568835446.0, "SummaryStatistics": { "OkCount": 14, "ErrorStatistics": { "ThrottleCount": 0, "OtherCount": 0, "TotalCount": 0 }, "FaultStatistics": { "OtherCount": 0, "TotalCount": 0 }, "TotalCount": 14, "TotalResponseTime": 0.13 }, "ResponseTimeHistogram": [ { "Value": 0.008, "Count": 1 }, { "Value": 0.005, "Count": 7 }, { "Value": 0.009, "Count": 1 }, { "Value": 0.021, "Count": 1 }, { "Value": 0.038, "Count": 1 }, { "Value": 0.007, "Count": 1 }, { "Value": 0.006, "Count": 2 } ], "Aliases": [] }, ... TRUNCATED FOR BREVITY ... ] } ], "StartTime": 1568835392.0, "EndTime": 1568835446.0, "ContainsOldGroupVersions": false }
자세한 내용은 AWS X-Ray 개발자 안내서의 AWS CLI에서 X-Ray API 사용을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 GetServiceGraph
섹션을 참조하세요.
-
다음 코드 예시에서는 get-trace-summaries
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
추적 요약 가져오기
다음
get-trace-summaries
예제에서는 지정된 기간 내에 사용 가능한 추적에 대한 ID와 메타데이터를 검색합니다.aws xray get-trace-summaries \ --start-time
1568835392.0
\ --end-time1568835446.0
출력:
[ "http://scorekeep-env-1.123456789.us-east-2.elasticbeanstalk.com/api/move/VSAE93HF/GSSD2NTB/DP0PCC09", "http://scorekeep-env-1.123456789.us-east-2.elasticbeanstalk.com/api/move/GCQ2B35P/FREELDFT/4LRE643M", "http://scorekeep-env-1.123456789.us-east-2.elasticbeanstalk.com/api/game/VSAE93HF/GSSD2NTB/starttime/1568835513", "http://scorekeep-env-1.123456789.us-east-2.elasticbeanstalk.com/api/move/4MQNA5NN/L99KK2RF/null" ]
자세한 내용은 AWS X-Ray 개발자 안내서의 AWS CLI에서 X-Ray API 사용을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 GetTraceSummaries
섹션을 참조하세요.
-
다음 코드 예시에서는 put-encryption-config
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
암호화 구성 업데이트
다음
put-encryption-config``example updates the encryption configuration for AWS X-Ray data to use the default AWS managed KMS key ``aws/xray
.aws xray put-encryption-config \ --type
KMS
\ --key-idalias/aws/xray
출력:
{ "EncryptionConfig": { "KeyId": "arn:aws:kms:us-west-2:123456789012:key/c234g4e8-39e9-4gb0-84e2-b0ea215cbba5", "Status": "UPDATING", "Type": "KMS" } }
자세한 내용은 AWS X-Ray 개발자 안내서의 X-Ray API를 사용한 샘플링, 그룹 및 암호화 설정 구성을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 PutEncryptionConfig
섹션을 참조하세요.
-
다음 코드 예시에서는 put-trace-segments
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
세그먼트 업로드
다음
put-trace-segments
예시에서는 세그먼트 문서를 AWS X-Ray에 업로드합니다. 세그먼트 문서는 JSON 세그먼트 문서 목록으로 사용됩니다.aws xray put-trace-segments \ --trace-segment-documents "{\"id\":\"20312a0e2b8809f4\",\"name\":\"DynamoDB\",\"trace_id\":\"1-5832862d-a43aafded3334a971fe312db\",\"start_time\":1.479706157195E9,\"end_time\":1.479706157202E9,\"parent_id\":\"79736b962fe3239e\",\"http\":{\"response\":{\"content_length\":60,\"status\":200}},\"inferred\":true,\"aws\":{\"consistent_read\":false,\"table_name\":\"scorekeep-session-xray\",\"operation\":\"GetItem\",\"request_id\":\"SCAU23OM6M8FO38UASGC7785ARVV4KQNSO5AEMVJF66Q9ASUAAJG\",\"resource_names\":[\"scorekeep-session-xray\"]},\"origin\":\"AWS::DynamoDB::Table\"}"
출력:
{ "UnprocessedTraceSegments": [] }
자세한 내용은 AWS X-Ray 개발자 안내서의 트레이스 데이터를 AWS X-Ray로 전송을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 PutTraceSegments
섹션을 참조하세요.
-
다음 코드 예시에서는 update-group
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
그룹 업데이트
다음
update-group
예제에서는AdminGroup
이라는 그룹으로 트레이스를 수락할 기준을 업데이트니다. 그룹 이름 또는 그룹 ARN을 사용하여 원하는 그룹을 지정할 수 있습니다.aws xray update-group \ --group-name
"AdminGroup"
\ --group-arn"arn:aws:xray:us-west-2:123456789012:group/AdminGroup/123456789"
\ --filter-expression "service(\"mydomain.com\") {fault}"출력:
{ "GroupName": "AdminGroup", "GroupARN": "arn:aws:xray:us-east-2:123456789012:group/AdminGroup/123456789", "FilterExpression": "service(\"mydomain.com\") {fault}" }
자세한 내용은 AWS X-Ray 개발자 안내서의 X-Ray API를 사용한 샘플링, 그룹 및 암호화 설정 구성을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateGroup
을 참조하세요.
-
다음 코드 예시에서는 update-sampling-rule
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
샘플링 규칙 업데이트
다음
update-sampling-rule
예제에서는 샘플링 규칙의 구성을 수정합니다. 규칙은 JSON 파일에서 사용됩니다. 업데이트 중인 필드만 필요합니다.aws xray update-sampling-rule \ --cli-input-json
file://1000-default.json
1000-default.json
의 콘텐츠:{ "SamplingRuleUpdate": { "RuleName": "Default", "FixedRate": 0.01, "ReservoirSize": 0 } }
출력:
{ "SamplingRuleRecords": [ { "SamplingRule": { "RuleName": "Default", "RuleARN": "arn:aws:xray:us-west-2:123456789012:sampling-rule/Default", "ResourceARN": "*", "Priority": 10000, "FixedRate": 0.01, "ReservoirSize": 0, "ServiceName": "*", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1, "Attributes": {} }, "CreatedAt": 0.0, "ModifiedAt": 1529959993.0 } ] }
자세한 내용은 AWS X-Ray 개발자 안내서의 X-Ray API를 사용한 샘플링, 그룹 및 암호화 설정 구성을 참조하세요. AWS
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateSamplingRuler
섹션을 참조하세요.
-