Migração da instrumentação X-Ray para a instrumentação OpenTelemetry - AWS X-Ray

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

Migração da instrumentação X-Ray para a instrumentação OpenTelemetry

O X-Ray está migrando para OpenTelemetry (OTel) como seu principal padrão de instrumentação para rastreamento e observabilidade de aplicativos. Essa mudança estratégica se alinha AWS às melhores práticas do setor e oferece aos clientes uma solução mais abrangente, flexível e pronta para o futuro para suas necessidades de observabilidade. OpenTelemetryA ampla adoção da X-Ray no setor permite o rastreamento de solicitações em diversos sistemas, incluindo aqueles externos AWS que podem não se integrar diretamente ao X-Ray.

Este capítulo fornece recomendações para uma transição suave e enfatiza a importância de migrar para soluções OpenTelemetry baseadas para garantir suporte e acesso contínuos aos recursos mais recentes em instrumentação e observabilidade de aplicativos.

É recomendável adotar OpenTelemetry como solução de observabilidade para instrumentar seu aplicativo.

Compreensão OpenTelemetry

OpenTelemetry é uma estrutura de observabilidade padrão do setor que fornece protocolos e ferramentas padronizados para coletar dados de telemetria. Ele oferece uma abordagem unificada para instrumentar, gerar, coletar e exportar dados de telemetria, como métricas, registros e rastreamentos.

Ao migrar do X-Ray SDKs para OpenTelemetry, você obtém os seguintes benefícios:

  • Suporte aprimorado de estrutura e instrumentação de biblioteca

  • Support para linguagens de programação adicionais

  • Capacidades de instrumentação automática

  • Opções flexíveis de configuração de amostragem

  • Coleção unificada de métricas, registros e rastreamentos

O OpenTelemetry coletor fornece mais opções para formatos de coleta de dados e destinos de exportação do que o daemon X-Ray.

OpenTelemetry suporte em AWS

AWS fornece várias soluções para trabalhar com OpenTelemetry:

  • AWS Distro para OpenTelemetry

    Exporte OpenTelemetry traços como segmentos para o X-Ray.

    Para obter mais informações, consulte AWS Distro for OpenTelemetry.

  • CloudWatch Sinais de aplicação

    Exporte OpenTelemetry traços e métricas personalizados para monitorar a integridade do aplicativo.

    Para obter mais informações, consulte Trabalhando com sinais de aplicativos.

  • CloudWatch OTel Ponto final

    Exporte OpenTelemetry traços para o X-Ray usando o OTel endpoint HTTP com OpenTelemetry instrumentação nativa.

    Para obter mais informações, consulte Usando OTel endpoints.

Usando OpenTelemetry com AWS CloudWatch

AWS CloudWatch oferece suporte a OpenTelemetry rastreamentos por meio de instrumentação de aplicativos do lado do cliente e AWS CloudWatch serviços nativos, como Application Signals, Trace, Map, Metrics e Logs. Para obter mais informações, consulte OpenTelemetry.

Entendendo OpenTelemetry os conceitos de migração

A tabela a seguir mapeia os conceitos de X-Ray para seus OpenTelemetry equivalentes. A compreensão desses mapeamentos ajuda você a traduzir sua instrumentação de X-Ray existente para: OpenTelemetry

Conceito de raio-X OpenTelemetry conceito
Gravador de raio-X Fornecedor de rastreadores e rastreadores
Plug-ins de serviço Detector de recursos
Segment (Servidor) Espanha
Subsegmento Extensão (sem servidor)
Regras de amostragem de raios-X OpenTelemetry Amostragem (personalizável)
Emissor de raio-X Exportador de Espanha (personalizável)
Anotações/metadados Atributos
Instrumentação de biblioteca Instrumentação de biblioteca
Contexto do X-Ray Trace Contexto do Span
Propagação do contexto X-Ray Trace Propagação do contexto de rastreamento do W3C
Amostragem de traços de raio-X OpenTelemetry Amostragem de traços
N/D Processamento de Span
N/D Bagagem
Daemon X-Ray OpenTelemetry Colecionador
nota

