View a markdown version of this page

O Trace Step Functions solicita dados em AWS X-Ray - AWS Step Functions

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

O Trace Step Functions solicita dados em AWS X-Ray

Você pode usar o AWS X-Ray para visualizar os componentes da máquina de estado, identificar gargalos de desempenho e solucionar problemas de solicitações que resultaram em erros. Sua máquina de estado envia dados de rastreamento e X-Ray os X-Ray processa para gerar um mapa de serviço e resumos de rastreamento pesquisáveis.

Com a X-Ray opção habilitada para sua máquina de estado, você pode rastrear solicitações conforme elas são executadas no Step Functions, em todas as AWS regiões em que X-Ray está disponível. Isso fornece uma visão geral detalhada de toda uma solicitação do Step Functions. O Step Functions enviará rastreamentos X-Ray para execuções de máquinas de estado, mesmo quando um ID de rastreamento não for passado por um serviço upstream. Você pode usar um mapa de X-Ray serviços para visualizar a latência de uma solicitação, incluindo quaisquer AWS serviços integrados ao X-Ray. Você também pode configurar regras de amostragem para informar X-Ray quais solicitações devem ser registradas e em quais taxas de amostragem, de acordo com os critérios que você especificar.

Quando não X-Ray estiver habilitado para sua máquina de estado e um serviço upstream não passar um ID de rastreamento, o Step Functions não enviará rastreamentos X-Ray para execuções de máquina de estado. No entanto, se um ID de rastreamento for passado por um serviço upstream, o Step Functions enviará rastreamentos X-Ray para execuções de máquinas de estado.

Você pode usar AWS X-Ray com Step Functions em regiões onde ambos são suportados. Consulte as páginas Step Functions, X-Rayendpoints e cotas para obter informações sobre o suporte regional X-Ray e o Step Functions.

X-Ray Cotas combinadas e Step Functions

Você pode adicionar dados a um rastreamento por até sete dias e consultar dados de rastreamento que remontam a trinta dias, o período de tempo que X-Ray armazena os dados de rastreamento. Seus rastreamentos estarão sujeitos a X-Ray cotas. Além de outras cotas, X-Ray fornece um tamanho mínimo de rastreamento garantido de 100 KiB para máquinas de estado Step Functions. Se mais de 100 KiB de dados de rastreamento forem fornecidos X-Ray, isso poderá resultar em um rastreamento congelado. Consulte a seção de cotas de serviço da página de X-Ray endpoints e cotas para obter mais informações sobre outras cotas para. X-Ray

Importante

O Step Functions não oferece suporte ao X-Ray rastreamento das execuções do fluxo de trabalho secundário iniciadas por um estado de Mapa Distribuído porque é fácil exceder o limite de tamanho do documento de rastreamento para essas execuções.

Definição e configuração

X-Ray Ativar o rastreamento ao criar uma máquina de estado

Você pode ativar o X-Ray rastreamento ao criar uma nova máquina de estado selecionando X-Ray Ativar rastreamento na página Especificar detalhes.

  1. Abra o console do Step Functions e clique em Criar máquina de estado.

  2. Na página Escolher método de criação, escolha uma opção apropriada para criar a máquina de estado. Se você escolher Executar um projeto de amostra, não poderá ativar o X-Ray rastreamento durante a criação da máquina de estado e precisará ativar o X-Ray rastreamento após a criação da máquina de estado. Para obter mais informações sobre como habilitar X-Ray em uma máquina de estado existente, consulteHabilitar X-Ray em uma máquina de estado existente.

    Escolha Próximo.

  3. Na página Especificar detalhes, configure a máquina de estado.

  4. Escolha Ativar X-Ray rastreamento.

    Sua máquina de estado Step Functions agora enviará rastreamentos X-Ray para execuções da máquina de estado.

    nota

    Se você optar por usar uma função existente do IAM, você deve garantir que as X-Ray gravações sejam permitidas. Para ter mais informações sobre as permissões necessárias, consulte o tópico a seguir.

Políticas do IAM usando AWS X-Ray em Step Functions

Para habilitar o X-Ray rastreamento, você precisará de uma política do IAM com permissões adequadas para permitir o rastreamento. Se a máquina de estado usa outros serviços integrados, podem ser necessárias políticas adicionais do IAM. Veja as políticas do IAM para suas integrações de serviços específicas.

Se você habilitar o X-Ray rastreamento para uma máquina de estado existente, deverá garantir a adição de uma política com permissões suficientes para habilitar X-Ray rastreamentos.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": [ "*" ] } ] }

