Uso do AWS X-Ray para rastrear solicitações no AWS AppSync - AWS AppSync GraphQL

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á.

Uso do AWS X-Ray para rastrear solicitações no AWS AppSync

Você pode usar AWS X-Ray para rastrear solicitações à medida que são executadas no AWS AppSync. Você pode usar o X-Ray com AWS AppSync em todas as regiões da AWS onde o X-Ray está disponível. O X-Ray oferece uma visão geral detalhada de uma solicitação GraphQL inteira. Dessa forma, é possível analisar latências em suas APIs e seus resolvedores e fontes de dados subjacentes. Você pode usar um mapa de serviço do X-Ray para visualizar a latência de uma solicitação, incluindo todos os serviços da AWS 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 Configuração de regras de amostragem no console AWS X-Ray.

Definição e configuração

É possível habilitar o rastreamento do X-Ray para uma API GraphQL por meio do console do AWS AppSync.

  1. Faça logon no console do AWS AppSync.

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

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

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

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

Quando o rastreamento do X-Ray está habilitado para uma API do AWS AppSync, uma função AWS Identity and Access Management vinculada ao serviço é criada automaticamente em sua conta com as permissões apropriadas. Isso permite que o AWS AppSync envie rastreamentos para o X-Ray de forma segura.

Rastreamento da sua API com o X-Ray

Amostragem

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.

  • Rule name (Nome da regratest-sample

  • Prioridade10

  • Tamanho do reservatório10

  • Taxa fixa10

  • Nome do serviço*

  • Tipo de serviçoAWS::AppSync::GraphQLAPI

  • Método HTTP*

  • ARN do recursoarn:aws:appsync:us-west-2:123456789012:apis/3n572shhcpfokwhdnq1ogu59v6

  • Host*

Noções básicas sobre rastreamentos

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.
  • 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 exibir rastreamentos no X-Ray, é possível obter informações contextuais e de metadados adicionais sobre os subsegmentos no segmento do AWS AppSync escolhendo os subsegmentos e explorando a exibição detalhada.

Para determinadas consultas profundamente aninhadas ou complexas, o segmento entregue ao X-Ray pelo AWS AppSync pode ser maior do que o tamanho máximo permitido para documentos de segmento, conforme definido nos Documentos de segmento do AWS X-Ray. O X-Ray não exibe segmentos que excedam o limite.