文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 的 X-Ray 範例 AWS CLI
下列程式碼範例示範如何搭配 AWS Command Line Interface X-Ray 使用 來執行動作和實作常見案例。
Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然 動作會示範如何呼叫個別服務函數,但您可以在其相關案例中查看內容中的動作。
每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。
主題
動作
下列程式碼範例示範如何使用 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 開發人員指南中的將 X-Ray API 與 AWS CLI 搭配使用。 AWS
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 BatchTracesGet
。
-
下列程式碼範例示範如何使用 create-group
。
- AWS CLI
-
建立群組
下列
create-group
範例會建立名為 的群組資源AdminGroup
。群組會取得篩選條件表達式,將群組的條件定義為與導致故障或錯誤的特定服務相關的區段。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}" }
如需詳細資訊,請參閱 X-Ray 開發人員指南中的使用 AWS 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 } }
如需詳細資訊,請參閱 X-Ray 開發人員指南中的使用 AWS 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"
此命令不會產生輸出。
如需詳細資訊,請參閱 X-Ray 開發人員指南中的使用 AWS 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 } }
如需詳細資訊,請參閱 X-Ray 開發人員指南中的使用 AWS 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" } }
如需詳細資訊,請參閱 X-Ray 開發人員指南中的使用 AWS 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}" } ] }
如需詳細資訊,請參閱 X-Ray 開發人員指南中的使用 AWS 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" } ] }
如需詳細資訊,請參閱 X-Ray 開發人員指南中的使用 AWS X-Ray API 設定取樣、群組和加密設定。 AWS
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetGroups
。
-
下列程式碼範例示範如何使用 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 } ] }
如需詳細資訊,請參閱 X-Ray 開發人員指南中的搭配 X-Ray API 使用取樣規則。 AWS
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetSamplingRules
。
-
下列程式碼範例示範如何使用 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": [] }
如需詳細資訊,請參閱 X-Ray 開發人員指南中的搭配 X-Ray API 使用取樣規則。 AWS
-
如需 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 開發人員指南中的搭配使用 X-Ray API 與 AWS CLI。 AWS
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 GetServiceGraph
。
-
下列程式碼範例示範如何使用 get-trace-summaries
。
- AWS CLI
-
若要取得追蹤摘要
下列
get-trace-summaries
範例會擷取 IDs 和中繼資料,以取得指定時間範圍內可用的追蹤。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 開發人員指南中的將 X-Ray API 與 AWS CLI 搭配使用。 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" } }
如需詳細資訊,請參閱 X-Ray 開發人員指南中的使用 AWS 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": [] }
如需詳細資訊,請參閱 XAWS -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}" }
如需詳細資訊,請參閱 X-Ray 開發人員指南中的使用 AWS 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 } ] }
如需詳細資訊,請參閱 X-Ray 開發人員指南中的使用 AWS X-Ray API 設定取樣、群組和加密設定。 AWS
-
如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 UpdateSamplingRule
。
-