Para obter mais informações sobre OpenTelemetry conceitos, consulte a OpenTelemetry documentação.

Comparando recursos

A tabela a seguir mostra quais recursos são compatíveis com os dois serviços. Use essas informações para identificar quaisquer lacunas que você precise resolver durante a migração:

Recurso Instrumentação de raio-X OpenTelemetry instrumentação
Instrumentação de biblioteca Compatível Compatível
Amostragem de raios-X Compatível

Compatível com OTel java/.net/GO

Compatível com ADOT Java/. NET/Python/Node.js

Propagação do contexto do traçado X-Ray Compatível Compatível
Detecção de recursos Compatível Compatível
Anotações de segmentos Compatível Compatível
Metadados do segmento Compatível Compatível
Instrumentação automática de código zero Compatível com Java

Compatível com OTel Java/. NET/Python/Node.js

Compatível com ADOT Java/. NET/Python/Node.js

Criação de rastreamento manual Compatível Compatível

Configurando e configurando o rastreamento

Para criar rastreamentos OpenTelemetry, você precisa de um rastreador. Você obtém um rastreador inicializando um Tracer Provider em seu aplicativo. Isso é semelhante à forma como você usa o X-Ray Recorder para configurar o X-Ray e criar segmentos e subsegmentos em um traçado de X-Ray.

nota

O OpenTelemetry Tracer Provider oferece mais opções de configuração do que o X-Ray Recorder.

Entendendo a estrutura de dados de rastreamento

Depois de entender os conceitos básicos e os mapeamentos de recursos, você pode aprender sobre detalhes específicos de implementação, como estrutura de dados de rastreamento e amostragem.

OpenTelemetry usa extensões em vez de segmentos e subsegmentos para estruturar dados de rastreamento. Cada intervalo inclui os seguintes componentes:

  • Name

  • ID exclusivo

  • Carimbos de data e hora de início e término

  • Tipo de extensão

  • Contexto de abrangência

  • Atributos (metadados de valores-chave)

  • Eventos (registros com data e hora)

  • Links para outros trechos

  • Informações de status

  • Referências de extensão principal

Quando você migra para OpenTelemetry, suas extensões são automaticamente convertidas em segmentos ou subsegmentos de X-Ray. Isso garante que sua experiência de CloudWatch console existente permaneça inalterada.

Trabalhando com atributos de extensão

O X-Ray SDK fornece duas maneiras de adicionar dados a segmentos e subsegmentos:

Anotações

Pares de valores-chave que são indexados para filtragem e pesquisa

Metadados

Pares de valores-chave contendo dados complexos que não são indexados para pesquisa

Por padrão, os atributos OpenTelemetry span são convertidos em metadados nos dados brutos do X-Ray. Em vez disso, para converter atributos específicos em anotações, adicione suas chaves à lista de aws.xray.annotations atributos.

Detectando recursos em seu ambiente

OpenTelemetry usa Detectores de recursos para coletar metadados sobre os recursos que geram dados de telemetria. Esses metadados são armazenados como atributos de recursos. Por exemplo, uma entidade que produz telemetria pode ser um cluster do Amazon ECS ou uma EC2 instância da Amazon, e os atributos de recursos que podem ser registrados a partir dessas entidades podem incluir o ARN do cluster do Amazon ECS ou o ID da instância da Amazon. EC2

Gerenciando estratégias de amostragem

A amostragem de rastreamento ajuda você a gerenciar custos coletando dados de um subconjunto representativo de solicitações em vez de todas as solicitações. Tanto o X-Ray OpenTelemetry quanto o X-Ray oferecem suporte à amostragem, mas a implementam de forma diferente.

nota

A amostragem de menos de 100% dos rastreamentos reduz seus custos de observabilidade e, ao mesmo tempo, mantém insights significativos sobre o desempenho do seu aplicativo.

OpenTelemetry fornece várias estratégias de amostragem integradas e permite criar estratégias personalizadas. Você também pode configurar um X-Ray Remote Sampler em algumas linguagens do SDK para usar as regras de amostragem do X-Ray. OpenTelemetry

