Beispiele für die Verwendung von X-Ray mit AWS CLI - AWS Command Line Interface

Beispiele für die Verwendung von X-Ray mit AWS CLI

Die folgenden Codebeispiele zeigen, wie Sie Aktionen durchführen und gängige Szenarien implementieren, indem Sie die AWS Command Line Interface mit X-Ray nutzen.

Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.

Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anleitungen zum Einrichten und Ausführen des Codes im Kontext finden.

Themen

Aktionen

Das folgende Codebeispiel zeigt, wie batch-traces-get verwendet wird.

AWS CLI

So rufen Sie eine Liste von Ablaufverfolgungen ab

Im folgenden Beispiel für batch-get-traces wird eine Liste von Ablaufverfolgungen abgerufen, die anhand einer ID angegeben werden. Die vollständige Ablaufverfolgung umfasst ein Dokument für jedes Segment, das aus allen Segmentdokumenten kompiliert wurde, die mit der gleichen Ablaufverfolgungs-ID erhalten wurden.

aws xray batch-get-traces \ --trace-ids 1-5d82881a-0a9126e92a73e971eed891b9

Ausgabe:

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

Weitere Informationen finden Sie unter Verwenden der AWS-X-Ray-API mit der AWS-CLI im AWS-X-Ray-Entwicklerhandbuch.

  • API-Details finden Sie unter BatchTracesGet in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie create-group verwendet wird.

AWS CLI

So erstellen Sie eine Gruppe

Im folgenden Beispiel für create-group wird eine Gruppenressource namens AdminGroup erstellt. Die Gruppe erhält einen Filterausdruck, der die Kriterien der Gruppe als Segment definiert, das sich auf einen bestimmten Service bezieht, der eine Störung oder einen Fehler verursacht.

aws xray create-group \ --group-name "AdminGroup" \ --filter-expression "service(\"mydomain.com\") {fault OR error}"

Ausgabe:

{ "GroupName": "AdminGroup", "GroupARN": "arn:aws:xray:us-west-2:123456789012:group/AdminGroup/123456789", "FilterExpression": "service(\"mydomain.com\") {fault OR error}" }

Weitere Informationen finden Sie unter Konfigurieren von Sampling-, Gruppen- und Verschlüsselungseinstellungen mit der AWS X-Ray-API im AWSX-Ray-Entwicklerhandbuch.

  • API-Details finden Sie unter CreateGroup in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie create-sampling-rule verwendet wird.

AWS CLI

So erstellen Sie eine Sampling-Regel

Im folgenden Beispiel für create-sampling-rule wird eine Regel zur Steuerung des Sampling-Verhaltens für instrumentierte Anwendungen erstellt. Die Regeln werden in einer JSON-Datei bereitgestellt. Die meisten Felder für die Sampling-Regel sind erforderlich, um die Regel zu erstellen.

aws xray create-sampling-rule \ --cli-input-json file://9000-base-scorekeep.json

Inhalt von 9000-base-scorekeep.json:

{ "SamplingRule": { "RuleName": "base-scorekeep", "ResourceARN": "*", "Priority": 9000, "FixedRate": 0.1, "ReservoirSize": 5, "ServiceName": "Scorekeep", "ServiceType": "*", "Host": "*", "HTTPMethod": "*", "URLPath": "*", "Version": 1 } }

Ausgabe:

{ "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 } }

Weitere Informationen finden Sie unter Konfigurieren von Sampling-, Gruppen- und Verschlüsselungseinstellungen mit der AWS X-Ray-API im AWSX-Ray-Entwicklerhandbuch.

Das folgende Codebeispiel zeigt, wie delete-group verwendet wird.

AWS CLI

So löschen Sie eine Gruppe

Im folgenden Beispiel für delete-group wird die angegebene Gruppenressourcen gelöscht.

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

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

Weitere Informationen finden Sie unter Konfigurieren von Sampling-, Gruppen- und Verschlüsselungseinstellungen mit der AWS X-Ray-API im AWSX-Ray-Entwicklerhandbuch.

  • API-Details finden Sie unter DeleteGroup in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie delete-sampling-rule verwendet wird.

AWS CLI

So löschen Sie eine Sampling-Regel

Im folgenden Beispiel für delete-sampling-rule wird die angegebene Sampling-Regel gelöscht. Sie können die Gruppe angeben, indem Sie entweder den Gruppennamen oder den Gruppen-ARN verwenden.

aws xray delete-sampling-rule \ --rule-name polling-scorekeep

Ausgabe:

{ "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 } }

Weitere Informationen finden Sie unter Konfigurieren von Sampling-, Gruppen- und Verschlüsselungseinstellungen mit der AWS X-Ray-API im AWSX-Ray-Entwicklerhandbuch.

Das folgende Codebeispiel zeigt, wie get-encryption-config verwendet wird.

AWS CLI

So rufen Sie die Verschlüsselungskonfiguration ab

Im folgenden Beispiel für get-encryption-config wird die aktuelle Verschlüsselungskonfiguration für Ihre AWS-X-Ray-Daten abgerufen.

aws xray get-encryption-config

Ausgabe:

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

Weitere Informationen finden Sie unter Konfigurieren von Sampling-, Gruppen- und Verschlüsselungseinstellungen mit der AWS X-Ray-API im AWSX-Ray-Entwicklerhandbuch.

Das folgende Codebeispiel zeigt, wie get-group verwendet wird.

AWS CLI

So rufen Sie eine Gruppe ab

Im folgenden Beispiel für get-group werden Details zur angegebenen Gruppenressource angezeigt. Zu den Details gehören der Gruppenname, der Gruppen-ARN und der Filterausdruck, der die Kriterien für diese Gruppe definiert. Gruppen können auch per ARN abgerufen werden.

aws xray get-group \ --group-name "AdminGroup"

Ausgabe:

{ "Group": [ { "GroupName": "AdminGroup", "GroupARN": "arn:aws:xray:us-west-2:123456789012:group/AdminGroup/123456789", "FilterExpression": "service(\"mydomain.com\") {fault OR error}" } ] }

Weitere Informationen finden Sie unter Konfigurieren von Sampling-, Gruppen- und Verschlüsselungseinstellungen mit der AWS X-Ray-API im AWSX-Ray-Entwicklerhandbuch.

  • API-Details finden Sie unter GetGroup in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie get-groups verwendet wird.

AWS CLI

So rufen Sie alle Gruppen ab

Im folgenden Beispiel werden Details für alle aktiven Gruppen angezeigt.

aws xray get-groups

Ausgabe:

{ "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" } ] }

Weitere Informationen finden Sie unter Konfigurieren von Sampling-, Gruppen- und Verschlüsselungseinstellungen mit der AWS X-Ray-API im AWSX-Ray-Entwicklerhandbuch.

  • API-Details finden Sie unter GetGroups in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie get-sampling-rules verwendet wird.

AWS CLI

So rufen Sie alle Sampling-Regeln ab

Im folgenden Beispiel für get-sampling-rules werden Details zu allen verfügbaren Sampling-Regeln angezeigt:

aws xray get-sampling-rules

Ausgabe:

{ "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 } ] }

Weitere Informationen finden Sie unter Verwenden von Sampling-Regeln mit der X-Ray-API im AWS X-Ray-Entwicklerhandbuch.

Das folgende Codebeispiel zeigt, wie get-sampling-targets verwendet wird.

AWS CLI

So fordern Sie ein Sampling-Kontingent an

Im folgenden Beispiel für get-sampling-targets wird ein Sampling-Kontingent für Regeln angefordert, die der Service für Sampling-Anforderungen verwendet. Die Antwort von AWS-X-Ray enthält ein Kontingent, das anstatt einer Anleihe aus dem Reservoir verwendet werden kann.

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 } ]'

Ausgabe:

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

Weitere Informationen finden Sie unter Verwenden von Sampling-Regeln mit der X-Ray-API im AWS X-Ray-Entwicklerhandbuch.

Das folgende Codebeispiel zeigt, wie get-service-graph verwendet wird.

AWS CLI

So rufen Sie ein Service-Diagramm ab

