Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Introdução ao Open Telemetry

Aqui está a configuração que estaremos criando, para um aplicativo que precisa ser monitorado:

  • O aplicativo / carga de trabalho monitorado rodando em um host Linux

  • O coletor Open Telemetry rodando no mesmo host Linux

  • SUSE Observability ou SUSE Cloud Observability

Instrumentação de aplicativo em um host Linux com o coletor Open Telemetry rodando no host

Instale o coletor Open Telemetry

Para uma configuração de produção, é fortemente recomendado instalar o coletor, pois ele permite que seu serviço descarregue dados rapidamente e o coletor pode cuidar de manuseios adicionais como tentativas, agrupamento, criptografia ou até mesmo filtragem de dados sensíveis.

Primeiro, vamos instalar o coletor. Nós o configuramos para:

  • Receber dados de, potencialmente, muitos aplicativos instrumentados

  • Enriquecer os dados coletados com atributos do host

  • Gerar métricas para rastreamentos

  • Encaminhar os dados para o SUSE Observability, incluindo autenticação usando a chave da API

Além disso, ele também tentará reenviar dados quando houver problemas de conexão.

Criar um Token de Serviço

Há duas maneiras de criar um token de serviço:

  • SUSE Observability UI - abra o menu principal clicando no canto superior esquerdo da tela e vá para StackPacks > Open Telemetry. Se você ainda não fez isso, clique no botão INSTALL. Clique no botão CREATE NEW SERVICE TOKEN e copie o valor para a sua área de transferência.

  • SUSE Observability CLI - veja Gerenciar tokens de serviço

O valor do token de serviço deve ser usado onde as instruções abaixo mencionam <SERVICE_TOKEN>.

Instale e configure o coletor

O coletor fornece pacotes (apk, deb e rpm) para a maioria das versões e arquiteturas do Linux e utiliza systemd para configuração automática do serviço. Para instalá-lo, encontre a última versão no Github e atualize a URL no exemplo para usar a versão mais recente:

  • DEB AMD64

  • DEB ARM64

  • RPM AMD64

  • RPM ARM64

wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.123.1/otelcol-contrib_0.123.1_linux_amd64.deb
sudo dpkg -i otelcol-contrib_0.123.1_linux_amd64.deb
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.123.1/otelcol-contrib_0.123.1_linux_arm64.deb
sudo dpkg -i otelcol-contrib_0.123.1_linux_arm64.deb
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.123.1/otelcol-contrib_0.123.1_linux_amd64.rpm
sudo rpm -iv1 otelcol-contrib_0.123.1_linux_amd64.rpm
wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.123.1/otelcol-contrib_0.123.1_linux_arm64.rpm
sudo rpm -iv1 otelcol-contrib_0.123.1_linux_arm64.rpm

Para outras opções de instalação, use as instruções do Open Telemetry.

Após a instalação, modifique a configuração do coletor editando /etc/otelcol-contrib/config.yaml. Altere o arquivo para que ele fique parecido com o exemplo config.yaml aqui, substitua <otlp-suse-observability-endpoint:port> pelo seu endpoint OTLP (veja OTLP API para seu endpoint) e insira seu token de serviço para <SERVICE_TOKEN>:

config.yaml
receivers:
  otlp:
    protocols:
      # Only bind to localhost to keep the collector secure, see https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/security-best-practices.md#safeguards-against-denial-of-service-attacks
      grpc:
        endpoint: 127.0.0.1:4317
      http:
        endpoint: 127.0.0.1:4318
  # Collect own metrics
  prometheus:
    config:
      scrape_configs:
      - job_name: 'otel-collector'
        scrape_interval: 10s
        static_configs:
        - targets: ['0.0.0.0:8888']
extensions:
  health_check: {}
  pprof:
    endpoint: 0.0.0.0:1777
  zpages:
    endpoint: 0.0.0.0:55679
  # Use the API key from the env for authentication
  bearertokenauth:
    scheme: SUSEObservability
    token: "<SERVICE_TOKEN>"
exporters:
  nop: {}
  debug: {}
  otlp/suse-observability:
    compression: snappy
    auth:
      authenticator: bearertokenauth
    # Put in your own otlp endpoint, for example otlp-suse-observability.my.company.com:443
    endpoint: <otlp-suse-observability-endpoint:port>
processors:
  memory_limiter:
    check_interval: 5s
    limit_percentage: 80
    spike_limit_percentage: 25
  batch: {}
  # Optionally include resource information from the system running the collector
  resourcedetection/system:
    detectors: [env, system] # Replace system with gcp, ec2, azure when running in cloud environments
    system:
      hostname_sources: ["os"]
connectors:
  # Generate metrics for spans
  spanmetrics:
    metrics_expiration: 5m
    namespace: otel_span
service:
  extensions: [ bearertokenauth, health_check, pprof, zpages ]
  pipelines:
    traces:
      receivers: [otlp]
      processors: [memory_limiter, resourcedetection/system, batch]
      exporters: [debug, spanmetrics, otlp/suse-observability]
    metrics:
      receivers: [otlp, spanmetrics, prometheus]
      processors: [memory_limiter, batch, resourcedetection/system]
      exporters: [debug, otlp/suse-observability]
    logs:
      receivers: [otlp]
      processors: []
      exporters: [nop]

Por fim, reinicie o coletor:

sudo systemctl restart otelcol-contrib

Para ver os logs do coletor, use:

sudo journalctl -u otelcol-contrib

Colete dados de telemetria do seu aplicativo

A maneira comum de coletar dados de telemetria é instrumentar seu aplicativo usando os SDKs do Open Telemetry. Documentamos alguns guias de início rápido para alguns idiomas, mas há muitos mais:

Nenhuma configuração adicional é necessária para os SDKs, eles exportam para localhost via OTLP ou OTLP sobre HTTP (dependendo dos protocolos suportados) por padrão.

Para outros idiomas, siga a documentação em opentelemetry.io.

Veja os resultados

Vá para o SUSE Observability e certifique-se de que o Stackpack Open Telemetry está instalado (via o menu principal -> Stackpacks).

Após um curto período e se seu aplicativo estiver processando algum tráfego, você deve conseguir encontrá-lo sob seu nome de serviço nas visões de Open Telemetry -> serviços e instâncias de serviço. Os rastreamentos aparecerão no explorador de rastreamentos e na perspectiva de rastreamentos para os componentes de serviço e instância de serviço. Métricas de span e métricas específicas de linguagem (se disponíveis) estarão disponíveis na perspectiva de métricas para os componentes.

Próximas etapas

Você pode adicionar novos gráficos aos componentes, por exemplo, o serviço ou a instância de serviço, para seu aplicativo, seguindo nosso guia. Também é possível criar novos monitores usando as métricas e configurar notificações para ser notificado quando seu aplicativo não estiver disponível ou tiver problemas de desempenho.