Habilitar X-Ray em uma máquina de estado existente

Para habilitar X-Ray em uma máquina de estado existente:

  1. No console do Step Functions, selecione a máquina de estado para a qual você deseja ativar o rastreamento.

  2. Escolha Editar.

  3. Escolha Ativar X-Ray rastreamento.

    Você verá uma notificação informando que talvez seja necessário fazer alterações adicionais.

    nota

    Ao habilitar X-Ray para uma máquina de estado existente, você deve garantir que tenha uma política do IAM que conceda permissões suficientes X-Ray para realizar rastreamentos. Você pode adicionar uma manualmente ou gerar uma. Para obter mais informações, consulte a seção Política do IAM para o Políticas do IAM usando AWS X-Ray em Step Functions.

  4. (Opcional) Auto-generate uma nova função para sua máquina de estado para incluir X-Ray permissões.

  5. Escolha Salvar.

Configurar o X-Ray rastreamento para Step Functions

Quando você executa pela primeira vez uma máquina de estado com X-Ray o rastreamento ativado, ela usará os valores de configuração padrão para X-Ray rastreamento. AWS X-Ray não coleta dados para cada solicitação enviada a um aplicativo. Em vez disso, ele coleta dados para um número estatisticamente significativo de solicitações. O padrão é registrar a primeira solicitação a cada segundo e cinco por cento de todas as solicitações adicionais. Uma solicitação por segundo é o reservatório. Isso garante que pelo menos um rastreamento seja registrado a cada segundo à medida que o serviço atende às solicitações. Cinco por cento é a taxa segundo a qual as solicitações adicionais, além do tamanho de reservatório, são amostradas.

Para evitar cobranças incorridas para o serviço quando você está começando a usá-lo, a taxa de amostragem padrão é conservadora. Você pode configurar X-Ray para modificar a regra de amostragem padrão e configurar regras adicionais que apliquem a amostragem com base nas propriedades do serviço ou da solicitação.

Por exemplo, talvez você queira desativar a amostragem e rastrear todas as solicitações de chamadas que modificam o estado, o identificador Contas da AWS ou as transações. Para chamadas somente leitura de alto volume, como a sondagem de plano de fundo, as verificações de integridade ou a manutenção da conexão, você pode coletar amostras a uma taxa baixa e ainda obter dados suficientes para observar quaisquer problemas que ocorram.

Para configurar uma regra de amostragem para a máquina de estado:

  1. Acesse o console do X-Ray .

  2. Escolha Amostragem.

  3. Para criar uma regra, escolha Criar regra de amostragem.

    Para editar uma regra, escolha o nome de uma regra.

    Para excluir uma regra, escolha uma regra e use o menu Actions (Ações) para excluí-la.

Algumas partes das regras de amostragem existentes, como o nome e a prioridade, não podem ser alteradas. Em vez disso, adicione ou clone uma regra existente, faça as alterações desejadas e use a nova regra.

Para obter informações detalhadas sobre regras de X-Ray amostragem e como configurar os vários parâmetros, consulte Configuração de regras de amostragem no console. X-Ray

Integrar serviços upstream

Para integrar a execução dos fluxos de trabalho do Step Functions, como fluxos de trabalho padrão, Synchronous e padrão, com um serviço upstream, você precisa definir o traceHeader. Isso é feito automaticamente para você se você estiver usando uma API HTTP no API Gateway. No entanto, se você estiver usando uma função Lambda, and/or um SDK, precisará definir você mesmo as chamadas traceHeader on the StartExecutionou StartSyncExecutionAPI.

É necessário especificar o formato traceHeader como \p{ASCII}∗. Além disso, para permitir que o Step Functions use o mesmo ID de rastreamento, você deve especificar o formato como Root={TRACE_ID};Sampled={1 or 0}. Se você estiver usando uma função do Lambda, substitua o TRACE_IDpelo ID de rastreamento no segmento atual e defina o campo Amostragem como 1 se o modo de amostragem for true e 0 se o modo de amostragem for false. Fornecer o ID de rastreamento nesse formato garante que você obtenha um rastreamento completo.

Veja a seguir um exemplo escrito em Python para mostrar como especificar o traceHeader.

