Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Usando ilAWS X-RayAPI conAWSCLI
LaAWSLa CLI consente di accedere direttamente al servizio X-Ray e di utilizzare le stesse API utilizzate dalla console X-Ray per recuperare il grafico del servizio e i dati grezzi delle tracce. L'applicazione di esempio include script che mostrano come utilizzare queste API conAWSCLIP.
Prerequisiti
Questo tutorial utilizza l'applicazione di esempio Scorekeep e gli script in essa inclusi per generare dei dati di tracciamento e una mappa del servizio. Segui le istruzioni nel tutorial sulle nozioni di base per avviare l'applicazione.
Questo tutorial utilizza ilAWS CLIper mostrare l'uso di base dell'API X-Ray. LaAWSCLIP,disponibile per Windows, Linux e OS-X, fornisce l'accesso da riga di comando alle API pubbliche per tuttiServizi AWS.
Nota
È necessario verificare che AWS CLI sia configurata nella stessa regione in cui è stata creata l'applicazione di esempio Scorekeep.
Gli script incluso per testare l'applicazione di esempio utilizzano cURL
per inviare il traffico verso l'API e jq
per analizzare l'output. Puoi scaricare l'eseguibile di jq
da stedolan.github.iocurl
da https://curl.haxx.se/download.html
Generare i dati di tracciamento
Mentre il gioco è in corso, l'applicazione web genera continuamente traffico verso l'API ogni pochi secondi, ma genera solo un tipo di richiesta. Utilizza lo script test-api.sh
per eseguire scenari completi e generare dati di tracciamento più eterogeni mentre testi l'API.
Per usare lo script test-api.sh
Apri la console Elastic Beanstalk
. Vai alconsole di gestioneper il tuo ambiente.
-
Copiare l'URL di ambiente dall'intestazione della pagina.
-
Aprire
bin/test-api.sh
e sostituire il valore per l’API con l'URL del proprio ambiente.#!/bin/bash API=
scorekeep.9hbtbm23t2
.us-west-2.elasticbeanstalk.com/api -
Eseguire lo script per generare il traffico verso l'API.
~/debugger-tutorial$
./bin/test-api.sh
Creating users, session, game, configuring game, playing game, ending game, game complete. {"id":"MTBP8BAS","session":"HUF6IT64","name":"tic-tac-toe-test","users":["QFF3HBGM","KL6JR98D"],"rules":"102","startTime":1476314241,"endTime":1476314245,"states":["JQVLEOM2","D67QLPIC","VF9BM9NC","OEAA6GK9","2A705O73","1U2LFTLJ","HUKIDD70","BAN1C8FI","G3UDJTUF","AB70HVEV"],"moves":["BS8F8LQ","4MTTSPKP","463OETES","SVEBCL3N","N7CQ1GHP","O84ONEPD","EG4BPROQ","V4BLIDJ3","9RL3NPMV"]}
Usa l'API X-Ray
LaAWSLa CLI fornisce comandi per tutte le azioni API fornite da X-Ray, tra cuiGetServiceGraph
eGetTraceSummaries
. Per ulteriori informazioni su tutte le operazioni supportate e i tipi di dati che utilizzano, consulta la Guida di riferimento delle API di AWS X-Ray.
Esempio bin/service-graph.sh
EPOCH=$(date +%s)
aws xray get-service-graph --start-time $(($EPOCH-600)) --end-time $EPOCH
Lo script recupera un grafo del servizio relativo agli ultimi 10 minuti.
~/eb-java-scorekeep$ ./bin/service-graph.sh
| less
{
"StartTime": 1479068648.0,
"Services": [
{
"StartTime": 1479068648.0,
"ReferenceId": 0,
"State": "unknown",
"EndTime": 1479068651.0,
"Type": "client",
"Edges": [
{
"StartTime": 1479068648.0,
"ReferenceId": 1,
"SummaryStatistics": {
"ErrorStatistics": {
"ThrottleCount": 0,
"TotalCount": 0,
"OtherCount": 0
},
"FaultStatistics": {
"TotalCount": 0,
"OtherCount": 0
},
"TotalCount": 2,
"OkCount": 2,
"TotalResponseTime": 0.054000139236450195
},
"EndTime": 1479068651.0,
"Aliases": []
}
]
},
{
"StartTime": 1479068648.0,
"Names": [
"scorekeep.elasticbeanstalk.com"
],
"ReferenceId": 1,
"State": "active",
"EndTime": 1479068651.0,
"Root": true,
"Name": "scorekeep.elasticbeanstalk.com",
...
Esempio bin/trace-urls.sh
EPOCH=$(date +%s)
aws xray get-trace-summaries --start-time $(($EPOCH-120)) --end-time $(($EPOCH-60)) --query 'TraceSummaries[*].Http.HttpURL'
Lo script recupera l'URL dei tracciamenti generati tra uno e due minuti fa.
~/eb-java-scorekeep$ ./bin/trace-urls.sh
[
"http://scorekeep.elasticbeanstalk.com/api/game/6Q0UE1DG/5FGLM9U3/endtime/1479069438",
"http://scorekeep.elasticbeanstalk.com/api/session/KH4341QH",
"http://scorekeep.elasticbeanstalk.com/api/game/GLQBJ3K5/153AHDIA",
"http://scorekeep.elasticbeanstalk.com/api/game/VPDL672J/G2V41HM6/endtime/1479069466"
]
Esempio bin/full-traces.sh
EPOCH=$(date +%s)
TRACEIDS=$(aws xray get-trace-summaries --start-time $(($EPOCH-120)) --end-time $(($EPOCH-60)) --query 'TraceSummaries[*].Id' --output text)
aws xray batch-get-traces --trace-ids $TRACEIDS --query 'Traces[*]'
Lo script recupera i tracciamenti completi generati tra uno e due minuti fa.
~/eb-java-scorekeep$ ./bin/full-traces.sh
| less
[
{
"Segments": [
{
"Id": "3f212bc237bafd5d",
"Document": "{\"id\":\"3f212bc237bafd5d\",\"name\":\"DynamoDB\",\"trace_id\":\"1-5828d9f2-a90669393f4343211bc1cf75\",\"start_time\":1.479072242459E9,\"end_time\":1.479072242477E9,\"parent_id\":\"72a08dcf87991ca9\",\"http\":{\"response\":{\"content_length\":60,\"status\":200}},\"inferred\":true,\"aws\":{\"consistent_read\":false,\"table_name\":\"scorekeep-session-xray\",\"operation\":\"GetItem\",\"request_id\":\"QAKE0S8DD0LJM245KAOPMA746BVV4KQNSO5AEMVJF66Q9ASUAAJG\",\"resource_names\":[\"scorekeep-session-xray\"]},\"origin\":\"AWS::DynamoDB::Table\"}"
},
{
"Id": "309e355f1148347f",
"Document": "{\"id\":\"309e355f1148347f\",\"name\":\"DynamoDB\",\"trace_id\":\"1-5828d9f2-a90669393f4343211bc1cf75\",\"start_time\":1.479072242477E9,\"end_time\":1.479072242494E9,\"parent_id\":\"37f14ef837f00022\",\"http\":{\"response\":{\"content_length\":606,\"status\":200}},\"inferred\":true,\"aws\":{\"table_name\":\"scorekeep-game-xray\",\"operation\":\"UpdateItem\",\"request_id\":\"388GEROC4PCA6D59ED3CTI5EEJVV4KQNSO5AEMVJF66Q9ASUAAJG\",\"resource_names\":[\"scorekeep-game-xray\"]},\"origin\":\"AWS::DynamoDB::Table\"}"
}
],
"Id": "1-5828d9f2-a90669393f4343211bc1cf75",
"Duration": 0.05099987983703613
}
...
Pulizia
Termina il tuo ambiente Elastic Beanstalk per chiudere le istanze Amazon EC2, le tabelle DynamoDB e altre risorse.
Per terminare l'ambiente Elastic Beanstalk
Apri la console Elastic Beanstalk
. Passa alconsole di gestioneper il tuo ambiente.
-
Scegli Actions (Azioni).
-
Scegliere Terminate Environment (Termina ambiente).
-
Scegliere Terminate (Termina).
I dati di traccia vengono eliminati automaticamente da X-Ray dopo 30 giorni.