As estratégias de amostragem adicionais de OpenTelemetry são:

  • Amostragem baseada nos pais — respeita a decisão de amostragem do período parental antes de aplicar estratégias de amostragem adicionais

  • Amostragem baseada na taxa de identificação de rastreamento — >Amostra aleatoriamente uma porcentagem especificada de extensões

  • Amostragem da cauda — Aplica regras de amostragem para completar traços no coletor OpenTelemetry

  • Amostradores personalizados — Implemente sua própria lógica de amostragem usando a interface de amostragem

Para obter informações sobre as regras de amostragem do X-Ray, consulte Regras de amostragem no console do X-Ray

Para obter informações sobre amostragem de OpenTelemetry cauda, consulte Processador de amostragem de cauda

Gerenciando o contexto de rastreamento

O X-Ray SDKs gerencia o contexto do segmento para lidar corretamente com os relacionamentos pai-filho entre segmentos e subsegmentos em um rastreamento. OpenTelemetry usa um mecanismo semelhante para garantir que as extensões tenham a extensão principal correta. Ele armazena e propaga dados de rastreamento em todo o contexto de uma solicitação. Por exemplo, quando seu aplicativo processa uma solicitação e cria uma extensão de servidor para representar essa solicitação, OpenTelemetry armazenará a extensão do servidor no OpenTelemetry Contexto para que, quando uma extensão secundária for criada, essa extensão secundária possa referenciar a extensão no Contexto como sua principal.

Propagando o contexto de rastreamento

Tanto o X-Ray quanto OpenTelemetry o uso de cabeçalhos HTTP para propagar o contexto de rastreamento entre os serviços. Isso permite vincular dados de rastreamento gerados por diferentes serviços e manter as decisões de amostragem.

O X-Ray SDK propaga automaticamente o contexto de rastreamento usando o cabeçalho de rastreamento X-Ray. Quando um serviço chama outro, o cabeçalho do rastreamento contém o contexto necessário para manter os relacionamentos pai-filho entre os rastreamentos.

OpenTelemetry oferece suporte a vários formatos de cabeçalho de rastreamento para propagação de contexto, incluindo:

  • Contexto de rastreamento do W3C (padrão)

  • Cabeçalho de rastreamento X-Ray

  • Outros formatos personalizados

nota

Você pode configurar OpenTelemetry para usar um ou mais formatos de cabeçalho. Por exemplo, use o X-Ray Propagator para enviar contexto de rastreamento para AWS serviços que oferecem suporte ao rastreamento de X-Ray.

Configure e use o X-Ray Propagator para permitir o rastreamento entre AWS serviços. Isso permite que você propague o contexto de rastreamento para endpoints do API Gateway e outros serviços compatíveis com X-Ray.

  • Para obter informações sobre cabeçalhos de rastreamento X-Ray, consulte Tracing header no X-Ray Developer Guide

  • Para obter informações sobre propagação de OpenTelemetry contexto, consulte Contexto e propagação de contexto na documentação OpenTelemetry

Usando instrumentação de biblioteca

Tanto o X-Ray quanto o X-Ray OpenTelemetry fornecem instrumentação de biblioteca que requer alterações mínimas no código para adicionar rastreamento aos seus aplicativos.

O X-Ray fornece funcionalidades de instrumentação de biblioteca. Isso permite que você adicione instrumentações de X-Ray pré-criadas com o mínimo de alterações no código do aplicativo. Essas instrumentações oferecem suporte a bibliotecas específicas, como os clientes AWS SDK e HTTP, bem como a estruturas web como Spring Boot ou Express.js.

OpenTelemetryAs bibliotecas de instrumentação da geram extensões detalhadas para suas bibliotecas por meio de ganchos de biblioteca ou modificação automática de código, exigindo o mínimo de alterações no código.

Para determinar se o Library Instrumentations OpenTelemetry é compatível com sua biblioteca, procure-o no OpenTelemetry Registro em OpenTelemetry Registro.

Exportação de traços

X-Ray e OpenTelemetry use métodos diferentes para exportar dados de rastreamento.

Exportação de traços de raio-X

