> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting do OpenTelemetry

Quando nenhum dado é reportado do seu app para o AppSignal, confira os problemas comuns abaixo.

## Nenhum dado está sendo reportado

### O endpoint de exportação do OpenTelemetry está mal configurado

Apps OpenTelemetry, por padrão, exportam dados para `http://localhost:4318`.
O AppSignal exige um endpoint customizado para enviar dados ao AppSignal collector.

O AppSignal collector pode rodar como hospedado ou self-hosted. Leia nossa página [Hospedado vs Self-hosted](/collector/hosted-vs-self-hosted) para mais informações sobre a diferença entre esses tipos de collector.

Siga as instruções para o tipo de collector que sua aplicação usa abaixo:

* [Collector hospedado](#hosted-collector)
* [Collector self-hosted](#self-hosted-collector), instalado como \[pacote Linux] e \[imagem Docker]

#### Collector hospedado

Ao usar o collector hospedado, certifique-se de usar a URL do collector exibida no [assistente de adicionar app](https://appsignal.com/redirect-to/organization?to=sites/new) como endpoint do exporter do OpenTelemetry.

No assistente de adicionar app, selecione a linguagem que sua aplicação usa que o AppSignal suporta para OpenTelemetry, ou use a opção "More languages" para visualizar o endpoint do collector hospedado.
Ela pode estar em um exemplo de código, atribuída a uma variável chamada `endpoint`.

O formato do collector hospedado é o seguinte:

* `https://COLLECTOR-ID.REGION.appsignal-collector.net`

O endpoint do exporter precisa ser configurado via variável de ambiente `OTEL_EXPORTER_OTLP_ENDPOINT` ou no próprio app, onde o OpenTelemetry é configurado.
Consulte o [guia de instalação específico da linguagem][install guide] que sua aplicação está usando para mais detalhes.

#### Collector self-hosted

Ao usar um collector self-hosted, o endpoint do exporter do OpenTelemetry precisa apontar para a localização onde o collector está rodando.

Se o collector estiver rodando no mesmo host (instalado usando o \[pacote Linux]), o hostname é `localhost`.

Se o collector roda em um \[contêiner Docker]\[imagem Docker] ou cluster Kubernetes, o hostname pode variar com base no nome de serviço especificado.
Recomendamos nomear o serviço como `appsignal` e atualizar o endpoint do exporter para corresponder ao hostname `appsignal`.

* Hostname, vários valores são possíveis:
  * \[Pacote Linux]: `localhost:8099`
  * \[Imagem Docker]: `appsignal:8099`
* Exemplos:
  * `http://localhost:8099`, ou `http://appsignal:8099` em Docker.

Para algumas linguagens, no SDK do OpenTelemetry o esquema da URI (`http`/`https`) não deve ser definido como parte do endpoint do exporter do OpenTelemetry. Consulte o [guia de instalação](/opentelemetry/installation) da linguagem que sua aplicação usa.

O endpoint do exporter precisa ser configurado via variável de ambiente `OTEL_EXPORTER_OTLP_ENDPOINT` ou no próprio app, onde o OpenTelemetry é configurado.
Consulte o [guia de instalação específico da linguagem][install guide] que sua aplicação está usando para mais detalhes.

#### Endpoints do exporter

Alguns exporters do OpenTelemetry podem precisar ser configurados por tipo de dado do OpenTelemetry para endpoints específicos.

Ao configurar um exporter de trace/span, use o endpoint de traces; para métricas, use o endpoint de métricas; etc.

Esses endpoints no AppSignal collector são:

* Dados de trace:
  * `/v1/traces` ou,
  * `/v1/traces`
* Dados de métricas:
  * `/v1/metrics` ou,
  * `/v1/metrics`
* Dados de log:
  * `/v1/logs` ou,
  * `/v1/logs`

### O protocolo de exportação do OpenTelemetry não está definido como http/protobuf

O AppSignal collector só suporta o OpenTelemetry Protocol (OTLP) sobre HTTP com codificação Protobuf.

Configuração obrigatória:

* Formato de protocolo: `http/protobuf`

Se o OpenTelemetry no seu app está usando gRPC ou JSON como formato de exportação, atualize a configuração para usar o formato HTTP/protobuf.

Para configurar o formato de protocolo do exporter, siga [as etapas de instalação](/opentelemetry/installation) da linguagem que sua aplicação está usando.

### O collector self-hosted não está rodando ou está inacessível

Para enviar dados ao AppSignal, o collector self-hosted precisa ter iniciado corretamente.
Erros de exportação visíveis nos logs da aplicação podem indicar que o collector não está rodando.
Para verificar se está rodando, confira os logs do collector.

Os logs do collector podem ser encontrados em:

* Os logs do contêiner para o [método de instalação por contêiner Docker](/collector/installation/docker-image).
  Verifique seu gerenciador de contêineres para descobrir a melhor maneira de acessar os logs do contêiner.
* Os logs do sistema para o [método de instalação por pacote Linux](/collector/installation/linux-package#debugging).

Se o collector está rodando mas não pode ser alcançado, verifique as configurações de rede internas para ver se a aplicação consegue chegar ao host do collector.

## Dados reportados ausentes ou incompletos

Se você está vendo apenas alguns dados e está faltando mais dados sobre o que sua aplicação está fazendo, provavelmente isso se deve a instrumentação ausente do OpenTelemetry na sua aplicação.

O OpenTelemetry não instrumenta tudo automaticamente. Para coletar dados de frameworks e bibliotecas específicos, você precisará instalar e configurar bibliotecas adicionais de instrumentação.

Para reportar mais dados, instale as bibliotecas de instrumentação do OpenTelemetry apropriadas para as bibliotecas correspondentes usadas na sua aplicação.

Consulte o guia [adicionar mais instrumentação do OpenTelemetry](/guides/instrumentation/additional-opentelemetry-instrumentation) para a linguagem da sua aplicação sobre como instalar mais pacotes de instrumentação.

[install guide]: /opentelemetry/installation.html

[Linux package]: /collector/installation/linux-package.html

[Docker image]: /collector/installation/docker-image.html
