Esportazione di tracce senza raccoglitore utilizzando AWS Distro for (ADOT) OpenTelemetry SDKs - Amazon CloudWatch

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

Esportazione di tracce senza raccoglitore utilizzando AWS Distro for (ADOT) OpenTelemetry SDKs

È possibile utilizzare ADOT SDKs per non utilizzare il raccoglitore e inviare le tracce direttamente all'endpoint OTLP (per le tracce).

Nota

Per impostazione predefinita, Application Signals è abilitato quando abiliti Transaction Search. Application Signals non è supportato su AWS Distro for OpenTelemetry e deve essere disabilitato.

Prerequisito

Assicurati che Transaction Search sia abilitato per inviare intervalli all'endpoint OTLP X-Ray. Per ulteriori informazioni, consulta Guida introduttiva a Transaction Search.

Configurare le autorizzazioni IAM per Amazon EC2

Segui questi passaggi per collegare la policy AWSXrayWriteOnlyPolicy IAM al ruolo IAM della tua EC2 istanza Amazon:

  1. Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  2. Scegli Ruoli e trova e seleziona il ruolo utilizzato dalla tua EC2 istanza Amazon.

  3. Nella scheda Autorizzazioni, scegli Aggiungi autorizzazioni, quindi Allega politiche.

  4. Utilizzando la casella di ricerca, cerca la AWSXrayWriteOnlyPolicy politica.

  5. Seleziona la AWSXrayWriteOnlyPolicy politica e scegli Aggiungi autorizzazioni.

Configura le autorizzazioni IAM per gli host locali

Segui questi passaggi per creare un utente IAM che possa essere utilizzato per fornire autorizzazioni ai tuoi host locali.

  1. Apri la console all' CloudWatch indirizzo. https://console.aws.amazon.com/cloudwatch/

  2. Scegli Utenti, quindi Crea utente.

  3. Scegli Utenti, Crea utente.

  4. In Dettagli utente, in Nome utente, inserisci un nome per il nuovo utente IAM. Questo è il nome di accesso AWS che verrà utilizzato per autenticare il tuo host.

  5. Scegli Next (Successivo).

  6. Nella pagina Imposta le autorizzazioni, in Opzioni di autorizzazione, seleziona Allega direttamente le politiche.

  7. Dall'elenco delle politiche di autorizzazione, seleziona la AWSXrayWriteOnlyPolicy politica da aggiungere al tuo utente.

  8. Scegli Next (Successivo).

  9. Nella pagina Rivedi e crea, assicurati di essere soddisfatto del nome utente e che la AWSXrayWriteOnlyPolicy politica si trovi nel riepilogo delle autorizzazioni.

  10. Selezionare Create user (Crea utente).

  11. Crea e recupera la tua chiave di AWS accesso e la chiave segreta:

    1. Nel riquadro di navigazione della console IAM, scegli Utenti, quindi seleziona il nome utente dell'utente che hai creato nel passaggio precedente.

    2. Nella pagina dell'utente, scegli la scheda Credenziali di sicurezza.

    3. Nella sezione Chiavi di accesso, scegli Crea chiave di accesso.

    4. Per Creare la chiave di accesso Step 1, scegli Command Line Interface (CLI).

    5. Per la creazione della chiave di accesso (Passaggio 2), inserisci facoltativamente un tag e scegli Avanti.

    6. Per la fase 3 di creazione della chiave di accesso, seleziona Scarica il file.csv per salvare un file.csv con la chiave di accesso e la chiave di accesso segreta del tuo utente IAM. Queste informazioni ti servono per i passaggi successivi.

    7. Seleziona Fatto.

  12. Configura AWS le tue credenziali nell'host locale immettendo il seguente comando. Sostituisci ACCESS_KEY_ID e SECRET_ACCESS_ID con la chiave di accesso appena generata e la chiave di accesso segreta dal file.csv scaricato nel passaggio precedente.

    $ aws configure AWS Access Key ID [None]: ACCESS_KEY_ID AWS Secret Access Key [None]: SECRET_ACCESS_ID Default region name [None]: MY_REGION Default output format [None]: json

