

AWS App Runner não está mais aberto a novos clientes. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Mudança de disponibilidade do AWS App Runner](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html).

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

# Rastreamento para seu aplicativo App Runner com X-Ray
<a name="monitor-xray"></a>

AWS X-Ray é um serviço que coleta dados sobre solicitações atendidas pelo seu aplicativo e fornece ferramentas que você pode usar para visualizar, filtrar e obter informações sobre esses dados para identificar problemas e oportunidades de otimização. Para qualquer solicitação rastreada para seu aplicativo, você pode ver informações detalhadas não apenas sobre a solicitação e a resposta, mas também sobre as chamadas que seu aplicativo faz para AWS recursos downstream, microsserviços, bancos de dados e web HTTP. APIs

O X-Ray usa dados de rastreamento dos AWS recursos que alimentam seus aplicativos em nuvem para gerar um gráfico de serviço detalhado. O gráfico de serviço mostra o cliente, o serviço front-end e os serviços back-end chamados pelo serviço front-end para processar solicitações e manter dados. Use o gráfico de serviço para identificar gargalos, picos de latência e outros problemas a fim de resolver o desempenho dos aplicativos.

Para obter mais informações sobre o X-Ray, consulte o [Guia do desenvolvedor do AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/).

![Um exemplo de um mapa de serviço X-Ray para um serviço App Runner](http://docs.aws.amazon.com/pt_br/apprunner/latest/dg/images/xray-example.png)


## Instrumente seu aplicativo para rastreamento
<a name="monitor-xray.instrument"></a>

Instrumente seu aplicativo de serviço App Runner para rastreamento usando [OpenTelemetry](https://github.com/open-telemetry)uma especificação de telemetria portátil. No momento, o App Runner oferece suporte à [AWS Distro for OpenTelemetry](https://aws-otel.github.io/docs/introduction) (ADOT), uma OpenTelemetry implementação que coleta e apresenta informações de telemetria usando serviços. AWS X-Ray implementa o componente de rastreamento.

**Dependendo do SDK ADOT específico que você usa em seu aplicativo, o ADOT suporta até duas abordagens de instrumentação: automática e manual.** Para obter mais informações sobre instrumentação com seu SDK, consulte a [documentação do ADOT](https://aws-otel.github.io/docs/introduction) e escolha seu SDK no painel de navegação.

### Configuração de tempo de execução
<a name="monitor-xray.instrument.setup"></a>

 A seguir estão as instruções gerais de configuração do tempo de execução para instrumentar seu aplicativo de serviço App Runner para rastreamento. 

**Para configurar o rastreamento para seu tempo de execução**

1.  Siga as instruções fornecidas para seu tempo de execução no [AWS Distro for OpenTelemetry](https://aws-otel.github.io/docs/introduction) (ADOT), para instrumentar seu aplicativo. 

1.  Instale as `OTEL` dependências necessárias na `build` seção do `apprunner.yaml` arquivo se você estiver usando o repositório de código-fonte ou no Dockerfile se estiver usando uma imagem de contêiner. 

1.  Configure suas variáveis de ambiente no `apprunner.yaml` arquivo se você estiver usando o repositório de código-fonte ou no Dockerfile se estiver usando uma imagem de contêiner.   
**Example Variáveis de ambiente**  
**nota**  
O exemplo a seguir lista as variáveis de ambiente importantes a serem adicionadas ao `apprunner.yaml` arquivo. Adicione essas variáveis de ambiente ao seu Dockerfile se você estiver usando uma imagem de contêiner. No entanto, cada tempo de execução pode ter suas próprias idiossincrasias e talvez seja necessário adicionar mais variáveis de ambiente à lista a seguir. Para obter mais informações sobre instruções específicas de seu tempo de execução e exemplos sobre como configurar seu aplicativo para seu tempo de execução, consulte [AWS Distro for OpenTelemetry](https://aws-otel.github.io/docs/introduction) and go your runtime, em *Getting Started*. 

   ```
   env:
       - name: OTEL_PROPAGATORS
         value: xray
       - name: OTEL_METRICS_EXPORTER
         value: none
       - name: OTEL_EXPORTER_OTLP_ENDPOINT
         value: http://localhost:4317  
       - name: OTEL_RESOURCE_ATTRIBUTES
         value: 'service.name=example_app'
   ```
**nota**  
 `OTEL_METRICS_EXPORTER=none`é uma variável de ambiente importante para o App Runner, pois o coletor App Runner Otel não aceita o registro de métricas. Ele só aceita rastreamento de métricas. 

### Exemplo de configuração de tempo de execução
<a name="monitor-xray.instrument.example"></a>

[O exemplo a seguir demonstra a instrumentação automática de seu aplicativo com o SDK ADOT Python.](https://aws-otel.github.io/docs/getting-started/python-sdk) O SDK produz automaticamente extensões com dados de telemetria que descrevem os valores usados pelas estruturas Python em seu aplicativo sem adicionar uma única linha de código Python. Você precisa adicionar ou modificar apenas algumas linhas em dois arquivos de origem.

Primeiro, adicione algumas dependências, conforme mostrado no exemplo a seguir.

**Example requirements.txt**  

```
opentelemetry-distro[otlp]>=0.24b0
opentelemetry-sdk-extension-aws~=2.0
opentelemetry-propagator-aws-xray~=1.0
```

Em seguida, instrumente seu aplicativo. A forma de fazer isso depende da fonte do serviço: imagem fonte ou código-fonte.

------
#### [ Source image ]

Quando sua fonte de serviço é uma imagem, você pode instrumentar diretamente o Dockerfile que controla a criação da imagem do contêiner e a execução do aplicativo na imagem. O exemplo a seguir mostra um Dockerfile instrumentado para um aplicativo Python. As adições de instrumentação são enfatizadas em negrito.

**Example Dockerfile**  

```
FROM public.ecr.aws/amazonlinux/amazonlinux:latest
RUN yum install python3.7 -y && curl -O https://bootstrap.pypa.io/get-pip.py && python3 get-pip.py && yum update -y
COPY . /app
WORKDIR /app
RUN pip3 install -r requirements.txt
RUN opentelemetry-bootstrap --action=install
ENV OTEL_PYTHON_DISABLED_INSTRUMENTATIONS=urllib3
ENV OTEL_METRICS_EXPORTER=none              
ENV OTEL_RESOURCE_ATTRIBUTES='service.name=example_app'
CMD OTEL_PROPAGATORS=xray OTEL_PYTHON_ID_GENERATOR=xray opentelemetry-instrument python3 app.py
EXPOSE 8080
```

------
#### [ Source code repository ]

Quando sua fonte de serviço é um repositório contendo a fonte do aplicativo, você instrumenta indiretamente sua imagem usando as configurações do arquivo de configuração do App Runner. Essas configurações controlam o Dockerfile que o App Runner gera e usa para criar a imagem para seu aplicativo. O exemplo a seguir mostra um arquivo de configuração instrumentado do App Runner para um aplicativo Python. As adições de instrumentação são enfatizadas em negrito.

**Example apprunner.yaml**  

```
version: 1.0
runtime: python3 
build:
  commands:
    build:
      - pip install -r requirements.txt
      - opentelemetry-bootstrap --action=install
run: 
  command: opentelemetry-instrument python app.py
  network: 
    port: 8080 
  env:
    - name: OTEL_PROPAGATORS
      value: xray
    - name: OTEL_METRICS_EXPORTER
      value: none
    - name: OTEL_PYTHON_ID_GENERATOR
      value: xray  
    - name: OTEL_PYTHON_DISABLED_INSTRUMENTATIONS 
      value: urllib3
    - name: OTEL_RESOURCE_ATTRIBUTES
      value: 'service.name=example_app'
```

------

## Adicione permissões X-Ray à sua função de instância de serviço App Runner
<a name="monitor-xray.role"></a>

Para usar o rastreamento X-Ray com seu serviço App Runner, você precisa fornecer às instâncias do serviço permissões para interagir com o serviço X-Ray. Você faz isso associando uma função de instância ao seu serviço e adicionando uma política gerenciada com permissões X-Ray. Para obter mais informações sobre uma função de instância do App Runner, consulte[Perfil da instância](security_iam_service-with-iam.md#security_iam_service-with-iam-roles-service.instance). Adicione a política `AWSXRayDaemonWriteAccess` gerenciada à sua função de instância e atribua-a ao seu serviço durante a criação.

## Ative o rastreamento X-Ray para seu serviço App Runner
<a name="monitor-xray.config"></a>

Quando você [cria um serviço](manage-create.md), o App Runner desativa o rastreamento por padrão. Você pode ativar o rastreamento X-Ray para seu serviço como parte da configuração da observabilidade. Para obter mais informações, consulte [Gerencie a observabilidade](manage-configure-observability.md#manage-configure-observability.manage).

Se você usa a API App Runner ou a AWS CLI, o [TraceConfiguration](https://docs.aws.amazon.com/apprunner/latest/api/API_TraceConfiguration.html)objeto dentro do objeto de [ObservabilityConfiguration](https://docs.aws.amazon.com/apprunner/latest/api/API_ObservabilityConfiguration.html)recurso contém configurações de rastreamento. Para manter o rastreamento desativado, não especifique um `TraceConfiguration` objeto.

Nos casos do console e da API, não se esqueça de associar sua função de instância discutida na seção anterior ao seu serviço App Runner.

## Visualize os dados de rastreamento do X-Ray para seu serviço App Runner
<a name="monitor-xray.view"></a>

Na guia **Observabilidade** da [página do painel de serviços](console.md#console.dashboard) no console do App Runner, escolha **Exibir mapa do serviço** para navegar até o console da Amazon CloudWatch .

![Página do painel do serviço App Runner mostrando a guia de observabilidade](http://docs.aws.amazon.com/pt_br/apprunner/latest/dg/images/service-dashboad-observability.png)


Use o CloudWatch console da Amazon para visualizar mapas e rastreamentos de serviços para solicitações atendidas pelo seu aplicativo. Os mapas de serviços mostram informações como latência da solicitação e interações com outros aplicativos e AWS serviços. As anotações personalizadas que você adiciona ao seu código permitem que você pesquise facilmente por rastreamentos. Para obter mais informações, consulte [Usando ServiceLens para monitorar a integridade de seus aplicativos](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ServiceLens.html) no *Guia do CloudWatch usuário da Amazon*.