Im folgenden Beispiel wird ein Dokument innerhalb eines bestimmten Zeitraums angezeigt, das Services zur Verarbeitung eingehender Anforderungen beschreibt sowie die Downstream-Services, die diese aufgrund dessen aufrufen:

aws xray get-service-graph \ --start-time 1568835392.0 --end-time 1568835446.0

Ausgabe:

{ "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 }

Weitere Informationen finden Sie unter Verwenden der AWS-X-Ray-API mit der AWS-CLI im AWS-X-Ray-Entwicklerhandbuch.

  • API-Details finden Sie unter GetServiceGraph in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie get-trace-summaries verwendet wird.

AWS CLI

So rufen Sie eine Zusammenfassung der Ablaufverfolgung ab

Im folgenden Beispiel für get-trace-summaries werden IDs und Metadaten für Ablaufverfolgungen abgerufen, die innerhalb eines bestimmten Zeitraums verfügbar sind.

aws xray get-trace-summaries \ --start-time 1568835392.0 \ --end-time 1568835446.0

Ausgabe:

[ "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" ]

Weitere Informationen finden Sie unter Verwenden der AWS-X-Ray-API mit der AWS-CLI im AWS-X-Ray-Entwicklerhandbuch.

Das folgende Codebeispiel zeigt, wie put-encryption-config verwendet wird.

AWS CLI

So aktualisieren Sie die Verschlüsselungskonfiguration

Das folgende 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

Ausgabe:

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

Weitere Informationen finden Sie unter Konfigurieren von Sampling-, Gruppen- und Verschlüsselungseinstellungen mit der AWS-X-Ray-API im AWS-X-Ray-Entwicklerhandbuch.

Das folgende Codebeispiel zeigt, wie put-trace-segments verwendet wird.

AWS CLI

So laden Sie ein Segment hoch

Im folgenden Beispiel für put-trace-segments werden Segmentdokumente auf AWS-X-Ray hochgeladen. Das Segmentdokument wird als Liste von JSON-Segmentdokumenten verwendet.

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\"}"

Ausgabe:

{ "UnprocessedTraceSegments": [] }

Weitere Informationen finden Sie unter Senden von Ablaufverfolgungsdaten an AWS-X-Ray im AWS-X-Ray-Entwicklerhandbuch.

Das folgende Codebeispiel zeigt, wie update-group verwendet wird.

AWS CLI

So aktualisieren Sie eine Gruppe

Im folgenden Beispiel für update-group werden die Kriterien aktualisiert, anhand derer Ablaufverfolgungen für die angegebene Gruppe AdminGroup akzeptiert werden. Sie können die gewünschte Gruppe angeben, indem Sie entweder den Gruppennamen oder den Gruppen-ARN verwenden.

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}"

Ausgabe:

{ "GroupName": "AdminGroup", "GroupARN": "arn:aws:xray:us-east-2:123456789012:group/AdminGroup/123456789", "FilterExpression": "service(\"mydomain.com\") {fault}" }

Weitere Informationen finden Sie unter Konfigurieren von Sampling-, Gruppen- und Verschlüsselungseinstellungen mit der AWS-X-Ray-API im AWS-X-Ray-Entwicklerhandbuch.

  • API-Details finden Sie unter UpdateGroup in der AWS CLI-Befehlsreferenz.

Das folgende Codebeispiel zeigt, wie update-sampling-rule verwendet wird.

AWS CLI

So aktualisieren Sie eine Sampling-Regel

Im folgenden Beispiel für update-sampling-rule wird die Konfiguration einer Sampling-Regel geändert. Die Regeln werden aus einer JSON-Datei übernommen. Nur die Felder, die aktualisiert werden, sind erforderlich.

aws xray update-sampling-rule \ --cli-input-json file://1000-default.json

Inhalt von 1000-default.json:

{ "SamplingRuleUpdate": { "RuleName": "Default", "FixedRate": 0.01, "ReservoirSize": 0 } }

Ausgabe:

{ "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 } ] }

Weitere Informationen finden Sie unter Konfigurieren von Sampling-, Gruppen- und Verschlüsselungseinstellungen mit der AWS-X-Ray-API im AWS-X-Ray-Entwicklerhandbuch.