Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Migrazione dalla strumentazione a raggi X alla strumentazione OpenTelemetry
X-Ray sta passando a OpenTelemetry (OTel) come standard di strumentazione principale per il tracciamento e l'osservabilità delle applicazioni. Questo cambiamento strategico si allinea AWS alle migliori pratiche del settore e offre ai clienti una soluzione più completa, flessibile e pronta per il futuro per le loro esigenze di osservabilità. OpenTelemetryl'ampia adozione nel settore consente il tracciamento delle richieste su diversi sistemi, compresi quelli esterni AWS che potrebbero non integrarsi direttamente con X-Ray.
Questo capitolo fornisce raccomandazioni per una transizione senza intoppi e sottolinea l'importanza della migrazione a soluzioni OpenTelemetry basate su di essa per garantire supporto e accesso continui alle funzionalità più recenti in materia di strumentazione e osservabilità delle applicazioni.
Si consiglia di adottarla OpenTelemetry come soluzione di osservabilità per la strumentazione dell'applicazione.
Argomenti
Comprensione OpenTelemetry
OpenTelemetry è un framework di osservabilità standard del settore che fornisce protocolli e strumenti standardizzati per la raccolta di dati di telemetria. Offre un approccio unificato alla strumentazione, alla generazione, alla raccolta e all'esportazione di dati di telemetria come metriche, log e tracce.
Quando si esegue la migrazione da SDKs X-Ray OpenTelemetry a, si ottengono i seguenti vantaggi:
Supporto avanzato per framework e strumentazione di libreria
Support per linguaggi di programmazione aggiuntivi
Funzionalità di strumentazione automatica
Opzioni flessibili di configurazione del campionamento
Raccolta unificata di metriche, log e tracce
Il OpenTelemetry raccoglitore offre più opzioni per i formati di raccolta dei dati e le destinazioni di esportazione rispetto al demone X-Ray.
OpenTelemetry supporto in AWS
AWS offre diverse soluzioni per lavorare con OpenTelemetry:
-
AWS Distro per OpenTelemetry
Esporta OpenTelemetry le tracce come segmenti in X-Ray.
Per ulteriori informazioni, vedete AWS Distro
for. OpenTelemetry -
CloudWatch Segnali applicativi
Esporta OpenTelemetry tracce e metriche personalizzate per monitorare lo stato delle applicazioni.
Per ulteriori informazioni, consulta Working with Application Signals.
-
CloudWatch OTel Endpoint
Esporta OpenTelemetry le tracce su X-Ray utilizzando l' OTel endpoint HTTP con strumentazione nativa. OpenTelemetry
Per ulteriori informazioni, vedere Utilizzo degli endpoint. OTel
Utilizzo con OpenTelemetry AWS CloudWatch
AWS CloudWatch supporta OpenTelemetry le tracce tramite strumentazione applicativa lato client e AWS CloudWatch servizi nativi come Application Signals, Trace, Map, Metrics e Logs. Per ulteriori informazioni, consulta OpenTelemetry.
Comprensione dei concetti relativi alla migrazione OpenTelemetry
La tabella seguente mappa i concetti relativi ai raggi X ai loro OpenTelemetry equivalenti. La comprensione di queste mappature consente di tradurre la strumentazione a raggi X esistente in: OpenTelemetry
Concetto X-Ray | OpenTelemetry concetto |
---|---|
Registratore a raggi X | Tracer Provider e Tracer |
Plugin di servizio | Rilevatore di risorse |
Segment | (Server) Span |
Sottosegmento | Intervallo (non basato sul server) |
Regole di campionamento a raggi X | OpenTelemetry Campionamento (personalizzabile) |
Emettitore di raggi X | Span Exporter (personalizzabile) |
Annotazioni/metadati | Attributes |
Strumentazione della biblioteca | Strumentazione per biblioteche |
Contesto della traccia a raggi X | Contesto Span |
Propagazione del contesto di tracce a raggi X | Propagazione del contesto di traccia W3C |
Campionamento di tracce a raggi X | OpenTelemetry Campionamento delle tracce |
N/D | Elaborazione Span |
N/D | Bagagli |
Demone X-Ray | OpenTelemetry Collezionista |
Nota
Per ulteriori informazioni sui OpenTelemetry concetti, consulta la OpenTelemetry documentazione
Confronto delle funzionalità
La tabella seguente mostra quali funzionalità sono supportate in entrambi i servizi. Utilizzate queste informazioni per identificare eventuali lacune da colmare durante la migrazione:
Funzionalità | Strumentazione a raggi X | OpenTelemetry strumentazione |
---|---|---|
Strumentazione da biblioteca | Supportato | Supportato |
Campionamento a raggi X | Supportato |
Supportato in Java/.net/Go OTel Supportato in ADOT Java/. NET/Python/Node.js |
Propagazione del contesto di tracce a raggi X | Supportato | Supportato |
Rilevamento delle risorse | Supportato | Supportato |
Annotazioni sui segmenti | Supportato | Supportato |
Metadati dei segmenti | Supportato | Supportato |
Strumentazione automatica a codice zero | Supportato in Java |
Supportato in OTel Java/. NET/Python/Node.js Supportato in ADOT Java/. NET/Python/Node.js |
Traccia manualmente la creazione | Supportato | Supportato |
Impostazione e configurazione del tracciamento
Per creare tracce in OpenTelemetry, è necessario un tracer. Puoi ottenere un tracer inizializzando un Tracer Provider nella tua applicazione. È simile a come si utilizza il registratore a raggi X per configurare X-Ray e creare segmenti e sottosegmenti in una traccia a raggi X.
Nota
Il OpenTelemetry Tracer Provider offre più opzioni di configurazione rispetto al registratore X-Ray.
Comprensione della struttura dei dati di traccia
Dopo aver compreso i concetti di base e le mappature delle funzionalità, puoi conoscere dettagli di implementazione specifici come la struttura dei dati di traccia e il campionamento.
OpenTelemetry utilizza gli intervalli anziché segmenti e sottosegmenti per strutturare i dati di traccia. Ogni intervallo include i seguenti componenti:
Nome
ID univoco
Timestamp di inizio e fine
Tipo di intervallo
Amplia il contesto
Attributi (metadati chiave-valore)
Eventi (registri con data e ora)
Collegamenti ad altri span
Informazioni sullo stato
Riferimenti Parent Span
Quando si esegue la migrazione a OpenTelemetry, gli intervalli vengono convertiti automaticamente in segmenti o sottosegmenti X-Ray. Ciò garantisce che l'esperienza esistente con la console rimanga invariata. CloudWatch
Lavorare con gli attributi span
L'SDK X-Ray offre due modi per aggiungere dati a segmenti e sottosegmenti:
- Annotazioni
-
Coppie chiave-valore indicizzate per il filtraggio e la ricerca
- Metadati
-
Coppie chiave-valore contenenti dati complessi che non sono indicizzati per la ricerca
Per impostazione predefinita, gli attributi OpenTelemetry span vengono convertiti in metadati nei dati grezzi X-Ray. Per convertire invece attributi specifici in annotazioni, aggiungete le relative chiavi all'elenco degli attributi. aws.xray.annotations
-
Per ulteriori informazioni sui OpenTelemetry concetti, vedete OpenTelemetry Traces
-
Per dettagli su come i OpenTelemetry dati vengono mappati ai dati a raggi X, vedere sulla traduzione del modello di dati OpenTelemetry a raggi X
Rilevamento delle risorse nell'ambiente
OpenTelemetry utilizza Resource Detectors per raccogliere metadati sulle risorse che generano dati di telemetria. Questi metadati vengono archiviati come Resource Attributes. Ad esempio, un'entità che produce telemetria potrebbe essere un cluster Amazon ECS o un' EC2 istanza Amazon e gli attributi delle risorse che possono essere registrati da queste entità possono includere l'ARN del cluster Amazon ECS o l'ID Amazon Instance. EC2
-
Per informazioni sui plugin del servizio X-Ray, vedere Configurazione dell'SDK X-Ray
Gestione delle strategie di campionamento
Trace Sampling ti aiuta a gestire i costi raccogliendo dati da un sottoinsieme rappresentativo di richieste anziché da tutte le richieste. OpenTelemetry Sia X-Ray che X-Ray supportano il campionamento, ma lo implementano in modo diverso.
Nota
Il campionamento di meno del 100% delle tracce riduce i costi di osservabilità, mantenendo al contempo informazioni significative sulle prestazioni dell'applicazione.
OpenTelemetry offre diverse strategie di campionamento integrate e consente di crearne di personalizzate. Puoi anche configurare un campionatore remoto X-Ray in alcuni linguaggi SDK con cui utilizzare le regole di campionamento X-Ray. OpenTelemetry
Le strategie di campionamento aggiuntive di sono: OpenTelemetry
Campionamento basato sui genitori: rispetta la decisione di campionamento dell'intervallo principale prima di applicare strategie di campionamento aggiuntive
Campionamento basato sul rapporto Trace ID — >Campiona in modo casuale una percentuale specificata di intervalli
Campionamento della coda: applica le regole di campionamento per completare le tracce nel Collector OpenTelemetry
Campionatori personalizzati: implementate la vostra logica di campionamento utilizzando l'interfaccia di campionamento
Per informazioni sulle regole di campionamento a raggi X, vedere Regole di campionamento nella console X-Ray
Gestione del contesto di traccia
X-Ray SDKs gestisce il contesto del segmento per gestire correttamente le relazioni padre-figlio tra segmenti e sottosegmenti in una traccia. OpenTelemetry utilizza un meccanismo simile per garantire che gli span abbiano l'intervallo principale corretto. Memorizza e propaga i dati di tracciamento in un contesto di richiesta. Ad esempio, quando l'applicazione elabora una richiesta e crea uno span del server per rappresentare tale richiesta, OpenTelemetry memorizzerà l'estensione del server nel OpenTelemetry Context in modo che, quando viene creato uno span secondario, tale span figlio possa fare riferimento allo span nel Context come riferimento principale.
Propagazione del contesto di traccia
Sia X-Ray che OpenTelemetry utilizzano le intestazioni HTTP per propagare il contesto di traccia tra i servizi. Ciò consente di collegare i dati di traccia generati da diversi servizi e di mantenere le decisioni di campionamento.
L'SDK X-Ray propaga automaticamente il contesto della traccia utilizzando l'intestazione di traccia X-Ray. Quando un servizio ne chiama un altro, l'intestazione di traccia contiene il contesto necessario per mantenere le relazioni padre-figlio tra le tracce.
OpenTelemetry supporta diversi formati di trace header per la propagazione del contesto, tra cui:
-
W3C Trace Context (impostazione predefinita)
-
Intestazione di tracciamento X-Ray
-
Altri formati personalizzati
Nota
È possibile configurare l'utilizzo OpenTelemetry di uno o più formati di intestazione. Ad esempio, utilizzate X-Ray Propagator per inviare il contesto di traccia ai AWS servizi che supportano il tracciamento a raggi X.
Configura e usa X-Ray Propagator per abilitare il tracciamento tra i servizi. AWS Ciò consente di propagare il contesto di traccia agli endpoint API Gateway e ad altri servizi che supportano X-Ray.
-
Per informazioni sugli X-Ray Trace Header, vedere Tracing header nella X-Ray Developer Guide
-
Per informazioni sulla propagazione del OpenTelemetry contesto, vedere Context and Context
Propagation nella documentazione OpenTelemetry
Utilizzo della strumentazione della libreria
Sia X-Ray che OpenTelemetry forniscono una strumentazione di libreria che richiede modifiche minime al codice per aggiungere tracciamento alle applicazioni.
X-Ray fornisce funzionalità di strumentazione di libreria. Ciò consente di aggiungere strumentazioni X-Ray predefinite con modifiche minime al codice dell'applicazione. Queste strumentazioni supportano librerie specifiche come i client AWS SDK e HTTP, nonché framework web come Spring Boot o Express.js.
OpenTelemetryle librerie di strumentazione generano intervalli dettagliati per le librerie tramite hook di libreria o modifiche automatiche del codice, che richiedono modifiche minime al codice.
Esportazione di tracce
X-Ray e OpenTelemetry utilizza diversi metodi per esportare i dati di traccia.
Esportazione di tracce a raggi X
Gli X-Ray SDKs utilizzano un emettitore per inviare dati di traccia:
Invia segmenti e sottosegmenti al demone X-Ray
Utilizza UDP per I/O non bloccanti
Configurato per impostazione predefinita nell'SDK
OpenTelemetry traccia l'esportazione
OpenTelemetry utilizza Span Exporters configurabili per inviare dati di traccia:
Utilizza i protocolli http/protobuf o grpc
Esporta gli intervalli verso gli endpoint monitorati dal Collector o dall'Agent OpenTelemetry CloudWatch
Consente configurazioni di esportazione personalizzate
Elaborazione e inoltro delle tracce
X-Ray e OpenTelemetry forniscono componenti per ricevere, elaborare e inoltrare dati di traccia.
Elaborazione di tracce a raggi X
Il demone X-Ray gestisce l'elaborazione delle tracce:
Ascolta il traffico UDP proveniente da X-Ray SDKs
Esegue in batch segmenti e sottosegmenti
Carica i batch sul servizio X-Ray
OpenTelemetry elaborazione delle tracce
Il OpenTelemetry Collector gestisce l'elaborazione delle tracce:
Riceve tracce dai servizi strumentati
Elabora e modifica facoltativamente i dati di traccia
Invia tracce elaborate a vari backend, incluso X-Ray
Nota
L' AWS CloudWatch agente può anche ricevere e inviare OpenTelemetry tracce a X-Ray. Per ulteriori informazioni, consulta Raccogli metriche e tracce con. OpenTelemetry
Elaborazione Span (concetto specifico) OpenTelemetry
OpenTelemetry utilizza Span Processors per modificare gli span man mano che vengono creati:
Consente di leggere e modificare gli intervalli al momento della creazione o del completamento
Abilita una logica personalizzata per la gestione degli intervalli
Bagaglio (concetto specifico) OpenTelemetry
OpenTelemetryla funzione Baggage consente la propagazione di dati chiave-valore:
Consente il passaggio di dati arbitrari insieme al contesto di traccia
Utile per diffondere informazioni specifiche dell'applicazione oltre i confini del servizio
Per informazioni sul Collector, vedere OpenTelemetry Collector OpenTelemetry
Per informazioni sui concetti di X-Ray, vedere X-Ray concepts nella X-Ray Developer Guide
Panoramica sulla migrazione
Questa sezione fornisce una panoramica delle modifiche al codice necessarie per la migrazione. L'elenco seguente contiene linee guida specifiche per la lingua e le fasi di migrazione di X-Ray Daemon.
Importante
Per migrare completamente dalla strumentazione a raggi X alla strumentazione, OpenTelemetry è necessario:
Sostituisci l'utilizzo di X-Ray SDK con una soluzione OpenTelemetry
Sostituisci il demone X-Ray con l' CloudWatch agente o il OpenTelemetry raccoglitore (con X-Ray Exporter)
Raccomandazioni per applicazioni nuove ed esistenti
Per le applicazioni nuove ed esistenti, si consiglia di utilizzare le seguenti soluzioni per abilitare la tracciabilità nelle applicazioni:
- Instrumentation
-
OpenTelemetry SDKs
AWS Distro per strumentazione OpenTelemetry
- Raccolta dati
-
OpenTelemetry Collezionista
CloudWatch Agente
Dopo la migrazione a soluzioni OpenTelemetry basate, la tua CloudWatch esperienza rimarrà la stessa. Potrai comunque visualizzare le tue tracce nello stesso formato nelle pagine Traces e Trace Map della CloudWatch console o recuperare i dati di traccia tramite X-Ray APIs.
Tracciamento delle modifiche alla configurazione
È necessario sostituire la configurazione X-Ray con una OpenTelemetry configurazione.
Funzionalità | SDK X-Ray | OpenTelemetry |
---|---|---|
Configurazioni predefinite |
|
|
Configurazioni manuali |
|
|
Modifiche alla strumentazione della libreria
Aggiorna il codice per utilizzare OpenTelemetry Library Instrumentation anziché X-Ray Library Instrumentation per AWS SDK, client HTTP, Web Frameworks e altre librerie. Questo genera OpenTelemetry tracce anziché tracce a raggi X.
Nota
Le modifiche al codice variano in base alla lingua e alla libreria. Per istruzioni dettagliate, consulta le guide alla migrazione specifiche per lingua.
Modifiche alla strumentazione dell'ambiente Lambda
Per utilizzarle OpenTelemetry nelle funzioni Lambda, scegli una di queste opzioni di configurazione:
-
Usa un Lambda Layer con strumentazione automatica:
-
(Consigliato) Segnali CloudWatch applicativi Lambda Layer
Nota
Per utilizzare solo la traccia, imposta la variabile di ambiente Lambda.
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=false
-
-
Configurazione manuale della OpenTelemetry funzione Lambda:
Configurazione di un processore Simple Span con un X-Ray UDP Span Exporter
Configurare un propagatore Lambda a raggi X
Creazione manuale di dati di traccia
Sostituisci i segmenti e i sottosegmenti X-Ray con Spans: OpenTelemetry
Usa un Tracer per creare Span OpenTelemetry
Aggiungi attributi a Spans (equivalente ai metadati e alle annotazioni X-Ray)
Importante
Quando viene inviato a X-Ray:
Gli intervalli del server vengono convertiti in segmenti X-Ray
Gli altri intervalli vengono convertiti in sottosegmenti X-Ray
Gli attributi vengono convertiti in metadati per impostazione predefinita
Per convertire un attributo in un'annotazione, aggiungete la relativa chiave all'elenco degli aws.xray.annotations
attributi. Per ulteriori informazioni, vedere Abilitare le annotazioni X-Ray personalizzate
Migrazione da X-Ray Daemon AWS CloudWatch a un agente o un raccoglitore OpenTelemetry
È possibile utilizzare l' CloudWatch agente o il OpenTelemetry raccoglitore per ricevere tracce dalle applicazioni strumentate e inviarle a X-Ray.
Nota
La versione dell' CloudWatch agente 1.300025.0 e successive può raccogliere tracce. OpenTelemetry L'utilizzo dell' CloudWatch agente anziché del demone X-Ray riduce il numero di agenti da gestire. Per ulteriori informazioni, vedere Raccolta di metriche, log e tracce con l'agente. CloudWatch
Sections
Migrazione su Amazon EC2 o server locali
Importante
Arresta il processo X-Ray Daemon prima di utilizzare l' CloudWatch agente o il OpenTelemetry raccoglitore per evitare conflitti tra le porte.
Configurazione X-Ray Daemon esistente
Installazione del demone
L'utilizzo esistente di X-Ray Daemon è stato installato utilizzando uno di questi metodi:
- Installazione manuale
-
Scarica ed esegui il file eseguibile dal daemon X-Ray Amazon S3.
- Installazione automatica
-
Utilizzate questo script per installare il demone all'avvio di un'istanza:
#!/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
Configurazione del daemon
L'utilizzo esistente di X-Ray Daemon è stato configurato utilizzando:
-
Argomenti della riga di comando
-
File di configurazione (
xray-daemon.yaml
)
Esempio Utilizzo di un file di configurazione
./xray -c ~/xray-daemon.yaml
Esecuzione del daemon
L'utilizzo esistente di X-Ray Daemon è stato avviato con il seguente comando:
~/xray-daemon$ ./xray -o -n us-east-1
Rimozione del demone
Per rimuovere il demone X-Ray dalla tua istanza Amazon: EC2
-
Arresta il servizio daemon:
systemctl stop xray
-
Eliminare il file di configurazione:
rm ~/
path
/to
/xray-daemon.yaml -
Se configurato, rimuovi il file di registro:
Nota
La posizione del file di registro dipende dalla configurazione:
-
Configurazione della riga di comando:
/var/log/xray-daemon.log
-
File di configurazione: verifica l'
LogPath
impostazione
-
Configurazione dell' CloudWatch agente
Installazione dell'agente
Per le istruzioni di installazione, vedere Installazione dell' CloudWatch agente su un server locale.
Configurazione dell'agente
-
Crea un file di configurazione per abilitare la raccolta delle tracce. Per ulteriori informazioni, vedere Creazione del file di configurazione CloudWatch dell'agente.
-
Configura le autorizzazioni IAM:
-
Allega un ruolo IAM o specifica le credenziali per l'agente. Per ulteriori informazioni, consulta Configurazione dei ruoli IAM.
-
Assicurati che il ruolo o le credenziali includano l'
xray:PutTraceSegments
autorizzazione.
-
Avvio dell'agente di
Per istruzioni su come avviare l'agente, consulta Avvio dell' CloudWatch agente tramite la riga di comando.
Configurazione del OpenTelemetry raccoglitore
Installazione del collettore
Scaricate e installate il OpenTelemetry raccoglitore per il vostro sistema operativo. Per istruzioni, consultate Installazione del raccoglitore
Configurazione del raccoglitore
Configura i seguenti componenti nel tuo raccoglitore:
-
estensione awsproxy
Necessario per il campionamento a raggi X
-
OTel ricevitori
Raccoglie tracce dall'applicazione
-
esportatore di raggi x
Invia tracce a X-Ray
Esempio di configurazione del collettore: .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
Configura le AWS credenziali con l'autorizzazione. xray:PutTraceSegments
Per ulteriori informazioni, vedere Specificazione delle credenziali.
Avvio del raccoglitore
Esegui il raccoglitore con il tuo file di configurazione:
otelcol --config=otel-collector-config.yaml
Migrazione su Amazon ECS
Importante
Il tuo ruolo di attività deve avere l'xray:PutTraceSegments
autorizzazione per qualsiasi raccoglitore che utilizzi.
Arresta qualsiasi contenitore X-Ray Daemon esistente prima di eseguire l' CloudWatch agente o il contenitore di OpenTelemetry raccolta sullo stesso host per evitare conflitti tra porte.
Utilizzo dell'agente CloudWatch
Scarica l'immagine Docker da Amazon ECR Public Gallery.
Crea un file di configurazione denominato:
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" } } } }
Memorizza la configurazione in Systems Manager Parameter Store:
Aprire https://console.aws.amazon.com/systems-manager/
Scegliete Crea parametro
-
Immetti uno dei seguenti valori:
Valore:
/ecs/cwagent/otel-config
Livello: Standard
Tipo: stringa
Tipo di dati: testo
Valore: [Incolla qui la configurazione cw-agent-otel .json]
Crea una definizione di attività utilizzando la modalità di rete bridge:
Nella tua definizione di attività, la configurazione dipende dalla modalità di rete utilizzata. La modalità di rete bridge è l'impostazione predefinita e può essere utilizzato nel VPC di default. In una rete bridge, imposta la variabile di
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
ambiente per indicare all' OpenTelemetry SDK quali sono l'endpoint e la porta per l' CloudWatch agente. È inoltre necessario creare un collegamento dal contenitore dell'applicazione al contenitore Collector per inviare le tracce dall' OpenTelemetry SDK dell'applicazione al contenitore Collector.Esempio CloudWatch definizione del compito dell'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" } ] } ] }
Per ulteriori informazioni, consulta Implementazione dell' CloudWatch agente per raccogliere EC2 parametri a livello di istanza Amazon su Amazon ECS.
OpenTelemetry Utilizzo del raccoglitore
-
Ottieni l'immagine Docker
otel/opentelemetry-collector-contrib
da DockerHub. -
Crea un file di configurazione chiamato
otel-collector-config.yaml
utilizzando lo stesso contenuto mostrato nella sezione Amazon EC2 configuring the collector, ma aggiorna gli endpoint per utilizzarli0.0.0.0
al posto di.127.0.0.1
Per utilizzare questa configurazione in Amazon ECS, puoi archiviare la configurazione in Systems Manager Parameter Store. Innanzitutto, vai alla console di Systems Manager Parameter Store e scegli Crea nuovo parametro. Crea un nuovo parametro con le seguenti informazioni:
Nome:/ecs/otel/config(a questo nome verrà fatto riferimento nella definizione dell'attività per il raccoglitore)
Livello: Standard
Tipo: stringa
Tipo di dati: testo
Valore: [Incolla qui la otel-collector-config configurazione .yaml]
-
Crea una definizione di attività per distribuire il OpenTelemetry collettore utilizzando la modalità di rete bridge come esempio.
Nella definizione dell'attività, la configurazione dipende dalla modalità di rete utilizzata. La modalità di rete bridge è l'impostazione predefinita e può essere utilizzato nel VPC di default. In una rete bridge, impostate la variabile di
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
ambiente per indicare all' OpenTelemetry SDK quali sono l'endpoint e la porta per il OpenTelemetry Collector. È inoltre necessario creare un collegamento dal contenitore dell'applicazione al contenitore Collector per inviare le tracce dall' OpenTelemetry SDK dell'applicazione al contenitore Collector.Esempio OpenTelemetry definizione del compito del collettore
{ "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" } ] } ] }
Migrazione su Elastic Beanstalk
Importante
Arresta il processo X-Ray Daemon prima di utilizzare l' CloudWatch agente per evitare conflitti tra le porte.
L'integrazione X-Ray Daemon esistente è stata attivata utilizzando la console Elastic Beanstalk o configurando X-Ray Daemon nel codice sorgente dell'applicazione con un file di configurazione.
Utilizzo dell'agente CloudWatch
Sulla piattaforma Amazon Linux 2, configura l' CloudWatch agente utilizzando un file .ebextensions
di configurazione:
-
Crea una directory denominata
.ebextensions
nella cartella principale del progetto -
Crea un file denominato
cloudwatch.config
all'interno della.ebextensions
directory con il seguente contenuto: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
-
Includi la
.ebextensions
directory nel bundle dei sorgenti dell'applicazione durante la distribuzione
Per ulteriori informazioni sui file di configurazione di Elastic Beanstalk, consulta Personalizzazione avanzata dell'ambiente con file di configurazione.