Tracciamento per l'applicazione App Runner con X-Ray - AWS App Runner

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

Tracciamento per l'applicazione App Runner con X-Ray

AWS X-Ray è un servizio che raccoglie dati sulle richieste servite dall'applicazione e fornisce strumenti che è possibile utilizzare per visualizzare, filtrare e acquisire informazioni su tali dati per identificare problemi e opportunità di ottimizzazione. Per ogni richiesta tracciata all'applicazione, è possibile visualizzare informazioni dettagliate non solo sulla richiesta e sulla risposta, ma anche sulle chiamate effettuate dall'applicazione a AWS risorse downstream, microservizi, database e API Web HTTP.

X-Ray utilizza i dati di traccia provenienti dalle AWS risorse che alimentano le applicazioni cloud per generare un grafico dettagliato dei servizi. Il grafo del servizio mostra il client, il tuo servizio di front-end e i servizi di back-end invocati dal servizio di front-end per elaborare le richieste e memorizzare i dati in modo persistente. Utilizza il grafo del servizio per identificare i colli di bottiglia, i picchi di latenza e altri problemi da risolvere per migliorare le prestazioni delle applicazioni.

Per ulteriori informazioni su X-Ray, consulta la Guida per gli sviluppatori di AWS X-Ray.

Un esempio di mappa di servizio X-Ray per un servizio App Runner

Strumenta la tua applicazione per il tracciamento

Strumenta la tua applicazione di servizio App Runner per il tracciamento utilizzando una specifica di OpenTelemetrytelemetria portatile. Al momento, App Runner supporta AWS Distro for OpenTelemetry (ADOT), un' OpenTelemetryimplementazione che raccoglie e presenta informazioni di telemetria utilizzando i servizi. AWS X-Ray implementa il componente di tracciamento.

A seconda dello specifico ADOT SDK utilizzato nell'applicazione, ADOT supporta fino a due approcci strumentali: automatico e manuale. Per ulteriori informazioni sulla strumentazione con il tuo SDK, consulta la documentazione ADOT e scegli il tuo SDK nel pannello di navigazione.

Configurazione del runtime

Di seguito sono riportate le istruzioni generali di configurazione del runtime per utilizzare l'applicazione di servizio App Runner per il tracciamento.

Per configurare il tracciamento per il runtime
  1. Segui le istruzioni fornite per il runtime in AWS Distro for OpenTelemetry (ADOT), per strumentare l'applicazione.

  2. Installa le OTEL dipendenze richieste nella build sezione del apprunner.yaml file se stai usando il repository del codice sorgente o nel Dockerfile se stai usando un'immagine del contenitore.

  3. Imposta le variabili di ambiente nel apprunner.yaml file se stai usando il repository del codice sorgente o nel Dockerfile se stai usando un'immagine del contenitore.

    Esempio Variabili di ambiente
    Nota

    L'esempio seguente elenca le importanti variabili di ambiente da aggiungere al file. apprunner.yaml Aggiungi queste variabili di ambiente al tuo Dockerfile se stai usando un'immagine del contenitore. Tuttavia, ogni runtime può avere le proprie idiosincrasie e potrebbe essere necessario aggiungere altre variabili di ambiente all'elenco seguente. Per ulteriori informazioni sulle istruzioni specifiche del runtime ed esempi su come configurare l'applicazione per il runtime, consultate AWS Distro for OpenTelemetry e vai al runtime, in Getting Started.

    env: - name: OTEL_PROPAGATORS value: xray - name: OTEL_METRICS_EXPORTER value: none - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://localhost:4317 - name: OTEL_RESOURCE_ATTRIBUTES value: 'service.name=example_app'
    Nota

    OTEL_METRICS_EXPORTER=noneè una variabile di ambiente importante per App Runner poiché il collector App Runner Otel non accetta la registrazione delle metriche. Accetta solo il tracciamento delle metriche.

Esempio di configurazione del runtime

L'esempio seguente dimostra la strumentazione automatica dell'applicazione con ADOT Python SDK. L'SDK produce automaticamente intervalli con dati di telemetria che descrivono i valori utilizzati dai framework Python nell'applicazione senza aggiungere una sola riga di codice Python. È necessario aggiungere o modificare solo poche righe in due file sorgente.

Innanzitutto, aggiungete alcune dipendenze, come illustrato nell'esempio seguente.

Esempio requirements.txt
opentelemetry-distro[otlp]>=0.24b0 opentelemetry-sdk-extension-aws~=2.0 opentelemetry-propagator-aws-xray~=1.0