state_machine = config.get_string_paramter("STATE_MACHINE_ARN") if (xray_recorder.current_subsegment() is not None and xray_recorder.current_subsegment().sampled) : trace_id = "Root={};Sampled=1".format( xray_recorder.current_subsegment().trace_id ) else: trace_id = "Root=not enabled;Sampled=0" LOGGER.info("trace %s", trace_id) # execute it response = states.start_sync_execution( stateMachineArn=state_machine, input=event['body'], name=context.aws_request_id, traceHeader=trace_id ) LOGGER.info(response)
X-Ray rastreamento no cabeçalho ou na carga

Para X-Ray rastreamentos, todos os AWS serviços usam o X-Amzn-Trace-Id cabeçalho da solicitação HTTP. Usar o cabeçalho é o mecanismo preferido para identificar um rastreamento. StartExecution e as operações de API StartSyncExecution também podem usar traceHeader no do corpo da carga útil da solicitação. Se ambas as fontes forem fornecidas, Step Functions usará o valor do cabeçalho (preferencial) sobre o valor no corpo da solicitação.

Conceitos

O X-Ray console

No AWS X-Ray console, você pode visualizar mapas e rastreamentos de serviços para solicitações que seus aplicativos atendem quando X-Ray estão habilitados para sua máquina de estado.

Consulte Visualizando o X-Ray console para obter informações sobre como acessar o X-Ray console para suas execuções de máquina de estado.

Para obter informações detalhadas sobre o X-Ray console, consulte a documentação do X-Ray console.

Segmentos, subsegmentos e rastreamentos

Um segmento registra informações sobre uma solicitação na máquina de estado. Ele contém informações como o trabalho que a máquina de estado executa e também pode conter subsegmentos com informações sobre chamadas downstream.

Um rastreamento coleta todos os segmentos gerados por uma única solicitação.

Amostragem

Para garantir um rastreamento eficiente e fornecer uma amostra representativa das solicitações que seu aplicativo atende, X-Ray aplique um algoritmo de amostragem para determinar quais solicitações são rastreadas. Isso pode ser alterado editando as regras de amostragem.

Metrics

Para sua máquina de estado, X-Ray medirá o tempo de invocação, o tempo de transição de estado, o tempo geral de execução de Step Functions e as variações nesse tempo de execução. Essas informações podem ser acessadas por meio do X-Ray console.

Analytics

O console do AWS X-Ray Analytics é uma ferramenta interativa para interpretar dados de rastreamento. É possível refinar o conjunto de dados ativo com filtros cada vez mais granulares clicando nos gráficos e nos painéis de métricas e campos que estão associados ao conjunto de rastreamentos atual. É possível analisar a performance da máquina de estado, além de localizar e identificar problemas de performance.

Para obter informações detalhadas sobre X-Ray análises, consulte Interação com o console do AWS X-Ray Analytics

Integrações de serviços Step Functions e X-Ray

Alguns dos AWS serviços que se integram ao Step Functions oferecem integração com a adição AWS X-Ray de um cabeçalho de rastreamento às solicitações, a execução do X-Ray daemon ou a tomada de decisões de amostragem e o upload de dados de rastreamento para o. X-Ray Outros devem ser instrumentados usando o AWS X-Ray SDK. Alguns ainda não oferecem suporte à X-Ray integração. X-Ray a integração é necessária para fornecer dados de rastreamento completos ao usar uma integração de serviços com Step Functions

X-Ray Suporte nativo

As integrações de serviços com X-Ray suporte nativo incluem:

Instrumentação necessária

Integrações de serviços que exigem X-Rayinstrumentação:

  • Amazon Elastic Container Service

  • AWS Batch

  • AWS Fargate

Client-side somente rastreamento

Outras integrações de serviços não oferecem suporte a X-Ray rastreamentos. No entanto, os rastreamentos do lado do cliente ainda podem ser coletados:

  • Amazon DynamoDB

  • Amazon EMR

  • SageMaker Inteligência Artificial da Amazon

  • AWS CodeBuild

  • AWS Glue

Visualizando o X-Ray console

X-Ray recebe dados de serviços como segmentos. X-Ray agrupa segmentos que têm uma solicitação comum em rastreamentos. X-Ray processa os rastreamentos para gerar um gráfico de serviço que fornece uma representação visual do seu aplicativo.

Depois de iniciar a execução da sua máquina de estado, você pode visualizar seus X-Ray rastreamentos escolhendo o link do mapa de X-Ray rastreamento na seção Detalhes da execução.

Depois de habilitar X-Ray sua máquina de estado, você pode visualizar as informações de rastreamento de suas execuções no X-Ray console.

Visualizando informações X-Ray de rastreamento para Step Functions