O X-Ray SDKs usa um emissor para enviar dados de rastreamento:

  • Envia segmentos e subsegmentos para o Daemon X-Ray

  • Usa UDP para E/S sem bloqueio

  • Configurado por padrão no SDK

OpenTelemetry exportação de rastreamento

OpenTelemetry usa exportadores de Span configuráveis para enviar dados de rastreamento:

  • Usa protocolos http/protobuf ou grpc

  • Exporta extensões para endpoints monitorados pelo OpenTelemetry coletor ou agente CloudWatch

  • Permite configurações personalizadas do exportador

Processamento e encaminhamento de rastros

Tanto o X-Ray quanto o X-Ray OpenTelemetry fornecem componentes para receber, processar e encaminhar dados de rastreamento.

Processamento de traços de raio-X

O X-Ray Daemon lida com o processamento de traços:

  • Ouve o tráfego UDP do X-Ray SDKs

  • Lotes, segmentos e subsegmentos

  • Carrega lotes para o serviço X-Ray

OpenTelemetry processamento de traços

O OpenTelemetry Collector manipula o processamento de traços:

  • Recebe rastreamentos de serviços instrumentados

  • Processa e, opcionalmente, modifica os dados de rastreamento

  • Envia traços processados para vários back-ends, incluindo X-Ray

nota

O AWS CloudWatch agente também pode receber e enviar OpenTelemetry traços para o X-Ray. Para obter mais informações, consulte Coletar métricas e rastreamentos com OpenTelemetry.

Processamento de extensão (conceito OpenTelemetry específico)

OpenTelemetry usa processadores de extensão para modificar extensões à medida que elas são criadas:

  • Permite ler e modificar extensões na criação ou conclusão

  • Habilita a lógica personalizada para o tratamento de intervalos

Bagagem (conceito específico) OpenTelemetry

OpenTelemetryO recurso de bagagem do permite a propagação de dados de valores-chave:

  • Permite passar dados arbitrários junto com o contexto de rastreamento

  • Útil para propagar informações específicas do aplicativo entre os limites do serviço

Para obter informações sobre o OpenTelemetry Collector, consulte OpenTelemetry Collector

Para obter informações sobre conceitos de X-Ray, consulte Conceitos de X-Ray no X-Ray Developer Guide

Visão geral da migração

Esta seção fornece uma visão geral das alterações de código necessárias para a migração. A lista abaixo contém orientações específicas do idioma e etapas de migração do X-Ray Daemon.

Importante

Para migrar totalmente da instrumentação X-Ray para a OpenTelemetry instrumentação, você precisa:

  1. Substitua o uso do X-Ray SDK por uma solução OpenTelemetry

  2. Substitua o X-Ray Daemon pelo CloudWatch agente ou OpenTelemetry coletor (com o X-Ray Exporter)

Recomendações para aplicativos novos e existentes

Para aplicativos novos e existentes, é recomendável usar as seguintes soluções para permitir o rastreamento em seus aplicativos:

Instrumentação
  • OpenTelemetry SDKs

  • AWS Distro para instrumentação OpenTelemetry

Coleta de dados
  • OpenTelemetry Colecionador

  • CloudWatch Agente

Depois de migrar para soluções OpenTelemetry baseadas, sua CloudWatch experiência permanecerá a mesma. Você ainda poderá visualizar seus traços no mesmo formato nas páginas Traces e Trace Map do CloudWatch console ou recuperar seus dados de rastreamento por meio do X-Ray APIs.

Alterações na configuração de rastreamento

Você precisa substituir a configuração do X-Ray por uma OpenTelemetry configuração.

Comparação entre X-Ray e OpenTelemetry configuração
Recurso SDK do X-Ray OpenTelemetry
Configurações padrão
  • Amostragem centralizada por raio-X

  • Propagação do X-Ray Trace Context

  • Exportação de rastreamento para o Daemon X-Ray

  • Exportação de rastreamentos para o OpenTelemetry Collector ou CloudWatch Agent (HTTP/gRPC)

  • Propagação do W3C Trace Context

