

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 AWS X-Ray para rastrear solicitações em AWS AppSync
<a name="x-ray-tracing"></a>

Você pode usar [AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)para rastrear solicitações à medida que elas são executadas em AWS AppSync. Você pode usar o X-Ray AWS AppSync em todas as AWS regiões onde o X-Ray está disponível. O X-Ray oferece uma visão geral detalhada de uma solicitação GraphQL inteira. Isso permite que você analise as latências em seus resolvedores APIs e fontes de dados subjacentes. Você pode usar um mapa do serviço X-Ray para visualizar a latência de uma solicitação, incluindo quaisquer AWS serviços integrados ao X-Ray. Também é possível configurar regras de amostragem para informar ao X-Ray quais solicitações registrar e com quais taxas de amostragem, de acordo com os critérios especificados.

Para obter mais informações sobre amostragem no X-Ray, consulte [Configurando regras de amostragem no console](https://docs.aws.amazon.com/xray/latest/devguide/xray-console-sampling.html). AWS X-Ray 

## Definição e configuração
<a name="setup-and-configuration"></a>

Você pode ativar o rastreamento X-Ray para uma API GraphQL por meio do AWS AppSync console.

1. Faça login no AWS AppSync console.

1. Selecione **Configurações** no painel de navegação.

1. Em **X-Ray**, ative a opção **Habilitar o X-Ray**.

1. Escolha **Salvar**. O rastreamento do X-Ray agora está habilitado para sua API.

Se você estiver usando o AWS CLI ou AWS CloudFormation, você também pode ativar o X-Ray Tracing ao criar uma nova AWS AppSync API ou atualizar uma AWS AppSync API existente, definindo a `xrayEnabled` propriedade como`true`.

Quando o X-Ray Tracing é ativado para uma AWS AppSync API, uma [função AWS Identity and Access Management vinculada ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) é criada automaticamente em sua conta com as permissões apropriadas. Isso permite AWS AppSync enviar traços para o X-Ray de forma segura.

## Rastreamento da sua API com o X-Ray
<a name="tracing-your-api-with-xray"></a>

### Amostragem
<a name="sampling"></a>

Ao usar regras de amostragem, é possível controlar a quantidade de dados gravados no AWS AppSync e modificar o comportamento de amostragem instantaneamente, sem modificar nem reimplantar o código. Por exemplo, esta regra faz amostragem de solicitações para a API GraphQL com o ID da API `3n572shhcpfokwhdnq1ogu59v6`.
+  **Nome da regra** – `test-sample` 
+  **Prioridade** – `10` 
+  **Tamanho do reservatório** – `10` 
+  **Taxa fixa** – `10` 
+  **Nome do serviço** – `*` 
+  **Tipo de serviço** – `AWS::AppSync::GraphQLAPI` 
+  **Método HTTP** – `*` 
+  **ARN do recurso** – `arn:aws:appsync:us-west-2:123456789012:apis/3n572shhcpfokwhdnq1ogu59v6` 
+  **Host** – `*` 

### Noções básicas sobre rastreamentos
<a name="understanding-traces"></a>

Ao habilitar o rastreamento do X-Ray para sua API GraphQL, é possível usar a página de detalhes de rastreamento do X-Ray para examinar informações detalhadas de latência sobre solicitações feitas para a API. O exemplo a seguir mostra a exibição de rastreamento junto com o mapa de serviço para essa solicitação específica. A solicitação foi feita para uma API chamada `postAPI` com um tipo Post, cujos dados estão contidos em uma tabela do Amazon DynamoDB chamada `PostTable-Example`.

A imagem de rastreamento a seguir corresponde à seguinte consulta do GraphQL:

```
query getPost {
    getPost(id: "1") {
      id
      title
    }
}
```

O resolvedor para a consulta `getPost` usa a fonte de dados subjacente do DynamoDB. A exibição de rastreamento a seguir mostra a chamada para o DynamoDB, bem como as latências de várias partes da execução da consulta:

![\[Trace view showing client request, postAPI, and DynamoDB with durations and request details.\]](http://docs.aws.amazon.com/pt_br/appsync/latest/devguide/images/xray-getpost-trace-view.png)

+ Na imagem anterior, `/getPost` representa o caminho completo para o elemento que está sendo resolvido. Nesse caso, como `getPost` é um campo no tipo raiz `Query`, ele é exibido diretamente após a raiz do caminho.
+  `requestMappingTemplateEvaluation` representa o tempo gasto pelo AWS AppSync para avaliar o modelo de mapeamento de solicitação para esse elemento na consulta.
+  `Query.getPost` representa um tipo e um campo (no formato `Type.field`). Ele pode conter vários subsegmentos, dependendo da estrutura da API e da solicitação que está sendo rastreada.
  +  `DynamoDB` representa a fonte de dados associada a esse resolvedor. Ele contém a latência para a chamada de rede para o DynamoDB resolver o campo.
  +  `responseMappingTemplateEvaluation` representa o tempo gasto pelo AWS AppSync para avaliar o modelo de mapeamento de resposta para esse elemento na consulta.

Ao visualizar traços no X-Ray, você pode obter informações contextuais e de metadados adicionais sobre os subsegmentos no AWS AppSync segmento escolhendo os subsegmentos e explorando a exibição detalhada.

Para determinadas consultas complexas ou profundamente aninhadas, observe que o segmento entregue ao X-Ray por AWS AppSync pode ser maior do que o tamanho máximo permitido para documentos do segmento, conforme definido em Documentos do [AWS X-Ray Segmento](https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html). O X-Ray não exibe segmentos que excedam o limite.