As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usando a AWS X-Ray API com a AWS CLI
A AWS CLI permite que você acesse o serviço X-Ray diretamente e use o mesmo APIs que o console X-Ray usa para recuperar o gráfico do serviço e os dados brutos de rastreamentos. O aplicativo de amostra inclui scripts que mostram como usá-los APIs com a AWS CLI.
Pré-requisitos
Este tutorial usa o aplicativo de amostra Scorekeep e scripts incluídos para gerar dados de rastreamento e um mapeamento de serviço. Siga as instruções no tutorial de conceitos básicos para iniciar o aplicativo.
Este tutorial usa o AWS CLI para mostrar o uso básico da API X-Ray. A AWS CLI, disponível para Windows, Linux e OS-X, fornece acesso à linha de comando ao público APIs para todos. Serviços da AWS
nota
Você deve verificar se o seu AWS CLI está configurado na mesma região em que seu aplicativo de amostra Scorekeep foi criado.
Os scripts incluídos para testar o aplicativo de exemplo usam cURL para enviar tráfego para a API e jq para analisar a saída. Você pode baixar do executável jq a partir de stedolan.github.iocurl a partir de https://curl.haxx.se/download.html
Gerar dados de rastreamento
O aplicativo Web continua a gerar tráfego para a API a cada poucos segundos enquanto o jogo está em andamento, mas apenas gera um tipo de solicitação. Use o script test-api.sh para executar cenários de ponta a ponta e gerar mais dados diversificados de rastreamento enquanto testa a API.
Para usar o script test-api.sh
- Abra o console do Elastic Beanstalk - . 
- Navegue até o console de gerenciamento do seu ambiente. 
- 
        Copie o URL de ambiente do cabeçalho da página. 
- 
        Abra bin/test-api.she substitua o valor para API com o URL do seu ambiente.#!/bin/bash API=scorekeep.9hbtbm23t2.us-west-2.elasticbeanstalk.com/api
- 
        Execute o script para gerar tráfego para a API. ~/debugger-tutorial$./bin/test-api.shCreating 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"]}
Usar a API do X-Ray
A AWS CLI fornece comandos para todas as ações de API que o X-Ray fornece, incluindo e. GetServiceGraphGetTraceSummaries Consulte a AWS X-Ray Referência da API para mais informações sobre todas as ações suportadas e os tipos de dados que usam.
exemplo bin/service-graph.sh
EPOCH=$(date +%s)
aws xray get-service-graph --start-time $(($EPOCH-600)) --end-time $EPOCHO script recupera um gráfico de serviço para os últimos 10 minutos.
~/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",
...exemplo bin/trace-urls.sh
EPOCH=$(date +%s)
aws xray get-trace-summaries --start-time $(($EPOCH-120)) --end-time $(($EPOCH-60)) --query 'TraceSummaries[*].Http.HttpURL'O script recupera os URLs traços gerados entre um e dois minutos atrás.
~/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"
]exemplo 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[*]'O script recupera rastreamentos completos gerados entre um e dois minutos atrás.
~/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
    }
...
Limpeza
Encerre seu ambiente do Elastic Beanstalk para desligar as instâncias da EC2 Amazon, as tabelas do DynamoDB e outros recursos.
Como encerrar o ambiente do Elastic Beanstalk
- Abra o console do Elastic Beanstalk - . 
- Navegue até o console de gerenciamento do seu ambiente. 
- 
        Escolha Ações. 
- 
        Escolha Terminate Environment. 
- 
        Escolha Encerrar. 
Os dados de rastreamento são excluídos automaticamente do X-Ray após 30 dias.