Configurações manuais
  • Regras locais de amostragem

  • Plug-ins de detecção de recursos

  • X-Ray Sampling (pode não estar disponível para todos os idiomas)

  • Detecção de recursos

  • Propagação do X-Ray Trace Context

Mudanças na instrumentação da biblioteca

Atualize seu código para usar o OpenTelemetry Library Instrumentation em vez do X-Ray Library Instrumentation para AWS SDK, clientes HTTP, Web Frameworks e outras bibliotecas. Isso gera OpenTelemetry Traces em vez de X-Ray Traces.

nota

As alterações no código variam de acordo com o idioma e a biblioteca. Consulte os guias de migração específicos do idioma para obter instruções detalhadas.

Mudanças na instrumentação do ambiente Lambda

Para usar OpenTelemetry em suas funções do Lambda, escolha uma dessas opções de configuração:

  1. Use uma camada Lambda de instrumentação automática:

  2. Configurado manualmente OpenTelemetry para sua função Lambda:

    • Configurar um processador Span Simple com um X-Ray UDP Span Exporter

    • Configurar um propagador X-Ray Lambda

Criação manual de dados de rastreamento

Substitua segmentos e subsegmentos do X-Ray por OpenTelemetry Spans:

  • Use um OpenTelemetry rastreador para criar vãos

  • Adicione atributos aos Spans (equivalentes aos metadados e anotações do X-Ray)

Importante

Quando enviado para o X-Ray:

  • As extensões do servidor são convertidas em segmentos de X-Ray

  • Outros spans são convertidos em subsegmentos de X-Ray

  • Os atributos são convertidos em metadados por padrão

Para converter um atributo em uma anotação, adicione sua chave à lista de aws.xray.annotations atributos. Para obter mais informações, consulte Habilitar anotações personalizadas de X-Ray.

Migração do X-Ray Daemon para AWS CloudWatch agente ou coletor OpenTelemetry

Você pode usar o CloudWatch agente ou o OpenTelemetry coletor para receber traços de seus aplicativos instrumentados e enviá-los para o X-Ray.

nota

A versão 1.300025.0 e posterior do CloudWatch agente pode coletar rastreamentos. OpenTelemetry Usar o CloudWatch agente em vez do X-Ray Daemon reduz o número de agentes que você precisa gerenciar. Para obter mais informações, consulte Coleta de métricas, registros e rastreamentos com o CloudWatch agente.

Migração na Amazon EC2 ou em servidores locais

Importante

Pare o processo do X-Ray Daemon antes de usar o CloudWatch agente ou OpenTelemetry coletor para evitar conflitos de portas.

Configuração existente do X-Ray Daemon

Instalando o daemon

Seu uso atual do X-Ray Daemon foi instalado usando um destes métodos:

Instalação manual

Baixe e execute o arquivo executável do bucket Amazon S3 do daemon X-Ray.

Instalação automática

Use esse script para instalar o daemon ao iniciar uma instância:

#!/bin/bash curl https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-3.x.rpm \ -o /home/ec2-user/xray.rpm yum install -y /home/ec2-user/xray.rpm
Configurar o daemon do

Seu uso atual do X-Ray Daemon foi configurado usando:

  • Argumentos da linha de comando

  • Arquivo de configuração (xray-daemon.yaml)

exemplo Usar um arquivo de configuração
./xray -c ~/xray-daemon.yaml
Execução do daemon

Seu uso atual do X-Ray Daemon foi iniciado com o seguinte comando:

~/xray-daemon$ ./xray -o -n us-east-1
Removendo o daemon

Para remover o Daemon X-Ray da sua instância da Amazon EC2 :

  1. Pare o serviço daemon:

    systemctl stop xray
  2. Exclua o arquivo de configuração:

    rm ~/path/to/xray-daemon.yaml
  3. Se configurado, remova o arquivo de log:

    nota

    A localização do arquivo de log depende da sua configuração:

    • Configuração da linha de comando: /var/log/xray-daemon.log

    • Arquivo de configuração: verifique a LogPath configuração

Configurando o CloudWatch agente

Instalar o agente

Para obter instruções de instalação, consulte Instalação do CloudWatch agente em um servidor local.