As etapas a seguir ilustram o tipo de informação que você pode ver no console depois de ativar X-Ray e executar uma execução. X-Ray traços para o projeto Criar um exemplo de padrão de retorno de chamada com o Amazon SQS, o Amazon SNS e o Lambda de amostra são mostrados.

Rastreamentos

Depois que a execução for concluída, você poderá navegar até o X-Ray console, onde verá a página X-Ray Traces. Isso exibe uma visão geral do mapa de serviços, bem como informações de rastreamento e segmento para a máquina de estado.

Captura de tela ilustrativa de X-Ray traços de uma máquina de estado.

Mapa de serviço

O mapa de serviços no X-Ray console ajuda você a identificar serviços em que ocorrem erros, onde há conexões com alta latência ou a ver rastreamentos de solicitações que não tiveram êxito.

Captura de tela ilustrativa focada no mapa de serviço em X-Ray traços.

No mapa de rastreamento, você pode escolher um nó de serviço para visualizar as solicitações desse nó ou uma borda entre dois nós para visualizar as solicitações que percorreram essa conexão. Aqui, o nó WaitForCallBack foi selecionado e você pode ver informações adicionais sobre o status de execução e resposta.

Detalhes de exemplo de um nó de X-Ray rastreamento.

Você pode ver como o mapa X-Ray de serviço se correlaciona com a máquina de estado. Há um nó de mapa de serviço para cada integração de serviço que é chamado pelo Step Functions, desde que seja compatível X-Ray.

Exemplo de representação gráfica da máquina de estado que está sendo rastreada.

Segmentos e subsegmentos

Um rastreamento coleta todos os segmentos gerados por uma única solicitação. Cada segmento fornece o nome do recurso, os detalhes sobre a solicitação e os detalhes sobre o trabalho realizado. Na página Rastreamentos, você pode ver os segmentos e, se expandidos, os subsegmentos correspondentes. Você pode escolher um segmento ou subsegmento para ver informações detalhadas sobre ele.

Você verá um segmento diferente para cada nó no mapa de serviço.

Exemplo de captura de tela de segmentos e subsegmentos de uma máquina de estado.

Escolher um segmento fornece o nome do recurso, os detalhes sobre a solicitação e os detalhes sobre o trabalho realizado.

Um segmento pode dividir os dados sobre o trabalho feito em subsegmentos. A escolha de um subsegmento mostra informações e detalhes de temporização granulares. Um subsegmento pode conter detalhes adicionais sobre uma chamada para um AWS serviço, uma API HTTP externa ou um banco de dados SQL.

Analytics

O console do AWS X-Ray Analytics é uma ferramenta interativa para interpretar dados de rastreamento. Você pode usar isso para entender mais facilmente o desempenho da máquina de estado. É possível explorar, analisar e visualizar rastreamentos por meio de grafos interativos de tempo de resposta e de séries temporais para ajudar a localizar problemas de performance e de latência.

É possível refinar o conjunto de dados ativo com filtros cada vez mais granulares clicando nos gráficos e nos painéis de métricas e campos que estão associados ao conjunto de rastreamentos atual.

Configuração

Você pode configurar as opções de amostragem e criptografia no X-Ray console.

  • Escolha Amostragem para ver detalhes sobre a taxa de amostragem e a configuração.

    Você pode alterar as regras de amostragem para controlar a quantidade de dados gravados e modificar o comportamento de amostragem para atender às suas necessidades específicas.

  • Escolha Criptografia para modificar as configurações de criptografia.

    Você pode usar a configuração padrão, na qual X-Ray criptografa rastreamentos e dados em repouso, ou, se necessário, pode escolher uma chave KMS. As taxas de AWS KMS padrão se aplicam no último caso.

E se não houver dados no mapa de rastreamento ou no mapa de serviço?

Se você ativou X-Ray, mas não consegue ver nenhum dado no X-Ray console, verifique se:

  • Suas funções do IAM estão configuradas corretamente para permitir a gravação em X-Ray.

  • As regras de amostragem permitem a amostragem de dados.

  • Como pode haver um pequeno atraso até que os perfis do IAM recém-criados ou modificados sejam aplicados, verifique o rastreamento ou os mapas de serviço novamente após alguns minutos.

  • Se você ver Dados não encontrados no painel X-Ray Traços, verifique as configurações da sua conta do IAM e verifique se ela AWS Security Token Service está ativada para a região pretendida. Para obter mais informações, consulte Ativação e desativação AWS STSRegião da AWS em um Guia do usuário do IAM.