

# Exportação de telemetria sem coletor usando o AWS Distro para OpenTelemetry (ADOT)
<a name="CloudWatch-OTLP-UsingADOT"></a>

Você pode usar os SDKs do ADOT para operar sem coletor e enviar as métricas, os rastreamentos e os logs diretamente para endpoints do OTLP.

**nota**  
O Application Signals inclui recursos de pesquisa de transações. Para evitar custos duplicados, desabilite o Application Signals no SDK do ADOT e mantenha `OTEL_AWS_APPLICATION_SIGNALS_ENABLED` definido como false (configuração padrão). 

**Topics**
+ [Pré-requisito](#CloudWatch-OTLP-UsingADOT-Prerequisite)
+ [Configurar as permissões do IAM para seu perfil](#setup-iam-permissions-role)
+ [Configurar os provedores de credenciais](#configure-credentials-providers)
+ [Habilitação dos SDKs do ADOT](#Enabling-ADOT)

## Pré-requisito
<a name="CloudWatch-OTLP-UsingADOT-Prerequisite"></a>

Se estiver usando rastreamentos, certifique-se de que a Pesquisa de transações esteja habilitada para enviar extensões para o endpoint do OTLP do X-Ray. Para obter mais informações, consulte [Conceitos básicos da Pesquisa de transações](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search-getting-started.html).

## Configurar as permissões do IAM para seu perfil
<a name="setup-iam-permissions-role"></a>

Siga as etapas abaixo para anexar as políticas do IAM necessárias para o seu perfil:

**Rastreamentos:**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Escolha **Perfis** e localize e selecione seu perfil configurado.

1. Na guia **Permissões**, escolha **Adicionar permissões** e, em seguida, **Anexar políticas**.

1. Usando a caixa de pesquisa, procure a política `AWSXrayWriteOnlyPolicy`.

1. Selecione a política `AWSXrayWriteOnlyPolicy` e escolha **Adicionar permissões**.

**Logs:**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Escolha **Perfis** e localize e selecione seu perfil configurado.

1. Na guia **Permissões**, escolha **Adicionar permissões** e depois **Criar política em linha**.

1. Selecione **CloudWatch Logs** para o serviço e, em **Ações permitidas**, filtre e selecione:

   ```
   logs:PutLogEvents
   logs:DescribeLogGroups
   logs:DescribeLogStreams
   ```

1. Confira abaixo um exemplo de política do IAM que concede as permissões necessárias:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CloudWatchLogsAccess",
               "Effect": "Allow",
               "Action": [
                   "logs:PutLogEvents",
                   "logs:DescribeLogGroups",
                   "logs:DescribeLogStreams"
                  
               ],
               "Resource": [
                   "arn:aws:logs:*:*:log-group:*"
               ]
           }
       ]
   }
   ```

------

## Configurar os provedores de credenciais
<a name="configure-credentials-providers"></a>

O ADOT usa os SDKs da AWS para descobrir automaticamente as credenciais válidas necessárias para exportar seus dados de telemetria para a AWS. Para obter orientação sobre como configurar credenciais para seu ambiente específico, [consulte a documentação sobre como os SDKs da AWS](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html) recuperam as credenciais.

**Configuração de credenciais do IAM para hosts on-premises:**

Configure suas credenciais da AWS no host on-premises ao inserir o comando a seguir. Substitua **ACCESS\$1KEY\$1ID** e **SECRET\$1ACCESS\$1KEY** pelas credenciais do seu usuário ou perfil do IAM configurado.

```
$ aws configure
AWS Access Key ID [None]: ACCESS_KEY_ID
AWS Secret Access Key [None]: SECRET_ACCESS_ID
Default region name [None]: MY_REGION
Default output format [None]: json
```

## Habilitação dos SDKs do ADOT
<a name="Enabling-ADOT"></a>

É possível habilitar o envio de logs e rastreamentos da sua aplicação diretamente para endpoints do OTLP por meio do SDK do AWS Distro para OpenTelemetry (ADOT) em Java, Node.js, Python e .NET.

------
#### [ Java ]

**nota**  
Você deve usar o **ADOT Java Agent versão 2.11.2 ou posterior** para que esses recursos estejam disponíveis.

1. Faça download da versão mais recente do agente de instrumentação automática em Java do AWS Distro para OpenTelemetry. Você pode baixar a versão mais recente ao usar este comando:

   ```
   curl -L -O https://github.com/aws-observability/aws-otel-java-instrumentation/releases/latest/download/aws-opentelemetry-agent.jar
   ```

   É possível visualizar informações sobre todas as versões liberadas em [aws-otel-java-instrumentation Releases](https://github.com/aws-observability/aws-otel-java-instrumentation/releases).

1. Para habilitar o exportador diferente que envia telemetria diretamente para endpoints do OTLP e otimizar os benefícios, use as seguintes variáveis de ambiente antes de iniciar a aplicação:

   **Rastreamentos:**
   + Defina `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` para especificar o endpoint de rastreamentos do OTLP do X-Ray: `https://xray.[AWSRegion].amazonaws.com/v1/traces`

     Por exemplo:

     ```
     export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
     ```
   + Defina `OTEL_TRACES_EXPORTER` como `otlp` (é opcional e será o valor padrão se essa variável de ambiente não estiver definida).
   + Defina a varável `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` como `http/protobuf` (é opcional e será o valor padrão se essa variável de ambiente não estiver definida).
   + Defina a variável `OTEL_RESOURCE_ATTRIBUTES` para especificar as informações a seguir como pares de chave/valor. Essas variáveis de ambiente são usadas pelo Application Signals, e são convertidas em anotações de rastreamentos do X-Ray e em dimensões de métricas do CloudWatch.
     + (Opcional) `service.name` define o nome do serviço. Isso será exibido como o nome do serviço para a aplicação nos painéis do Application Signals. Se você não fornecer um valor para essa chave, o padrão `UnknownService` será usado.
     + (Opcional) `deployment.environment` define o ambiente em que a aplicação é executada. Isso será exibido como o ambiente **Hospedado em** da aplicação.
     + (Opcional) Para habilitar a correlação de logs, em `OTEL_RESOURCE_ATTRIBUTES`, defina uma variável de ambiente `aws.log.group.names` adicional para os grupos de logs da sua aplicação. Ao fazer isso, será possível correlacionar os rastreamentos e métricas da sua aplicação com as entradas de log relevantes desses grupos de logs. Para essa variável, substitua `$YOUR_APPLICATION_LOG_GROUP` pelos nomes do grupo de logs da sua aplicação. Se você tiver vários grupos de logs, é possível usar um e comercial (`&`) para separá-los, como neste exemplo: `aws.log.group.names=log-group-1&log-group-2`. Para permitir que a métrica registre a correlação em log, basta definir essa variável ambiental atual. Para obter mais informações, consulte [Habilitar a correlação entre métrica e logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-MetricLogCorrelation.html). Para habilitar a correlação entre logs e rastreamento, você também precisará alterar a configuração de registro em log em sua aplicação. Para obter mais informações, consulte [Habilitar a correlação entre rastreamento e logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html).

   **Logs:**
   + Defina `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` para especificar o endpoint de logs do OTLP do CloudWatch: `https://logs.[AWSRegion].amazonaws.com/v1/logs`

     Por exemplo:

     ```
     export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT="https://logs.us-west-2.amazonaws.com/v1/logs"
     ```
   + Defina `OTEL_EXPORTER_OTLP_LOGS_HEADERS` para especificar o grupo de logs e o fluxo de logs (observação: eles devem ser criados **antes** da execução do ADOT) para os quais você deseja exportar seus logs: `x-aws-log-group=[CW-LOG-GROUP-NAME],x-aws-log-stream=[CW-LOG-STREAM-NAME]`

     Por exemplo:

     ```
     export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default
     ```
   + Defina `OTEL_LOGS_EXPORTER` como `otlp` (é opcional e será o valor padrão se essa variável de ambiente não estiver definida).
   + Defina a varável `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` como `http/protobuf` (é opcional e será o valor padrão se essa variável de ambiente não estiver definida).

1. Defina `JAVA_TOOL_OPTIONS` para especificar o caminho em que o agente de instrumentação automática em Java do AWS Distro para OpenTelemetry está armazenado. Por exemplo:

   ```
   export JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH"
   export AWS_ADOT_JAVA_INSTRUMENTATION_PATH="./aws-opentelemetry-agent.jar"
   ```

1. Agora, sua aplicação deve estar sendo executada com a instrumentação Java do ADOT e vai gerar logs e spans. As extensões serão armazenadas no grupo de logs `aws/spans` do CloudWatch, enquanto os logs serão armazenados no grupo de logs especificado no cabeçalho `OTEL_EXPORTER_OTLP_LOGS_HEADERS`. Você também pode visualizar os logs e as métricas correlacionados com suas extensões no console de rastreamentos e métricas do CloudWatch.

1. Inicie a aplicação com as variáveis ​​de ambiente listadas na etapa anterior. Veja a seguir um exemplo de um script inicial.

   ```
   JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH" \
   OTEL_METRICS_EXPORTER=none \
   OTEL_TRACES_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \
   OTEL_LOGS_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=https://logs.us-east-1.amazonaws.com/v1/logs \
   OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default 
   OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME" \
   java -jar $MY_JAVA_APP.jar
   ```

------
#### [ Node.js ]

**nota**  
Você deve usar o **ADOT JavaScript versão 0.7.0 ou posterior** para que esses recursos estejam disponíveis.

1. Faça download da versão mais recente da instrumentação automática em JavaScript do AWS Distro para OpenTelemetry. Instale-o executando o seguinte comando da .

   ```
   npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation
   ```

   É possível visualizar informações sobre todas as versões liberadas em [aws-otel-js-instrumentation Releases](https://github.com/aws-observability/aws-otel-js-instrumentation/releases).

1. Para habilitar o exportador diferente que envia telemetria diretamente para endpoints do OTLP e otimizar os benefícios, use as seguintes variáveis de ambiente antes de iniciar a aplicação:

   **Rastreamentos:**
   + Defina `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` para especificar o endpoint de rastreamentos do OTLP do X-Ray: `https://xray.[AWSRegion].amazonaws.com/v1/traces`

     Por exemplo:

     ```
     export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
     ```
   + Defina `OTEL_TRACES_EXPORTER` como `otlp` (é opcional e será o valor padrão se essa variável de ambiente não estiver definida).
   + Defina a varável `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` como `http/protobuf` (é opcional e será o valor padrão se essa variável de ambiente não estiver definida).
   + Defina a variável `OTEL_RESOURCE_ATTRIBUTES` para especificar as informações a seguir como pares de chave/valor. Essas variáveis de ambiente são usadas pelo Application Signals, e são convertidas em anotações de rastreamentos do X-Ray e em dimensões de métricas do CloudWatch.
     + (Opcional) `service.name` define o nome do serviço. Isso será exibido como o nome do serviço para a aplicação nos painéis do Application Signals. Se você não fornecer um valor para essa chave, o padrão `UnknownService` será usado.
     + (Opcional) `deployment.environment` define o ambiente em que a aplicação é executada. Essa variável será exibida como o ambiente **Hospedado em** da aplicação.
     + (Opcional) Para habilitar a correlação de logs, em `OTEL_RESOURCE_ATTRIBUTES`, defina uma variável de ambiente `aws.log.group.names` adicional para os grupos de logs da sua aplicação. Ao fazer isso, será possível correlacionar os rastreamentos e métricas da sua aplicação com as entradas de log relevantes desses grupos de logs. Para essa variável, substitua `$YOUR_APPLICATION_LOG_GROUP` pelos nomes do grupo de logs da sua aplicação. Se você tiver vários grupos de logs, é possível usar um e comercial (`&`) para separá-los, como neste exemplo: `aws.log.group.names=log-group-1&log-group-2`. Para permitir que a métrica registre a correlação em log, basta definir essa variável ambiental atual. Para obter mais informações, consulte [Habilitar a correlação entre métrica e logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-MetricLogCorrelation.html). Para habilitar a correlação entre logs e rastreamento, você também precisará alterar a configuração de registro em log em sua aplicação. Para obter mais informações, consulte [Habilitar a correlação entre rastreamento e logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html).

   **Logs:**
   + Defina `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` para especificar o endpoint de logs do OTLP do CloudWatch: `https://logs.[AWSRegion].amazonaws.com/v1/logs`

     Por exemplo:

     ```
     export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT="https://logs.us-west-2.amazonaws.com/v1/logs"
     ```
   + Defina `OTEL_EXPORTER_OTLP_LOGS_HEADERS` para especificar o grupo de logs e o fluxo de logs (observação: eles devem ser criados **antes** da execução do ADOT) para os quais você deseja exportar seus logs: `x-aws-log-group=[CW-LOG-GROUP-NAME],x-aws-log-stream=[CW-LOG-STREAM-NAME]`

     Por exemplo:

     ```
     export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default
     ```
   + Defina `OTEL_LOGS_EXPORTER` como `otlp` (é opcional e será o valor padrão se essa variável de ambiente não estiver definida).
   + Defina a varável `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` como `http/protobuf` (é opcional e será o valor padrão se essa variável de ambiente não estiver definida).

1. Agora, sua aplicação deve estar sendo executada com a instrumentação JavaScript do ADOT e vai gerar logs e spans. As extensões serão armazenadas no grupo de logs `aws/spans` do CloudWatch, enquanto os logs serão armazenados no grupo de logs especificado no cabeçalho `OTEL_EXPORTER_OTLP_LOGS_HEADERS`. Você também pode visualizar os logs e as métricas correlacionados com suas extensões no console de rastreamentos e métricas do CloudWatch.

1. Inicie a aplicação com as variáveis ​​de ambiente listadas na etapa anterior. Veja a seguir um exemplo de um script inicial.

   Substitua `$SVC_NAME` pelo nome da aplicação. Isso será exibido como o nome da aplicação.

   ```
   OTEL_METRICS_EXPORTER=none \
   OTEL_TRACES_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \
   OTEL_LOGS_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=https://logs.us-east-1.amazonaws.com/v1/logs \
   OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default 
   OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME" \
   node --require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register' your-application.js
   ```

------
#### [ Python ]

**nota**  
Você deve usar o **ADOT Python versão 0.10.0 ou posterior** e ter **`botocore`** instalado para que esses recursos estejam disponíveis.

1. Faça download da versão mais recente da instrumentação automática em Python do AWS Distro para OpenTelemetry. Instale-o executando o seguinte comando da .

   ```
   pip install aws-opentelemetry-distro
   ```

   É possível visualizar as informações sobre todas as versões liberadas em [aws-otel-python-instrumentation Releases](https://github.com/aws-observability/aws-otel-python-instrumentation/releases).

1. Para habilitar o exportador diferente que envia telemetria diretamente para endpoints do OTLP e otimizar os benefícios, use as seguintes variáveis de ambiente antes de iniciar a aplicação:

   **Para configurações de rastreamentos e logs, você deve definir as seguintes variáveis de ambiente:**
   + `OTEL_PYTHON_DISTRO` para `aws_distro`
   + `OTEL_PYTHON_CONFIGURATOR` para `aws_configurator`

   **Rastreamentos:**
   + Defina `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` para especificar o endpoint de rastreamentos do OTLP do X-Ray: `https://xray.[AWSRegion].amazonaws.com/v1/traces`

     Por exemplo:

     ```
     export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
     ```
   + Defina `OTEL_TRACES_EXPORTER` como `otlp` (é opcional e será o valor padrão se essa variável de ambiente não estiver definida).
   + Defina a varável `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` como `http/protobuf` (é opcional e será o valor padrão se essa variável de ambiente não estiver definida).
   + Defina a variável `OTEL_RESOURCE_ATTRIBUTES` para especificar as informações a seguir como pares de chave/valor. Essas variáveis de ambiente são usadas pelo Application Signals, e são convertidas em anotações de rastreamentos do X-Ray e em dimensões de métricas do CloudWatch.
     + (Opcional) `service.name` define o nome do serviço. Isso será exibido como o nome do serviço para a aplicação nos painéis do Application Signals. Se você não fornecer um valor para essa chave, o padrão `UnknownService` será usado.
     + (Opcional) `deployment.environment` define o ambiente em que a aplicação é executada. Essa variável será exibida como o ambiente **Hospedado em** da aplicação.
     + (Opcional) Para habilitar a correlação de logs, em `OTEL_RESOURCE_ATTRIBUTES`, defina uma variável de ambiente `aws.log.group.names` adicional para os grupos de logs da sua aplicação. Ao fazer isso, será possível correlacionar os rastreamentos e métricas da sua aplicação com as entradas de log relevantes desses grupos de logs. Para essa variável, substitua `$YOUR_APPLICATION_LOG_GROUP` pelos nomes do grupo de logs da sua aplicação. Se você tiver vários grupos de logs, é possível usar um e comercial (`&`) para separá-los, como neste exemplo: `aws.log.group.names=log-group-1&log-group-2`. Para permitir que a métrica registre a correlação em log, basta definir essa variável ambiental atual. Para obter mais informações, consulte [Habilitar a correlação entre métrica e logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-MetricLogCorrelation.html). Para habilitar a correlação entre logs e rastreamento, você também precisará alterar a configuração de registro em log em sua aplicação. Para obter mais informações, consulte [Habilitar a correlação entre rastreamento e logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html).

   **Logs:**
   + Defina `OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED` como `true`
   + Defina `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` para especificar o endpoint de logs do OTLP do CloudWatch: `https://logs.[AWSRegion].amazonaws.com/v1/logs`

     Por exemplo:

     ```
     export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT="https://logs.us-west-2.amazonaws.com/v1/logs"
     ```
   + Defina `OTEL_EXPORTER_OTLP_LOGS_HEADERS` para especificar o grupo de logs e o fluxo de logs (observação: eles devem ser criados **antes** da execução do ADOT) para os quais você deseja exportar seus logs: `x-aws-log-group=[CW-LOG-GROUP-NAME],x-aws-log-stream=[CW-LOG-STREAM-NAME]`

     Por exemplo:

     ```
     export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default
     ```
   + Defina `OTEL_LOGS_EXPORTER` como `otlp` (é opcional e será o valor padrão se essa variável de ambiente não estiver definida).
   + Defina a varável `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` como `http/protobuf` (é opcional e será o valor padrão se essa variável de ambiente não estiver definida).

1. Agora, sua aplicação deve estar sendo executada com a instrumentação Python do ADOT e vai gerar logs e spans. As extensões serão armazenadas no grupo de logs `aws/spans` do CloudWatch, enquanto os logs serão armazenados no grupo de logs especificado no cabeçalho `OTEL_EXPORTER_OTLP_LOGS_HEADERS`. Você também pode visualizar os logs e as métricas correlacionados com suas extensões no console de rastreamentos e métricas do CloudWatch.

1. Inicie a aplicação com as variáveis ​​de ambiente listadas na etapa anterior. Veja a seguir um exemplo de um script inicial.

   Substitua `$SVC_NAME` pelo nome da aplicação. Isso será exibido como o nome da aplicação.

   Substitua `$PYTHON_APP` pelo local e pelo nome da aplicação.

   ```
   OTEL_METRICS_EXPORTER=none \
   OTEL_TRACES_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \
   OTEL_LOGS_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=https://logs.us-east-1.amazonaws.com/v1/logs \
   OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default
   OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true
   OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME" \
   opentelemetry-instrument python $MY_PYTHON_APP.py
   ```

------
#### [ .Net ]

**nota**  
É necessário ter o **ADOT .NET versão 1.8.0 ou posterior** para que esses recursos estejam disponíveis.
Atualmente, a compactação não é compatível.
Atualmente, os logs não são compatíveis.

Faça download da versão mais recente do agente de instrumentação automática para .NET do AWS Distro para OpenTelemetry. É possível visualizar as informações sobre todas as versões liberadas em [aws-otel-dotnet-instrumentation Releases](https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases).

Para habilitar os diferentes exportadores que enviam telemetria diretamente para endpoints do OTLP e otimizar os benefícios, use as seguintes variáveis de ambiente antes de iniciar sua aplicação (substitua `dotnet-service-name` na variável `OTEL_RESOURCE_ATTRIBUTES` do ambiente pelo nome do serviço de sua escolha):

**Rastreamentos:**
+ Você **DEVE** definir `OTEL_TRACES_EXPORTER` como `none`
+ Você **DEVE** definir `OTEL_AWS_SIG_V4_ENABLED` como `true`

  Esse recurso **não é habilitado automaticamente no. NET**. A variável de ambiente é necessária especificamente para identificar esse caso de uso na instrumentação do .NET. Esse requisito é exclusivo do .NET e **não se aplica a outras linguagens compatíveis**.

Confira abaixo um exemplo de configuração para Linux.

```
export INSTALL_DIR=OpenTelemetryDistribution
export CORECLR_ENABLE_PROFILING=1
export CORECLR_PROFILER={918728DD-259F-4A6A-AC2B-B85E1B658318}
export CORECLR_PROFILER_PATH=${INSTALL_DIR}/linux-x64/OpenTelemetry.AutoInstrumentation.Native.so
export DOTNET_ADDITIONAL_DEPS=${INSTALL_DIR}/AdditionalDeps
export DOTNET_SHARED_STORE=${INSTALL_DIR}/store
export DOTNET_STARTUP_HOOKS=${INSTALL_DIR}/net/OpenTelemetry.AutoInstrumentation.StartupHook.dll
export OTEL_DOTNET_AUTO_HOME=${INSTALL_DIR}

export OTEL_DOTNET_AUTO_PLUGINS="AWS.Distro.OpenTelemetry.AutoInstrumentation.Plugin, AWS.Distro.OpenTelemetry.AutoInstrumentation"
export OTEL_TRACES_EXPORTER=none
export OTEL_AWS_SIG_V4_ENABLED=true

export OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name
export OTEL_METRICS_EXPORTER=none
export OTEL_LOGS_EXPORTER=none
export OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces
```

Confira abaixo um exemplo de configuração para Windows Server:

```
$env:INSTALL_DIR = "OpenTelemetryDistribution" 
$env:CORECLR_ENABLE_PROFILING = 1 
$env:CORECLR_PROFILER = "{918728DD-259F-4A6A-AC2B-B85E1B658318}" 
$env:CORECLR_PROFILER_PATH = Join-Path $env:INSTALL_DIR "win-x64/OpenTelemetry.AutoInstrumentation.Native.dll" 
$env:DOTNET_ADDITIONAL_DEPS = Join-Path $env:INSTALL_DIR "AdditionalDeps" 
$env:DOTNET_SHARED_STORE = Join-Path $env:INSTALL_DIR "store" 
$env:DOTNET_STARTUP_HOOKS = Join-Path $env:INSTALL_DIR "net/OpenTelemetry.AutoInstrumentation.StartupHook.dll" 
$env:OTEL_DOTNET_AUTO_HOME = $env:INSTALL_DIR 
$env:OTEL_DOTNET_AUTO_PLUGINS = "AWS.Distro.OpenTelemetry.AutoInstrumentation.Plugin, AWS.Distro.OpenTelemetry.AutoInstrumentation"

$env:OTEL_TRACES_EXPORTER=none
$env:OTEL_AWS_SIG_V4_ENABLED=true

$env:OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name
$env:OTEL_METRICS_EXPORTER=none
$env:OTEL_LOGS_EXPORTER=none
$env:OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf
$env:OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces
```

1. Inicie a aplicação com as variáveis ​​de ambiente listadas na etapa anterior.

1. (Opcional) Como alternativa, você pode usar os scripts de instalação fornecidos para ajudar na instalação e configuração do pacote de instrumentação automática do AWS Distro for OpenTelemetry .NET.

   Para Linux, baixe e instale o script de instalação do Bash na página de versões do GitHub:

   ```
   # Download and Install
   curl -L -O https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases/latest/download/aws-otel-dotnet-install.sh
   chmod +x ./aws-otel-dotnet-install.sh
   ./aws-otel-dotnet-install.sh
   # Instrument
   . $HOME/.otel-dotnet-auto/instrument.shexport OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name
   ```

   Para Windows Server, baixe e instale o script de instalação do PowerShell na página de versões do GitHub:

   ```
   # Download and Install
   $module_url = "https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases/latest/download/AWS.Otel.DotNet.Auto.psm1"
   $download_path = Join-Path $env:temp "AWS.Otel.DotNet.Auto.psm1"
   Invoke-WebRequest -Uri $module_url -OutFile $download_path
   Import-Module $download_path
   Install-OpenTelemetryCore
   # Instrument
   Import-Module $download_path
   Register-OpenTelemetryForCurrentSession -OTelServiceName "dotnet-service-name"
   Register-OpenTelemetryForIIS
   ```

   Você pode encontrar o pacote NuGet do pacote de instrumentação automática do AWS Distro for OpenTelemetry .NET no [repositório oficial do NuGet](https://www.nuget.org/packages/AWS.Distro.OpenTelemetry.AutoInstrumentation). Certifique-se de verificar o [arquivo README](https://github.com/aws-observability/aws-otel-dotnet-instrumentation/blob/main/src/AWS.Distro.OpenTelemetry.AutoInstrumentation/nuget-readme.md) para obter instruções.

------