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à.
Abilita i segnali applicativi su Amazon EC2
Per le applicazioni in esecuzione su Amazon EC2 o altri tipi di istanze, puoi installare e configurare OpenTelemetry autonomamente l' CloudWatch agente e AWS Distro. Su queste architetture abilitate con una configurazione personalizzata di Application Signals, Application Signals non rileva automaticamente i nomi dei tuoi servizi o dei cluster o host su cui vengono eseguiti. Devi specificare questi nomi durante la configurazione personalizzata e i nomi specificati sono quelli visualizzati nei pannelli di controllo di Application Signals.
Le istruzioni in questa sezione sono per Java, Python e. NETapplicazioni. I passaggi sono stati testati su EC2 istanze Amazon, ma si prevede che funzionino anche su altre architetture che supportano AWS Distro for. OpenTelemetry
Requisiti
Per ottenere supporto per Application Signals, devi utilizzare la versione più recente sia dell' CloudWatchagente che di Distro for agent. AWS OpenTelemetry
È necessario che AWS CLI sia installato sull'istanza. Consigliamo AWS CLI la versione 2, ma dovrebbe funzionare anche la versione 1. Per ulteriori informazioni sull'installazione di AWS CLI, consulta Installare o aggiornare la versione più recente di AWS CLI.
Fase 1: abilitazione di Application Signals nel tuo account
Se non hai ancora abilitato Application Signals in questo account, devi concedere ad Application Signals le autorizzazioni necessarie per scoprire i tuoi servizi. Per far ciò, completa le seguenti operazioni. È necessario eseguire questa operazione solo una volta per account.
Per abilitare Application Signals per le tue applicazioni
Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/.
Nel riquadro di navigazione, scegli Servizi.
Scegli Inizia a scoprire i tuoi servizi.
Seleziona la casella di controllo e scegli Inizia a scoprire i tuoi servizi.
Quando completi questo passaggio per la prima volta nel tuo account, Application Signals crea il ruolo AWSServiceRoleForCloudWatchApplicationSignalscollegato al servizio. Questo ruolo concede ad Application Signals le seguenti autorizzazioni:
-
xray:GetServiceGraph
-
logs:StartQuery
-
logs:GetQueryResults
-
cloudwatch:GetMetricData
-
cloudwatch:ListMetrics
-
tag:GetResources
Per ulteriori informazioni su questo ruolo, consulta Autorizzazioni di ruolo collegate al servizio per Application Signals CloudWatch .
Passaggio 2: scarica e avvia l'agente CloudWatch
Per installare l' CloudWatch agente come parte dell'abilitazione di Application Signals su un'EC2istanza Amazon o un host locale
Scarica la versione più recente dell' CloudWatch agente sull'istanza. Se l' CloudWatch agente è già installato sull'istanza, potrebbe essere necessario aggiornarlo. Solo le versioni dell'agente rilasciate il 30 novembre 2023 o successive supportano CloudWatch Application Signals.
Per informazioni sul download dell' CloudWatch agente, consultaScaricate il pacchetto dell' CloudWatch agente.
Prima di avviare l' CloudWatch agente, configuralo per abilitare Application Signals. L'esempio seguente è una configurazione di CloudWatch agente che abilita Application Signals sia per le metriche che per le tracce su un EC2 host.
Si consiglia di inserire questo file /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
in sistemi Linux.
{
"traces": {
"traces_collected": {
"application_signals": {}
}
},
"logs": {
"metrics_collected": {
"application_signals": {}
}
}
}
Associa la CloudWatchAgentServerPolicyIAMpolicy al IAM ruolo della tua EC2 istanza Amazon. Per le autorizzazioni per gli host locali, consulta. Autorizzazioni per i server locali
Accedi a AWS Management Console e apri la IAM console all'indirizzo. https://console.aws.amazon.com/iam/
Scegli Ruoli e trova il ruolo utilizzato dalla tua EC2 istanza Amazon. Quindi scegli il nome del ruolo.
Nella scheda Autorizzazioni, scegli Aggiungi autorizzazioni, quindi Collega policy.
Trova CloudWatchAgentServerPolicy. Usa la casella di ricerca se necessario. Quindi seleziona la casella di controllo della policy e seleziona Aggiungi autorizzazioni.
Avvia l' CloudWatch agente inserendo i seguenti comandi. Replace (Sostituisci) agent-config-file-path
con il percorso del file di configurazione CloudWatch dell'agente, ad esempio./amazon-cloudwatch-agent.json
. È necessario includere il prefisso file:
come mostrato.
export CONFIG_FILE_PATH=./amazon-cloudwatch-agent.json
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config \
-m ec2 -s -c file:agent-config-file-path
Autorizzazioni per i server locali
Per un host locale, dovrai fornire l' AWS autorizzazione al tuo dispositivo.
Per configurare le autorizzazioni per un host locale
Crea l'IAMutente da utilizzare per fornire le autorizzazioni al tuo host locale:
Apri la IAM console all'indirizzo. https://console.aws.amazon.com/iam/
Scegli Utenti, Crea utente.
In Dettagli utente, in Nome utente, inserisci un nome per il nuovo IAM utente. Questo è il nome di accesso AWS che verrà utilizzato per autenticare il tuo host. quindi scegliere Next.
Nella pagina Imposta le autorizzazioni, in Opzioni di autorizzazione, seleziona Allega direttamente le politiche.
Dall'elenco delle politiche di autorizzazione, seleziona la CloudWatchAgentServerPolicypolitica da aggiungere al tuo utente. Quindi scegli Successivo.
Nella pagina Rivedi e crea, assicurati di essere soddisfatto del nome utente e che la CloudWatchAgentServerPolicypolitica sia inclusa nel riepilogo delle autorizzazioni.
Scegli Crea utente
Crea e recupera la tua chiave di AWS accesso e la chiave segreta:
Nel riquadro di navigazione della IAM console, scegli Utenti, quindi seleziona il nome utente dell'utente creato nel passaggio precedente.
Nella pagina dell'utente, scegli la scheda Credenziali di sicurezza. Quindi, nella sezione Chiavi di accesso, scegli Crea chiave di accesso.
Per la creazione della chiave di accesso (Fase 1), scegliete Command Line Interface (CLI).
Per la creazione della chiave di accesso (Fase 2), inserite facoltativamente un tag e scegliete Avanti.
Per il passaggio 3 della 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 IAM segreta dell'utente. Queste informazioni sono necessarie per i passaggi successivi.
Seleziona Fatto.
Configura AWS le tue credenziali nell'host locale immettendo il seguente comando. Replace (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
Fase 3: strumentazione e avvio dell'applicazione
Il passo successivo consiste nello strumentare la vostra CloudWatch applicazione per Application Signals.
- Java
-
Per strumentare le tue applicazioni Java come parte dell'abilitazione di Application Signals su un'EC2istanza Amazon o un host locale
Scarica l'ultima versione dell'agente di strumentazione automatica AWS Distro for OpenTelemetry Java. Puoi scaricare la versione più recente utilizzando questo link. È possibile visualizzare informazioni su tutte le versioni rilasciate in Releases. aws-otel-java-instrumentation
Per ottimizzare i vantaggi di Application Signals, utilizza le variabili di ambiente per fornire informazioni aggiuntive prima di avviare l'applicazione. Queste informazioni verranno visualizzate nei pannelli di controllo di Application Signals.
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. Se non si fornisce un valore per questa chiave, viene utilizzato il valore predefinito di UnknownService
.
(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. Se 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'EC2istanza 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.
Per la OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
variabile, specificate l'endpoint di base URL in cui devono essere esportate le tracce. L' CloudWatch agente espone 4316 come porta. OTLP Su AmazonEC2, poiché le applicazioni comunicano con l' CloudWatch agente locale, è necessario impostare questo valore su OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces
Per la OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT
variabile, specifica l'endpoint di base URL in cui esportare le metriche. L' CloudWatch agente espone 4316 come porta. OTLP Su AmazonEC2, poiché le applicazioni comunicano con l' CloudWatch agente locale, è necessario impostare questo valore su OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics
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
Per la variabile OTEL_METRICS_EXPORTER
, si consiglia di impostare il valore su none
. Questa operazione disabilita gli esportatori di altri parametri in modo che venga utilizzato solo l'esportatore Application Signals.
Imposta OTEL_AWS_APPLICATION_SIGNALS_ENABLED
su true
. Questo genera i parametri di Application Signals a partire dalle tracce.
Avviate l'applicazione con le variabili di ambiente elencate nel passaggio precedente. Di seguito è riportato un esempio di script di avvio.
La seguente configurazione 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_EXPORT=none \
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \
OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \
OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME
" \
java -jar $MY_JAVA_APP.jar
(Facoltativo) Per abilitare la correlazione dei logOTEL_RESOURCE_ATTRIBUTES
, imposta una variabile di ambiente aggiuntiva aws.log.group.names
per i gruppi di log dell'applicazione. In questo modo, le tracce e le metriche dell'applicazione possono essere correlate alle voci di registro pertinenti di questi gruppi di log. Per questa variabile, sostituisci $YOUR_APPLICATION_LOG_GROUP
con i nomi dei gruppi di log per l'applicazione. Se hai più gruppi di log, puoi usare un ampersand (&
) per separarli come in questo esempio:. aws.log.group.names=log-group-1&log-group-2
Per abilitare la correlazione tra metrica e log, è sufficiente impostare questa variabile ambientale corrente. Per ulteriori informazioni, consulta Abilita la correlazione tra metrica e log. Per abilitare la correlazione tra traccia e registro, dovrai anche modificare la configurazione di registrazione nell'applicazione. Per ulteriori informazioni, consulta Abilita la correlazione tra traccia e log.
Di seguito è riportato un esempio di script di avvio che consente di abilitare la correlazione dei log.
JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH" \
OTEL_METRICS_EXPORTER=none \
OTEL_LOGS_EXPORT=none \
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \
OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \
OTEL_RESOURCE_ATTRIBUTES="aws.log.group.names=$YOUR_APPLICATION_LOG_GROUP
,service.name=$YOUR_SVC_NAME
" \
java -jar $MY_JAVA_APP.jar
- Python
-
Per strumentare le tue applicazioni Python come parte dell'abilitazione di Application Signals su un'istanza Amazon EC2
Scarica l'ultima versione dell'agente di AWS strumentazione automatica Distro for OpenTelemetry Python. Installarlo eseguendo il seguente comando .
pip install aws-opentelemetry-distro
È possibile visualizzare informazioni su tutte le versioni rilasciate nella AWS strumentazione Distro for OpenTelemetry Python.
Per ottimizzare i vantaggi di Application Signals, utilizza le variabili di ambiente per fornire informazioni aggiuntive prima di avviare l'applicazione. Queste informazioni verranno visualizzate nei pannelli di controllo di Application Signals.
Per la variabile OTEL_RESOURCE_ATTRIBUTES
, specifica le seguenti informazioni come coppie chiave-valore:
service.name
imposta il nome del servizio. Questo verrà visualizzato come nome del servizio per l'applicazione nei pannelli di controllo di Application Signals. Se non si fornisce un valore per questa chiave, viene utilizzato il valore predefinito di UnknownService
.
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. Se 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'EC2istanza 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 chiave di attributo viene utilizzata solo da Application Signals e viene convertita in annotazioni di tracce a raggi X e CloudWatch dimensioni metriche.
Per la OTEL_EXPORTER_OTLP_PROTOCOL
variabile, specificate di http/protobuf
esportare i dati di telemetria verso gli endpoint dell' CloudWatch agente HTTP elencati nei passaggi seguenti.
Per la OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
variabile, specificate l'endpoint di base URL in cui devono essere esportate le tracce. L' CloudWatch agente espone 4316 come porta over. OTLP HTTP Su AmazonEC2, poiché le applicazioni comunicano con l' CloudWatch agente locale, è necessario impostare questo valore su OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces
Per la OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT
variabile, specifica l'endpoint di base URL in cui esportare le metriche. L' CloudWatch agente espone 4316 come porta over. OTLP HTTP Su AmazonEC2, poiché le applicazioni comunicano con l' CloudWatch agente locale, è necessario impostare questo valore su OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics
Per la variabile OTEL_METRICS_EXPORTER
, si consiglia di impostare il valore su none
. Questa operazione disabilita gli esportatori di altri parametri in modo che venga utilizzato solo l'esportatore Application Signals.
Imposta la OTEL_AWS_APPLICATION_SIGNALS_ENABLED
variabile in modo che il contenitore inizi true
a inviare tracce e CloudWatch metriche X-Ray a Application Signals.
Avvia l'applicazione con le variabili di ambiente illustrate nel passaggio precedente. Di seguito è riportato un esempio di script di avvio.
Sostituisci $SVC_NAME
con il nome della tua applicazione. Questo verrà visualizzato come nome dell'applicazione, nelle dashboard di Application Signals.
Sostituiscilo $PYTHON_APP
con la posizione e il nome dell'applicazione.
OTEL_METRICS_EXPORTER=none \
OTEL_LOGS_EXPORTER=none \
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \
OTEL_PYTHON_DISTRO=aws_distro \
OTEL_PYTHON_CONFIGURATOR=aws_configurator \
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
OTEL_TRACES_SAMPLER=xray \
OTEL_TRACES_SAMPLER_ARG="endpoint=http://localhost:2000" \
OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \
OTEL_RESOURCE_ATTRIBUTES="service.name=$SVC_NAME
" \
opentelemetry-instrument python $MY_PYTHON_APP.py
Prima di abilitare Application Signals per le tue applicazioni Python, tieni presente le seguenti considerazioni.
In alcune applicazioni containerizzate, una variabile di PYTHONPATH
ambiente mancante a volte può impedire l'avvio dell'applicazione. Per risolvere questo problema, assicuratevi di impostare la variabile di PYTHONPATH
ambiente sulla posizione della directory di lavoro dell'applicazione. Ciò è dovuto a un problema noto con la OpenTelemetry strumentazione automatica. Per ulteriori informazioni su questo problema, vedere Python autoinstrumentation setting of is not compliant. PYTHONPATH
Per le applicazioni Django, ci sono configurazioni aggiuntive richieste, che sono descritte nella documentazione di Python OpenTelemetry .
Usa il --noreload
flag per impedire il ricaricamento automatico.
Imposta la variabile di DJANGO_SETTINGS_MODULE
ambiente sulla posizione del file dell'settings.py
applicazione Django. Ciò garantisce che OpenTelemetry possa accedere e integrarsi correttamente con le impostazioni di Django.
-
(Facoltativo) Per abilitare la correlazione dei logOTEL_RESOURCE_ATTRIBUTES
, imposta una variabile di ambiente aggiuntiva aws.log.group.names
per i gruppi di log della tua applicazione. In questo modo, le tracce e le metriche dell'applicazione possono essere correlate alle voci di registro pertinenti di questi gruppi di log. Per questa variabile, sostituisci $YOUR_APPLICATION_LOG_GROUP
con i nomi dei gruppi di log per l'applicazione. Se hai più gruppi di log, puoi usare un ampersand (&
) per separarli come in questo esempio:. aws.log.group.names=log-group-1&log-group-2
Per abilitare la correlazione tra metrica e log, è sufficiente impostare questa variabile ambientale corrente. Per ulteriori informazioni, consulta Abilita la correlazione tra metrica e log. Per abilitare la correlazione tra traccia e registro, dovrai anche modificare la configurazione di registrazione nell'applicazione. Per ulteriori informazioni, consulta Abilita la correlazione tra traccia e log.
Di seguito è riportato un esempio di script di avvio che consente di abilitare la correlazione dei log.
OTEL_METRICS_EXPORTER=none \
OTEL_LOGS_EXPORTER=none \
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \
OTEL_PYTHON_DISTRO=aws_distro \
OTEL_PYTHON_CONFIGURATOR=aws_configurator \
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
OTEL_TRACES_SAMPLER=xray \
OTEL_TRACES_SAMPLER_ARG="endpoint=http://localhost:2000" \
OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \
OTEL_RESOURCE_ATTRIBUTES="aws.log.group.names=$YOUR_APPLICATION_LOG_GROUP
,service.name=$YOUR_SVC_NAME
" \
java -jar $MY_PYTHON_APP.jar
- .NET
-
Per strumentare il tuo. NETapplicazioni come parte dell'abilitazione di Application Signals su un'EC2istanza Amazon o un host locale
Scarica l'ultima versione di AWS Distro for. OpenTelemetry NETpacchetto di strumentazione automatica. È possibile scaricare l'ultima versione in Releases. aws-otel-dotnet-instrumentation
Per abilitare Application Signals, imposta le seguenti variabili di ambiente per fornire informazioni aggiuntive prima di avviare l'applicazione. Queste variabili sono necessarie per configurare l'hook di avvio per. NETstrumentazione, prima di iniziare la tua. NETapplicazione.
Di seguito è riportato 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_RESOURCE_ATTRIBUTES=service.name=aws-otel-integ-test
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_ENDPOINT=http://127.0.0.1:4316
export OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://127.0.0.1:4316/v1/metrics
export OTEL_METRICS_EXPORTER=none
export OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true
export OTEL_TRACES_SAMPLER=xray
export OTEL_TRACES_SAMPLER_ARG=http://127.0.0.1:2000
Di seguito è riportato 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_RESOURCE_ATTRIBUTES = "service.name=aws-otel-integ-test"
$env:OTEL_EXPORTER_OTLP_PROTOCOL = "http/protobuf"
$env:OTEL_EXPORTER_OTLP_ENDPOINT = "http://127.0.0.1:4316"
$env:OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT = "http://127.0.0.1:4316/v1/metrics"
$env:OTEL_METRICS_EXPORTER = "none"
$env:OTEL_AWS_APPLICATION_SIGNALS_ENABLED = "true"
$env:OTEL_TRACES_SAMPLER = "xray"
$env:OTEL_TRACES_SAMPLER_ARG = "http://127.0.0.1:2000"
Avviate l'applicazione con le variabili di ambiente elencate nel passaggio precedente.
(Facoltativo) In alternativa, è possibile utilizzare gli script di installazione forniti per facilitare l'installazione e la configurazione di AWS Distro for. OpenTelemetry NETpacchetto di strumentazione automatica.
Per Linux, scarica e installa lo script di installazione di Bash dalla pagina dei rilasci: 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.sh
export OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name
Per Windows Server, scarica e installa lo script di PowerShell installazione dalla pagina dei rilasci: GitHub
# 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"
Puoi trovare il NuGet pacchetto della Distro per. AWS OpenTelemetry NETpacchetto di autostrumentazione nel repository ufficiale. NuGet Assicurati di controllare il file per le istruzioni. README
- Node.js
-
Per strumentare le tue applicazioni Node.js come parte dell'abilitazione di Application Signals su un'EC2istanza Amazon
Scarica l'ultima versione dell'agente AWS Distro for OpenTelemetry JavaScript auto-instrumentation for Node.js. Installarlo eseguendo il seguente comando .
npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation
È possibile visualizzare informazioni su tutte le versioni rilasciate su Distro for instrumentation AWS . OpenTelemetry JavaScript
Per ottimizzare i vantaggi di Application Signals, utilizza le variabili di ambiente per fornire informazioni aggiuntive prima di avviare l'applicazione. Queste informazioni verranno visualizzate nei pannelli di controllo di Application Signals.
Per la variabile OTEL_RESOURCE_ATTRIBUTES
, specifica le seguenti informazioni come coppie chiave-valore:
service.name
imposta il nome del servizio. Questo verrà visualizzato come nome del servizio per l'applicazione nei pannelli di controllo di Application Signals. Se non si fornisce un valore per questa chiave, viene utilizzato il valore predefinito di UnknownService
.
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. Se 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'EC2istanza 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 chiave di attributo viene utilizzata solo da Application Signals e viene convertita in annotazioni di tracce a raggi X e CloudWatch dimensioni metriche.
Per la OTEL_EXPORTER_OTLP_PROTOCOL
variabile, specificate di http/protobuf
esportare i dati di telemetria verso gli endpoint dell' CloudWatch agente HTTP elencati nei passaggi seguenti.
Per la OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
variabile, specificate l'endpoint di base URL in cui devono essere esportate le tracce. L' CloudWatch agente espone 4316 come porta over. OTLP HTTP Su AmazonEC2, poiché le applicazioni comunicano con l' CloudWatch agente locale, è necessario impostare questo valore su OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces
Per la OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT
variabile, specifica l'endpoint di base URL in cui esportare le metriche. L' CloudWatch agente espone 4316 come porta over. OTLP HTTP Su AmazonEC2, poiché le applicazioni comunicano con l' CloudWatch agente locale, è necessario impostare questo valore su OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics
Per la variabile OTEL_METRICS_EXPORTER
, si consiglia di impostare il valore su none
. Questa operazione disabilita gli esportatori di altri parametri in modo che venga utilizzato solo l'esportatore Application Signals.
Imposta la OTEL_AWS_APPLICATION_SIGNALS_ENABLED
variabile in modo che il contenitore inizi true
a inviare tracce e CloudWatch metriche X-Ray a Application Signals.
Avvia l'applicazione con le variabili di ambiente illustrate nel passaggio precedente. Di seguito è riportato un esempio di script di avvio.
OTEL_METRICS_EXPORTER=none \
OTEL_LOGS_EXPORTER=none \
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
OTEL_TRACES_SAMPLER=xray \
OTEL_TRACES_SAMPLER_ARG="endpoint=http://localhost:2000" \
OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \
OTEL_RESOURCE_ATTRIBUTES="service.name=$SVC_NAME
" \
node --require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register' your-application.js
-
(Facoltativo) Per abilitare la correlazione dei logOTEL_RESOURCE_ATTRIBUTES
, imposta una variabile di ambiente aggiuntiva aws.log.group.names
per i gruppi di log dell'applicazione. In questo modo, le tracce e le metriche dell'applicazione possono essere correlate alle voci di registro pertinenti di questi gruppi di log. Per questa variabile, sostituisci $YOUR_APPLICATION_LOG_GROUP
con i nomi dei gruppi di log per l'applicazione. Se hai più gruppi di log, puoi usare un ampersand (&
) per separarli come in questo esempio:. aws.log.group.names=log-group-1&log-group-2
Per abilitare la correlazione tra metrica e log, è sufficiente impostare questa variabile ambientale corrente. Per ulteriori informazioni, consulta Abilita la correlazione tra metrica e log. Per abilitare la correlazione tra traccia e registro, dovrai anche modificare la configurazione di registrazione nell'applicazione. Per ulteriori informazioni, consulta Abilita la correlazione tra traccia e log.
Di seguito è riportato un esempio di script di avvio che consente di abilitare la correlazione dei log.
export OTEL_METRICS_EXPORTER=none \
export OTEL_LOGS_EXPORTER=none \
export OTEL_AWS_APPLICATION_SIGNALS_ENABLED=true \
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf \
export OTEL_TRACES_SAMPLER=xray \
export OTEL_TRACES_SAMPLER_ARG=endpoint=http://localhost:2000 \
export OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics \
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces \
export OTEL_RESOURCE_ATTRIBUTES="aws.log.group.names=$YOUR_APPLICATION_LOG_GROUP
,service.name=$SVC_NAME
" \
node --require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register' your-application.js
Configurazione di un'applicazione Node.js con il formato del ESM modulo
Forniamo un supporto limitato per le applicazioni Node.js con il formato del ESM modulo. Per informazioni dettagliate, consultare Limitazioni note relative a Node.js con ESM.
Per abilitare Application Signals per un'applicazione Node.js conESM, è necessario modificare i passaggi della procedura precedente.
Innanzitutto, installa @opentelemetry/instrumentation
per la tua applicazione Node.js:
npm install @opentelemetry/instrumentation@0.54.0
Quindi, nei passaggi 3 e 4 della procedura precedente, modificate le opzioni del nodo da:
--require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register'
a quanto segue:
--import @aws/aws-distro-opentelemetry-node-autoinstrumentation/register --experimental-loader=@opentelemetry/instrumentation/hook.mjs