使用的 X-ray 示例 Amazon CLI - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用的 X-ray 示例 Amazon CLI

以下代码示例向您展示了如何使用 with X-Ray 来执行操作和实现常见场景。 Amazon Command Line Interface

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景和跨服务示例的上下文查看操作。

场景是展示如何通过在同一服务中调用多个函数来完成特定任务任务的代码示例。

每个示例都包含一个指向的链接 GitHub,您可以在其中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示如何使用 batch-traces-get

Amazon 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": [] }

有关更多信息,请参阅《X-Ray 开发者指南》中的将 Amazon X-Ra Amazon y AP Amazon I 与 CLI 配合使用

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考BatchTracesGet中的。

以下代码示例演示如何使用 create-group

Amazon 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 开发者指南》中的 “使用 Amazon X-Ray API 配置采样、分组和加密设置”。Amazon

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考CreateGroup中的。

以下代码示例演示如何使用 create-sampling-rule

Amazon 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 开发者指南》中的 “使用 Amazon X-Ray API 配置采样、分组和加密设置”。Amazon

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考CreateSamplingRule中的。

以下代码示例演示如何使用 delete-group

Amazon CLI

删除群组

以下delete-group示例删除了指定的组资源。

aws xray delete-group \ --group-name "AdminGroup" \ --group-arn "arn:aws:xray:us-east-2:123456789012:group/AdminGroup/123456789"

此命令不生成任何输出。

有关更多信息,请参阅《X-Ray 开发者指南》中的 “使用 Amazon X-Ray API 配置采样、分组和加密设置”。Amazon

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考DeleteGroup中的。

以下代码示例演示如何使用 delete-sampling-rule

Amazon 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 开发者指南》中的 “使用 Amazon X-Ray API 配置采样、分组和加密设置”。Amazon

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考DeleteSamplingRule中的。

以下代码示例演示如何使用 get-encryption-config

Amazon CLI

检索加密配置

以下get-encryption-config示例检索 Amazon X-Ray 数据的当前加密配置。

aws xray get-encryption-config

输出:

{ "EncryptionConfig": { "KeyId": "ae4aa6d49-a4d8-9df9-a475-4ff6d7898456", "Status": "ACTIVE", "Type": "NONE" } }

有关更多信息,请参阅《X-Ray 开发者指南》中的 “使用 Amazon X-Ray API 配置采样、分组和加密设置”。Amazon

以下代码示例演示如何使用 get-group

Amazon 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 开发者指南》中的 “使用 Amazon X-Ray API 配置采样、分组和加密设置”。Amazon

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GetGroup中的。

以下代码示例演示如何使用 get-groups

Amazon 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 开发者指南》中的 “使用 Amazon X-Ray API 配置采样、分组和加密设置”。Amazon

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GetGroups中的。

以下代码示例演示如何使用 get-sampling-rules

Amazon 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-Amazon R ay API 配合使用

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GetSamplingRules中的。

以下代码示例演示如何使用 get-sampling-targets

Amazon CLI

申请抽样配额

以下get-sampling-targets示例请求服务用于采样请求的规则的采样配额。 Amazon 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-Amazon R ay API 配合使用

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GetSamplingTargets中的。

以下代码示例演示如何使用 get-service-graph

Amazon CLI

获取服务图

以下示例显示了指定时间段内的文档,该文档描述了处理传入请求的服务以及它们因此调用的下游服务。 :

aws xray get-service-graph \ --start-time 1568835392.0 --end-time 1568835446.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 }

有关更多信息,请参阅《X-Ray 开发者指南》中的将 Amazon X-Ra Amazon y AP Amazon I 与 CLI 配合使用

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GetServiceGraph中的。

以下代码示例演示如何使用 get-trace-summaries

Amazon CLI

获取追踪摘要

以下get-trace-summaries示例检索指定时间范围内可用的跟踪的 ID 和元数据。

aws xray get-trace-summaries \ --start-time 1568835392.0 \ --end-time 1568835446.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" ]

有关更多信息,请参阅《X-Ray 开发者指南》中的将 Amazon X-Ra Amazon y AP Amazon I 与 CLI 配合使用

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考GetTraceSummaries中的。

以下代码示例演示如何使用 put-encryption-config

Amazon 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-id alias/aws/xray

输出:

{ "EncryptionConfig": { "KeyId": "arn:aws:kms:us-west-2:123456789012:key/c234g4e8-39e9-4gb0-84e2-b0ea215cbba5", "Status": "UPDATING", "Type": "KMS" } }

有关更多信息,请参阅《X-Ray 开发者指南》中的 “使用 Amazon X-Ray API 配置采样、分组和加密设置”。Amazon

以下代码示例演示如何使用 put-trace-segments

Amazon CLI

上传片段

以下put-trace-segments示例将分段文档上传到 Amazon 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": [] }

有关更多信息,请参阅《X-Ray 开发人员指南》中的向 Amazon X Amazon - Ray 发送跟踪数据

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考PutTraceSegments中的。

以下代码示例演示如何使用 update-group

Amazon 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 开发者指南》中的 “使用 Amazon X-Ray API 配置采样、分组和加密设置”。Amazon

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考UpdateGroup中的。

以下代码示例演示如何使用 update-sampling-rule

Amazon 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 开发者指南》中的 “使用 Amazon X-Ray API 配置采样、分组和加密设置”。Amazon

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考UpdateSamplingRule中的。