Attivazione di ADOT SDKs

Puoi abilitare l'invio di tracce per la tua applicazione direttamente all'endpoint OTLP da AWS Distro for OpenTelemetry (ADOT) SDK su Java, Node.js, Python e.Net.

Java
  1. Scarica l'ultima versione dell'agente di strumentazione automatica AWS Distro for OpenTelemetry Java. È possibile scaricare l'ultima versione utilizzando questo comando:

    curl -L -O https://github.com/aws-observability/aws-otel-java-instrumentation/releases/latest/download/aws-opentelemetry-agent.jar

    Per visualizzare tutte le versioni rilasciate, consulta le aws-otel-java-instrumentation versioni.

  2. Per abilitare l'esportatore che invia direttamente le tracce all'endpoint X-Ray OTLP Traces e per ottimizzare i vantaggi, utilizzate le variabili di ambiente per fornire informazioni aggiuntive prima di avviare l'applicazione.

  3. Per la variabile OTEL_RESOURCE_ATTRIBUTES, specifica le seguenti informazioni come coppie chiave-valore:

    (Facoltativo) service.name imposta il nome del servizio. Questo verrà visualizzato come nome del servizio per l'applicazione nei dashboard di Application Signals. Quando non si fornisce un valore per questa chiave, UnknownService viene utilizzato il valore predefinito di.

    (Facoltativo) deployment.environment imposta l'ambiente in cui viene eseguita l'applicazione. Questo verrà visualizzato come ambiente Hosted In dell'applicazione. Quando non lo specificate, viene utilizzata una delle seguenti impostazioni predefinite:

    • Se si tratta di un'istanza che fa parte di un gruppo Auto Scaling, è impostata su ec2:name-of-Auto-Scaling-group

    • Se si tratta di un' EC2 istanza Amazon che non fa parte di un gruppo Auto Scaling, è impostata su ec2:default

    • Se si tratta di un host locale, è impostato su generic:default

    Questa variabile di ambiente viene utilizzata solo da Application Signals e viene convertita in annotazioni di tracce a raggi X e dimensioni metriche CloudWatch

  4. Per la OTEL_EXPORTER_OTLP_TRACES_ENDPOINT variabile, specificare l'endpoint delle tracce OTLP a raggi X:. https://xray.[AWSRegion].amazonaws.com/v1/traces Per esempio:

    export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
  5. Per la JAVA_TOOL_OPTIONS variabile, specificare il percorso in cui è archiviato l'agente di strumentazione automatica AWS Distro for OpenTelemetry Java.

    export JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH"

    Per esempio:

    export AWS_ADOT_JAVA_INSTRUMENTATION_PATH="./aws-opentelemetry-agent.jar"
  6. Per la OTEL_METRICS_EXPORTER variabile, si consiglia di impostare il valore su none.

  7. Per la OTEL_LOGS_EXPORTER variabile, si consiglia di impostare il valore su none.

  8. Per la OTEL_TRACES_EXPORTER variabile, è necessario impostare il valore per otlp (questo è facoltativo ed è il valore predefinito se questa variabile di ambiente non è impostata).

  9. Per la OTEL_EXPORTER_OTLP_PROTOCOL variabile, è necessario impostare il valore su http/protobuf (questo è facoltativo ed è il valore predefinito se questa variabile di ambiente non è impostata). L'endpoint OTLP X-Ray attualmente supporta solo il protocollo HTTP.

  10. L'applicazione dovrebbe ora funzionare con la strumentazione AWS Distro for OpenTelemetry Java e genererà degli intervalli. Questi intervalli sono memorizzati nel tuo account. aws/spans CloudWatch LogsLogGroup Puoi anche visualizzare le tracce e le metriche correlate agli intervalli nella console CloudWatch Traces and Metrics.

  11. Avvia l'applicazione con le variabili di ambiente che hai impostato. Ecco un esempio di script iniziale.

    (Nota: la configurazione seguente supporta solo le versioni 1.32.2 e successive dell'agente AWS Distro for OpenTelemetry auto-instrumentation for Java.)

    JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH" \ OTEL_METRICS_EXPORTER=none \ OTEL_LOGS_EXPORTER=none \ OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \ OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME" \ java -jar $MY_JAVA_APP.jar
Node.js
  1. Scarica l'ultima versione dell'agente AWS Distro for OpenTelemetry JavaScript auto-instrumentation for Node.js. È possibile installare utilizzando il comando:

    npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation

    Per visualizzare informazioni su tutte le versioni rilasciate, vedere AWS Distro for OpenTelemetry JavaScript instrumentation.

  2. Per abilitare l'esportatore che invia direttamente le tracce all'endpoint OTLP a raggi X e per ottimizzare i vantaggi, utilizzate le variabili di ambiente per fornire informazioni aggiuntive prima di avviare l'applicazione.

  3. Per la variabile OTEL_RESOURCE_ATTRIBUTES, specifica le seguenti informazioni come coppie chiave-valore:

    (Facoltativo) service.name imposta il nome del servizio. Questo verrà visualizzato come nome del servizio per l'applicazione nei dashboard di Application Signals. Quando non si fornisce un valore per questa chiave, UnknownService viene utilizzato il valore predefinito di.

    (Facoltativo) deployment.environment imposta l'ambiente in cui viene eseguita l'applicazione. Questo verrà visualizzato come ambiente ospitato dell'applicazione nei pannelli di controllo di Application Signals. Quando non si specifica questa variabile, viene utilizzata una delle seguenti impostazioni predefinite:

    • Se si tratta di un'istanza che fa parte di un gruppo Auto Scaling, è impostata su ec2:name-of-Auto-Scaling-group

    • Se si tratta di un' EC2 istanza Amazon che non fa parte di un gruppo Auto Scaling, è impostata su ec2:default

    • Se si tratta di un host locale, è impostato su generic:default

    Questa variabile di ambiente viene utilizzata solo da Application Signals e viene convertita in annotazioni di tracce a raggi X e CloudWatch dimensioni metriche.

  4. Per la OTEL_EXPORTER_OTLP_TRACES_ENDPOINT variabile, specificare l'endpoint delle tracce OTLP a raggi X:. https://xray.[AWSRegion].amazonaws.com/v1/traces

    Per esempio:

    export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
  5. Per la OTEL_METRICS_EXPORTER variabile, si consiglia di impostare il valore su none. Le metriche di Application Signals vengono generate dall'endpoint OTLP.

  6. Per la OTEL_LOGS_EXPORTER variabile, si consiglia di impostare il valore su none.

  7. Per la OTEL_TRACES_EXPORTER variabile, è necessario impostare il valore per otlp (questo è facoltativo ed è il valore predefinito se questa variabile di ambiente non è impostata).

  8. Per la OTEL_EXPORTER_OTLP_PROTOCOL variabile, è necessario impostare il valore su http/protobuf (questo è facoltativo ed è il valore predefinito se questa variabile di ambiente non è impostata). L'endpoint OTLP X-Ray attualmente supporta solo il protocollo HTTP.

  9. L'applicazione dovrebbe ora funzionare con la strumentazione AWS Distro for OpenTelemetry Java e genererà degli intervalli. Questi intervalli sono memorizzati nel tuo account. aws/spans CloudWatch LogsLogGroup Puoi anche visualizzare le tracce e le metriche correlate agli intervalli nella console CloudWatch Traces and Metrics.

  10. Avvia l'applicazione con le variabili di ambiente che hai impostato. Ecco un esempio di script iniziale.

    (Nota: sostituisci $ SVC_NAME con il nome dell'applicazione. Viene visualizzato come nome dell'applicazione.

    OTEL_METRICS_EXPORTER=none \ OTEL_LOGS_EXPORTER=none \ OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \ OTEL_RESOURCE_ATTRIBUTES="service.name=$SVC_NAME" \ node —require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register' your-application.js
Python
  1. Scarica l'ultima versione dell'agente di AWS strumentazione automatica Distro for OpenTelemetry Python. È possibile installare utilizzando il comando:

    pip install aws-opentelemetry-distro
  2. Per consentire all'esportatore di inviare direttamente le tracce all'endpoint OTLP a raggi X e ottimizzare i vantaggi, utilizzate le variabili di ambiente per fornire informazioni aggiuntive prima di avviare l'applicazione.

  3. Per la variabile OTEL_RESOURCE_ATTRIBUTES, specifica le seguenti informazioni come coppie chiave-valore:

    (Facoltativo) service.name imposta il nome del servizio. Questo verrà visualizzato come nome del servizio per l'applicazione nei dashboard di Application Signals. Quando non si fornisce un valore per questa chiave, UnknownService viene utilizzato il valore predefinito di.

    (Facoltativo) deployment.environment imposta l'ambiente in cui viene eseguita l'applicazione. Questo verrà visualizzato come ambiente ospitato dell'applicazione nei pannelli di controllo di Application Signals. Quando non lo specificate, viene utilizzata una delle seguenti impostazioni predefinite:

    • Se si tratta di un'istanza che fa parte di un gruppo Auto Scaling, è impostata su ec2:name-of-Auto-Scaling-group

    • Se si tratta di un' EC2 istanza Amazon che non fa parte di un gruppo Auto Scaling, è impostata su ec2:default

    • Se si tratta di un host locale, è impostato su generic:default

    Questa variabile di ambiente viene utilizzata solo da Application Signals e viene convertita in annotazioni di tracce a raggi X e CloudWatch dimensioni metriche.

  4. Per la OTEL_EXPORTER_OTLP_TRACES_ENDPOINT variabile, specificare l'endpoint delle tracce OTLP a raggi X:. https://xray.[AWSRegion].amazonaws.com/v1/traces

    Per esempio:

    export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
  5. Per la OTEL_METRICS_EXPORTER variabile, si consiglia di impostare il valore su none. Le metriche di Application Signals vengono generate dall'endpoint OTLP.

  6. Per la OTEL_LOGS_EXPORTER variabile, si consiglia di impostare il valore su none.

  7. Per la OTEL_TRACES_EXPORTER variabile, è necessario impostare il valore per otlp (questo è facoltativo ed è il valore predefinito se questa variabile di ambiente non è impostata).

  8. Per la OTEL_EXPORTER_OTLP_PROTOCOL variabile, è necessario impostare il valore su http/protobuf (questo è facoltativo ed è il valore predefinito se questa variabile di ambiente non è impostata). L'endpoint OTLP X-Ray attualmente supporta solo il protocollo HTTP.

  9. L'applicazione dovrebbe ora funzionare con la strumentazione AWS Distro for OpenTelemetry Java e genererà degli intervalli. Questi intervalli sono memorizzati nel tuo account. aws/spans CloudWatch LogsLogGroup Puoi anche visualizzare le tracce e le metriche correlate agli intervalli nella console CloudWatch Traces and Metrics.

  10. Avvia l'applicazione con le variabili di ambiente che hai impostato. Ecco un esempio di script iniziale.

    (Nota: sostituisci $ SVC_NAME con il nome dell'applicazione e sostituisci $ PYTHON_APP con la posizione e il nome dell'applicazione.

    OTEL_METRICS_EXPORTER=none \ OTEL_LOGS_EXPORTER=none \ OTEL_PYTHON_DISTRO=aws_distro \ OTEL_PYTHON_CONFIGURATOR=aws_configurator \ OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \ OTEL_RESOURCE_ATTRIBUTES="service.name=$SVC_NAME" \ opentelemetry-instrument python $MY_PYTHON_APP.py
.Net

Per abilitare l'esportatore che invia direttamente le tracce all'endpoint X-Ray OTLP Traces e per ottimizzare i vantaggi, imposta le variabili di ambiente per fornire informazioni aggiuntive prima di avviare l'applicazione. Queste variabili sono necessarie anche per configurare la strumentazione.NET.

  1. Sostituisci dotnet-service-name la variabile di OTEL_RESOURCE_ATTRIBUTES ambiente con il nome di servizio di tua scelta.

  2. Imposta OTEL_TRACES_EXPORTER=none.

  3. Imposta OTEL_AWS_SIG_V4_ENABLED=true.

    Un esempio per Linux.

    export INSTALL_DIR=OpenTelemetryDistribution export CORECLR_ENABLE_PROFILING=1 export CORECLR_PROFILER={918728DD-259F-4A6A-AC2B-B85E1B658318} export CORECLR_PROFILER_PATH=${INSTALL_DIR}/linux-x64/OpenTelemetry.AutoInstrumentation.Native.so export DOTNET_ADDITIONAL_DEPS=${INSTALL_DIR}/AdditionalDeps export DOTNET_SHARED_STORE=${INSTALL_DIR}/store export DOTNET_STARTUP_HOOKS=${INSTALL_DIR}/net/OpenTelemetry.AutoInstrumentation.StartupHook.dll export OTEL_DOTNET_AUTO_HOME=${INSTALL_DIR} export OTEL_DOTNET_AUTO_PLUGINS="AWS.Distro.OpenTelemetry.AutoInstrumentation.Plugin, AWS.Distro.OpenTelemetry.AutoInstrumentation" export OTEL_TRACES_EXPORTER=none export OTEL_AWS_SIG_V4_ENABLED=true export OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name export OTEL_METRICS_EXPORTER=none export OTEL_LOGS_EXPORTER=none export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces

    Un esempio per Windows Server.

    $env:INSTALL_DIR = "OpenTelemetryDistribution" $env:CORECLR_ENABLE_PROFILING = 1 $env:CORECLR_PROFILER = "{918728DD-259F-4A6A-AC2B-B85E1B658318}" $env:CORECLR_PROFILER_PATH = Join-Path $env:INSTALL_DIR "win-x64/OpenTelemetry.AutoInstrumentation.Native.dll" $env:DOTNET_ADDITIONAL_DEPS = Join-Path $env:INSTALL_DIR "AdditionalDeps" $env:DOTNET_SHARED_STORE = Join-Path $env:INSTALL_DIR "store" $env:DOTNET_STARTUP_HOOKS = Join-Path $env:INSTALL_DIR "net/OpenTelemetry.AutoInstrumentation.StartupHook.dll" $env:OTEL_DOTNET_AUTO_HOME = $env:INSTALL_DIR $env:OTEL_DOTNET_AUTO_PLUGINS = "AWS.Distro.OpenTelemetry.AutoInstrumentation.Plugin, AWS.Distro.OpenTelemetry.AutoInstrumentation" $env:OTEL_TRACES_EXPORTER=none $env:OTEL_AWS_SIG_V4_ENABLED=true $env:OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name $env:OTEL_METRICS_EXPORTER=none $env:OTEL_LOGS_EXPORTER=none $env:OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf $env:OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces
  4. Avviate l'applicazione con le variabili di ambiente.

  5. (Facoltativo) In alternativa, è possibile utilizzare gli script di installazione forniti per facilitare l'installazione e la configurazione del pacchetto di strumentazione automatica AWS Distro for OpenTelemetry .NET.

    Per Linux, scarica e installa lo script di installazione di Bash dalla pagina delle versioni: GitHub

    # Download and Install curl -L -O https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases/latest/download/aws-otel-dotnet-install.sh chmod +x ./aws-otel-dotnet-install.sh ./aws-otel-dotnet-install.sh # Instrument . $HOME/.otel-dotnet-auto/instrument.shexport OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name

    Per Windows Server, scarica e installa lo script di PowerShell installazione dalla pagina delle GitHub versioni:

    # Download and Install $module_url = "https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases/latest/download/AWS.Otel.DotNet.Auto.psm1" $download_path = Join-Path $env:temp "AWS.Otel.DotNet.Auto.psm1" Invoke-WebRequest -Uri $module_url -OutFile $download_path Import-Module $download_path Install-OpenTelemetryCore # Instrument Import-Module $download_path Register-OpenTelemetryForCurrentSession -OTelServiceName "dotnet-service-name" Register-OpenTelemetryForIIS

    Puoi trovare il NuGet pacchetto del pacchetto di strumentazione automatica AWS Distro for OpenTelemetry .NET nel repository ufficiale. NuGet Assicurati di controllare il file README per le istruzioni.