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-traceswird 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-ids1-5d82881a-0a9126e92a73e971eed891b9Ausgabe:
{ "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-groupwird eine Gruppenressource namensAdminGrouperstellt. 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-rulewird 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-jsonfile://9000-base-scorekeep.jsonInhalt 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.
-
API-Details finden Sie unter CreateSamplingRule
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie delete-group verwendet wird.
- AWS CLI
-
So löschen Sie eine Gruppe
Im folgenden Beispiel für
delete-groupwird 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-rulewird 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-namepolling-scorekeepAusgabe:
{ "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.
-
API-Details finden Sie unter DeleteSamplingRule
in der AWS CLI-Befehlsreferenz.
-
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-configwird die aktuelle Verschlüsselungskonfiguration für Ihre AWS-X-Ray-Daten abgerufen.aws xray get-encryption-configAusgabe:
{ "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.
-
API-Details finden Sie unter GetEncryptionConfig
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-group verwendet wird.
- AWS CLI
-
So rufen Sie eine Gruppe ab
Im folgenden Beispiel für
get-groupwerden 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-groupsAusgabe:
{ "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-ruleswerden Details zu allen verfügbaren Sampling-Regeln angezeigt:aws xray get-sampling-rulesAusgabe:
{ "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.
-
API-Details finden Sie unter GetSamplingRules
in der AWS CLI-Befehlsreferenz.
-
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-targetswird 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.
-
API-Details finden Sie unter GetSamplingTargets
in der AWS CLI-Befehlsreferenz.
-
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-time1568835392.0--end-time1568835446.0Ausgabe:
{ "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-summarieswerden IDs und Metadaten für Ablaufverfolgungen abgerufen, die innerhalb eines bestimmten Zeitraums verfügbar sind.aws xray get-trace-summaries \ --start-time1568835392.0\ --end-time1568835446.0Ausgabe:
[ "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.
-
API-Details finden Sie unter GetTraceSummaries
in der AWS CLI-Befehlsreferenz.
-
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 \ --typeKMS\ --key-idalias/aws/xrayAusgabe:
{ "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.
-
API-Details finden Sie unter PutEncryptionConfig
in der AWS CLI-Befehlsreferenz.
-
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-segmentswerden 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.
-
API-Details finden Sie unter PutTraceSegments
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie update-group verwendet wird.
- AWS CLI
-
So aktualisieren Sie eine Gruppe
Im folgenden Beispiel für
update-groupwerden die Kriterien aktualisiert, anhand derer Ablaufverfolgungen für die angegebene GruppeAdminGroupakzeptiert 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-rulewird 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-jsonfile://1000-default.jsonInhalt 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.
-
API-Details finden Sie unter UpdateSamplingRule
in der AWS CLI-Befehlsreferenz.
-