Configurando o agente
  1. Crie um arquivo de configuração para habilitar a coleta de rastreamento. Para obter mais informações, consulte Criação do arquivo de configuração do CloudWatch agente.

  2. Configure as permissões do IAM:

    • Anexe uma função do IAM ou especifique as credenciais do agente. Para obter mais informações, consulte Configuração de funções do IAM.

    • Certifique-se de que a função ou as credenciais incluam a xray:PutTraceSegments permissão.

Como iniciar o agente do

Para obter instruções sobre como iniciar o agente, consulte Iniciando o CloudWatch agente usando a linha de comando.

Configurando o OpenTelemetry coletor

Instalando o coletor

Baixe e instale o OpenTelemetry coletor para seu sistema operacional. Para obter instruções, consulte Instalação do coletor.

Configurando o coletor

Configure os seguintes componentes em seu coletor:

  • extensão awsproxy

    Necessário para amostragem por raio-X

  • OTel receptores

    Coleta traços do seu aplicativo

  • exportador de raios-x

    Envia traços para o X-Ray

exemplo Configuração do coletor de amostras — .yaml otel-collector-config
extensions: awsproxy: endpoint: 127.0.0.1:2000 health_check: receivers: otlp: protocols: grpc: endpoint: 127.0.0.1:4317 http: endpoint: 127.0.0.1:4318 processors: batch: exporters: awsxray: region: 'us-east-1' service: pipelines: traces: receivers: [otlp] exporters: [awsxray] extensions: [awsproxy, health_check]
Importante

Configure AWS as credenciais com a xray:PutTraceSegments permissão. Para obter mais informações, consulte Especificação de credenciais.

Iniciando o coletor

Execute o coletor com seu arquivo de configuração:

otelcol --config=otel-collector-config.yaml

Migração para o Amazon ECS

Importante

Sua função de tarefa deve ter a xray:PutTraceSegments permissão para qualquer coletor que você usa.

Pare qualquer contêiner X-Ray Daemon existente antes de executar o contêiner do CloudWatch agente ou OpenTelemetry coletor no mesmo host para evitar conflitos de portas.

