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.
-
Para obter mais informações sobre OpenTelemetry conceitos, consulte OpenTelemetry Traces
-
Para obter detalhes sobre como os OpenTelemetry dados são mapeados para dados do X-Ray, consulte OpenTelemetry Tradução do modelo de dados do X-Ray
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
-
Para obter informações sobre os tipos de recursos compatíveis, consulte Convenções semânticas de OpenTelemetry recursos
-
Para obter informações sobre os plug-ins do serviço X-Ray, consulte Configurando o X-Ray SDK
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.
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:
Substitua o uso do X-Ray SDK por uma solução OpenTelemetry
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.
Recurso | SDK do X-Ray | OpenTelemetry |
---|---|---|
Configurações padrão |
|
|
Configurações manuais |
|
|
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:
-
Use uma camada Lambda de instrumentação automática:
-
Camada Lambda (recomendada) de sinais de CloudWatch aplicação
nota
Para usar somente o rastreamento, defina a variável de ambiente Lambda.
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=false
-
-
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.
Seções
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 :
-
Pare o serviço daemon:
systemctl stop xray
-
Exclua o arquivo de configuração:
rm ~/
path
/to
/xray-daemon.yaml -
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
-
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.
-
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
Obtenha a imagem do Docker na Galeria Pública do Amazon ECR.
Crie um arquivo de configuração chamado
cw-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" } } } }
Armazene a configuração no Systems Manager Parameter Store:
Abra as https://console.aws.amazon.com/systems-manager/
Escolha Criar parâmetro
-
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]
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
-
Obtenha a imagem do Docker
otel/opentelemetry-collector-contrib
do Docker Hub. -
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 usar0.0.0.0
em vez de.127.0.0.1
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]
-
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:
-
Crie um diretório chamado
.ebextensions
na raiz do seu projeto -
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
-
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.