Quindi, strumentate la vostra applicazione. Il modo per farlo dipende dalla fonte del servizio, dall'immagine sorgente o dal codice sorgente.

Source image

Se la fonte del servizio è un'immagine, puoi utilizzare direttamente il Dockerfile che controlla la creazione dell'immagine del contenitore e l'esecuzione dell'applicazione nell'immagine. L'esempio seguente mostra un Dockerfile con strumenti per un'applicazione Python. Le aggiunte alla strumentazione sono enfatizzate in grassetto.

Esempio Dockerfile
FROM public.ecr.aws/amazonlinux/amazonlinux:latest RUN yum install python3.7 -y && curl -O https://bootstrap.pypa.io/get-pip.py && python3 get-pip.py && yum update -y COPY . /app WORKDIR /app RUN pip3 install -r requirements.txt RUN opentelemetry-bootstrap --action=install ENV OTEL_PYTHON_DISABLED_INSTRUMENTATIONS=urllib3 ENV OTEL_METRICS_EXPORTER=none ENV OTEL_RESOURCE_ATTRIBUTES='service.name=example_app' CMD OTEL_PROPAGATORS=xray OTEL_PYTHON_ID_GENERATOR=xray opentelemetry-instrument python3 app.py EXPOSE 8080
Source code repository

Quando la fonte del servizio è un repository contenente l'origine dell'applicazione, si strumenta indirettamente l'immagine utilizzando le impostazioni del file di configurazione di App Runner. Queste impostazioni controllano il Dockerfile che App Runner genera e utilizza per creare l'immagine per l'applicazione. L'esempio seguente mostra un file di configurazione App Runner strumentato per un'applicazione Python. Le aggiunte alla strumentazione sono evidenziate in grassetto.

Esempio apprunner.yaml
version: 1.0 runtime: python3 build: commands: build: - pip install -r requirements.txt - opentelemetry-bootstrap --action=install run: command: opentelemetry-instrument python app.py network: port: 8080 env: - name: OTEL_PROPAGATORS value: xray - name: OTEL_METRICS_EXPORTER value: none - name: OTEL_PYTHON_ID_GENERATOR value: xray - name: OTEL_PYTHON_DISABLED_INSTRUMENTATIONS value: urllib3 - name: OTEL_RESOURCE_ATTRIBUTES value: 'service.name=example_app'

Aggiungi le autorizzazioni X-Ray al tuo ruolo di istanza del servizio App Runner

Per utilizzare il tracciamento a raggi X con il servizio App Runner, è necessario fornire alle istanze del servizio le autorizzazioni per interagire con il servizio X-Ray. Puoi farlo associando un ruolo di istanza al tuo servizio e aggiungendo una policy gestita con autorizzazioni X-Ray. Per ulteriori informazioni su un ruolo di istanza di App Runner, consulta. Ruolo dell'istanza Aggiungi la policy AWSXRayDaemonWriteAccess gestita al ruolo dell'istanza e assegnala al servizio durante la creazione.

Abilita il tracciamento X-Ray per il tuo servizio App Runner

Quando crei un servizio, App Runner disabilita il tracciamento per impostazione predefinita. Puoi abilitare il tracciamento a raggi X per il tuo servizio come parte della configurazione dell'osservabilità. Per ulteriori informazioni, consulta Gestisci l'osservabilità.

Se si utilizza l'API App Runner o AWS CLI, l'TraceConfigurationoggetto all'interno dell'oggetto ObservabilityConfigurationrisorsa contiene le impostazioni di tracciamento. Per mantenere disabilitato il tracciamento, non specificate un oggetto. TraceConfiguration

Sia nella console che nell'API, assicurati di associare il ruolo dell'istanza discusso nella sezione precedente al servizio App Runner.

Visualizza i dati di tracciamento X-Ray per il tuo servizio App Runner

Nella scheda Osservabilità della pagina del dashboard del servizio nella console App Runner, scegli Visualizza mappa del servizio per accedere alla console Amazon CloudWatch .

Pagina della dashboard del servizio App Runner che mostra la scheda di osservabilità

Usa la CloudWatch console Amazon per visualizzare le mappe e le tracce dei servizi per le richieste servite dalla tua applicazione. Le mappe dei servizi mostrano informazioni come la latenza delle richieste e le interazioni con altre applicazioni e AWS servizi. Le annotazioni personalizzate che aggiungi al codice ti consentono di cercare facilmente le tracce. Per ulteriori informazioni, consulta Using ServiceLens to monitoring the health of your application nella Amazon CloudWatch User Guide.