Usando o CloudWatch agente

  1. Obtenha a imagem do Docker na Galeria Pública do Amazon ECR.

  2. Crie um arquivo de configuração chamadocw-agent-otel.json:

    { "traces": { "traces_collected": { "xray": { "tcp_proxy": { "bind_address": "0.0.0.0:2000" } }, "otlp": { "grpc_endpoint": "0.0.0.0:4317", "http_endpoint": "0.0.0.0:4318" } } } }
  3. Armazene a configuração no Systems Manager Parameter Store:

    1. Abra as https://console.aws.amazon.com/systems-manager/

    2. Escolha Criar parâmetro

    3. Insira os seguintes valores:

      • Nome: /ecs/cwagent/otel-config

      • Nível: Padrão

      • Tipo: String

      • Tipo de dados: Texto

      • Valor: [Cole a configuração cw-agent-otel de.json aqui]

  4. Crie uma definição de tarefa usando o modo de rede bridge:

    Na definição da tarefa, a configuração vai depender do modo de rede que você usa. A rede bridge é o padrão e pode ser usado na sua VPC padrão. Em uma rede bridge, defina a variável de OTEL_EXPORTER_OTLP_TRACES_ENDPOINT ambiente para informar ao OpenTelemetry SDK qual é o endpoint e a porta do CloudWatch agente. Você também deve criar um link do contêiner do aplicativo para o contêiner do Collector para que os rastreamentos sejam enviados do OpenTelemetry SDK do seu aplicativo para o contêiner do Collector.

    exemplo CloudWatch definição de tarefa do agente
    { "containerDefinitions": [ { "name": "cwagent", "image": "public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest", "portMappings": [ { "containerPort": 4318, "hostPort": 4318, "protocol": "tcp" }, { "containerPort": 4317, "hostPort": 4317, "protocol": "tcp" }, { "containerPort": 2000, "hostPort": 2000, "protocol": "tcp" } ], "secrets": [ { "name": "CW_CONFIG_CONTENT", "valueFrom": "/ecs/cwagent/otel-config" } ] }, { "name": "application", "image": "APPLICATION_IMAGE", "links": ["cwagent"], "environment": [ { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://cwagent:4318/v1/traces" } ] } ] }

Para obter mais informações, consulte Implantação do CloudWatch agente para coletar EC2 métricas em nível de instância da Amazon no Amazon ECS.

Usando o OpenTelemetry coletor

  1. Obtenha a imagem do Docker otel/opentelemetry-collector-contrib do Docker Hub.

  2. Crie um arquivo de configuração chamado otel-collector-config.yaml usando o mesmo conteúdo mostrado na seção de EC2 configuração do coletor da Amazon, mas atualize os endpoints para usar 0.0.0.0 em vez de. 127.0.0.1

  3. Para usar essa configuração no Amazon ECS, você pode armazenar a configuração no Systems Manager Parameter Store. Primeiro, acesse o console do Systems Manager Parameter Store e escolha Create new parameter. Crie um novo parâmetro com as seguintes informações:

    • Nome:/ecs/otel/config(esse nome será referenciado na Definição de Tarefa do Coletor)

    • Nível: Padrão

    • Tipo: String

    • Tipo de dados: Texto

    • Valor: [Cole a configuração otel-collector-config de.yaml aqui]

  4. Crie uma definição de tarefa para implantar o OpenTelemetry coletor usando o modo de rede bridge como exemplo.

    Na definição da tarefa, a configuração depende do modo de rede que você usa. A rede bridge é o padrão e pode ser usado na sua VPC padrão. Em uma rede bridge, defina a variável de OTEL_EXPORTER_OTLP_TRACES_ENDPOINT ambiente para informar ao OpenTelemetry SDK qual é o endpoint e a porta do OpenTelemetry Collector. Você também deve criar um link do contêiner do aplicativo para o contêiner do Collector para que os rastreamentos sejam enviados do OpenTelemetry SDK do seu aplicativo para o contêiner do Collector.

    exemplo OpenTelemetry definição de tarefa de coletor
    { "containerDefinitions": [ { "name": "otel-collector", "image": "otel/opentelemetry-collector-contrib", "portMappings": [ { "containerPort": 2000, "hostPort": 2000 }, { "containerPort": 4317, "hostPort": 4317 }, { "containerPort": 4318, "hostPort": 4318 } ], "command": [ "--config", "env:SSM_CONFIG" ], "secrets": [ { "name": "SSM_CONFIG", "valueFrom": "/ecs/otel/config" } ] }, { "name": "application", "image": "APPLICATION_IMAGE", "links": ["otel-collector"], "environment": [ { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://otel-collector:4318/v1/traces" } ] } ] }

Migração no Elastic Beanstalk

Importante

Pare o processo do X-Ray Daemon antes de usar o CloudWatch agente para evitar conflitos de portas.

Sua integração existente com o X-Ray Daemon foi ativada usando o console do Elastic Beanstalk ou configurando o X-Ray Daemon no código-fonte do seu aplicativo com um arquivo de configuração.

Usando o CloudWatch agente

Na plataforma Amazon Linux 2, configure o CloudWatch agente usando um arquivo .ebextensions de configuração:

  1. Crie um diretório chamado .ebextensions na raiz do seu projeto

  2. Crie um arquivo chamado cloudwatch.config dentro do .ebextensions diretório com o seguinte conteúdo:

    files: "/opt/aws/amazon-cloudwatch-agent/etc/config.json": mode: "0644" owner: root group: root content: | { "traces": { "traces_collected": { "otlp": { "grpc_endpoint": "12.0.0.1:4317", "http_endpoint": "12.0.0.1:4318" } } } } container_commands: start_agent: command: /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -c file:/opt/aws/amazon-cloudwatch-agent/etc/config.json -s
  3. Inclua o .ebextensions diretório no pacote de origem do aplicativo ao implantar

Para obter mais informações sobre os arquivos de configuração do Elastic Beanstalk, consulte Personalização avançada do ambiente com arquivos de configuração.