Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exportation de traces sans collecteur à l'aide de AWS Distro for OpenTelemetry (ADOT) SDKs
Vous pouvez utiliser l'ADOT SDKs pour passer à l'absence de collecteur et pour envoyer des traces directement au point de terminaison OTLP (pour les traces).
Application Signals inclut des fonctionnalités de recherche de transactions. Pour éviter les coûts supplémentaires, désactivez les signaux d'application dans le SDK ADOT et conservez OTEL_AWS_APPLICATION_SIGNALS_ENABLED
la valeur false (paramètre par défaut).
Prérequis
Assurez-vous que Transaction Search est activé pour envoyer des spans au point de terminaison X-Ray OTLP. Pour plus d'informations, consultez Commencer à utiliser Transaction Search.
Configurer les autorisations IAM pour Amazon EC2
Suivez ces étapes pour associer la politique AWSXrayWriteOnlyPolicy
IAM au rôle IAM de votre instance Amazon EC2 :
Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/.
-
Choisissez Rôles, puis recherchez et sélectionnez le rôle utilisé par votre EC2 instance Amazon.
-
Sous l'onglet Autorisations, choisissez Ajouter des autorisations, puis Joindre des politiques.
-
À l'aide du champ de recherche, recherchez la AWSXrayWriteOnlyPolicy
politique.
-
Sélectionnez la AWSXrayWriteOnlyPolicy
politique et choisissez Ajouter des autorisations.
Configurer les autorisations IAM pour les hôtes sur site
Suivez ces étapes pour créer un utilisateur IAM qui pourra être utilisé pour fournir des autorisations à vos hôtes sur site.
Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/.
Choisissez Utilisateurs, puis Créer un utilisateur.
-
Choisissez Utilisateurs, puis Créer un utilisateur.
-
Dans Détails de l'utilisateur, dans Nom d'utilisateur, entrez le nom du nouvel utilisateur IAM. Il s'agit du nom de connexion AWS qui sera utilisé pour authentifier votre hôte.
-
Choisissez Suivant.
-
Sur la page Définir les autorisations, sous Options d'autorisations, sélectionnez Joindre directement les politiques.
-
Dans la liste des politiques d'autorisation, sélectionnez la AWSXrayWriteOnlyPolicy
politique à ajouter à votre utilisateur.
-
Choisissez Suivant.
-
Sur la page Réviser et créer, assurez-vous que vous êtes satisfait du nom d'utilisateur et que la AWSXrayWriteOnlyPolicy
politique figure dans le résumé des autorisations.
-
Choisissez Create user (Créer un utilisateur).
-
Créez et récupérez votre clé AWS d'accès et votre clé secrète :
-
Dans le volet de navigation de la console IAM, choisissez Utilisateurs, puis sélectionnez le nom d'utilisateur de l'utilisateur que vous avez créé à l'étape précédente.
-
Sur la page de l'utilisateur, choisissez l'onglet Informations d'identification de sécurité.
-
Dans la section Clés d'accès, choisissez Créer une clé d'accès.
-
Pour l'étape 1 de création d'une clé d'accès, choisissez Command Line Interface (CLI).
-
Pour l'étape 2 de création d'une clé d'accès, entrez éventuellement une balise, puis choisissez Next.
-
Pour l'étape 3 de création d'une clé d'accès, sélectionnez Télécharger le fichier .csv pour enregistrer un fichier .csv avec la clé d'accès et la clé d'accès secrète de votre utilisateur IAM. Vous avez besoin de ces informations pour les prochaines étapes.
-
Sélectionnez Exécuté.
-
Configurez vos AWS informations d'identification sur votre hôte local en saisissant la commande suivante. Remplacez ACCESS_KEY_ID
et SECRET_ACCESS_ID
par votre clé d'accès et votre clé d'accès secrète nouvellement générées à partir du fichier .csv que vous avez téléchargé à l'étape précédente.
$ 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
Activation d'ADOT SDKs
Vous pouvez activer les traces de votre application à envoyer directement au point de terminaison OTLP depuis le SDK AWS Distro for OpenTelemetry (ADOT) sur Java, Node.js, Python et .Net.
- Java
-
-
Téléchargez la dernière version de l'agent d'auto-instrumentation de AWS Distro pour OpenTelemetry Java. Vous pouvez télécharger la dernière version à l'aide de cette commande :
curl -L -O https://github.com/aws-observability/aws-otel-java-instrumentation/releases/latest/download/aws-opentelemetry-agent.jar
Pour voir toutes les versions publiées, voir les aws-otel-java-instrumentation versions.
Pour activer l'exportateur qui envoie directement les traces au point de terminaison des traces X-Ray OTLP et pour optimiser les avantages, utilisez les variables d'environnement pour fournir des informations supplémentaires avant de démarrer votre application.
Pour la variable OTEL_RESOURCE_ATTRIBUTES
, spécifiez les informations suivantes sous forme de paires clé-valeur :
(Facultatif) service.name
définit le nom du service. Il sera affiché comme nom de service pour votre application dans les tableaux de bord des signaux d'application. Lorsque vous ne fournissez aucune valeur pour cette clé, la valeur par défaut UnknownService
est utilisée.
(Facultatif) deployment.environment
définit l'environnement dans lequel l'application s'exécute. Il sera affiché sous la forme de l'environnement Hosted In de votre application. Lorsque vous ne le spécifiez pas, l'une des valeurs par défaut suivantes est utilisée :
-
S'il s'agit d'une instance qui fait partie d'un groupe Auto Scaling, elle est définie sur ec2:name-of-Auto-Scaling-group
-
S'il s'agit d'une EC2 instance Amazon qui ne fait pas partie d'un groupe Auto Scaling, elle est définie sur ec2:default
-
S'il s'agit d'un hôte local, il est configuré sur generic:default
Cette variable d'environnement est utilisée uniquement par Application Signals et est convertie en annotations de trace X-Ray et en dimensions CloudWatch métriques
Pour la OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
variable, spécifiez le point de terminaison des traces X-Ray OTLP :https://xray.[AWSRegion
].amazonaws.com/v1/traces
. Par exemple :
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
Pour la JAVA_TOOL_OPTIONS
variable, spécifiez le chemin où l'agent d'auto-instrumentation de AWS Distro for OpenTelemetry Java est stocké.
export JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH"
Par exemple :
export AWS_ADOT_JAVA_INSTRUMENTATION_PATH="./aws-opentelemetry-agent.jar"
Pour la OTEL_METRICS_EXPORTER
variable, il est recommandé de définir la valeur sur none.
Pour la OTEL_LOGS_EXPORTER
variable, il est recommandé de définir la valeur sur none.
Pour la OTEL_TRACES_EXPORTER
variable, vous devez définir la valeur pour otlp
(c'est facultatif et c'est la valeur par défaut si cette variable d'environnement n'est pas définie).
Pour la OTEL_EXPORTER_OTLP_PROTOCOL
variable, vous devez définir la valeur sur http/protobuf
(c'est facultatif et c'est la valeur par défaut si cette variable d'environnement n'est pas définie). Le point de terminaison OTLP X-Ray ne prend actuellement en charge que le protocole HTTP.
Votre application devrait maintenant fonctionner avec l'instrumentation AWS Distro for OpenTelemetry Java et générera des spans. Ces intervalles sont enregistrés aws/spans
CloudWatch LogsLogGroup dans le dossier de votre compte. Vous pouvez également consulter les traces et les métriques corrélées à vos intervalles dans la console CloudWatch Traces and Metrics.
Démarrez votre application avec les variables d'environnement que vous avez définies. Voici un exemple de script de démarrage.
(Remarque : La configuration suivante ne prend en charge que les versions 1.32.2 et ultérieures de l'agent d' OpenTelemetry auto-instrumentation AWS Distro pour 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
-
Téléchargez la dernière version de l'agent AWS Distro for OpenTelemetry JavaScript Auto-Instrumentation pour Node.js. Vous pouvez effectuer l'installation à l'aide de la commande suivante :
npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation
Pour obtenir des informations sur toutes les versions publiées, consultez AWS Distro pour l' OpenTelemetry JavaScript instrumentation.
Pour activer l'exportateur qui envoie directement les traces au point de terminaison OTLP X-Ray et pour optimiser les avantages, utilisez les variables d'environnement pour fournir des informations supplémentaires avant de démarrer votre application.
Pour la variable OTEL_RESOURCE_ATTRIBUTES
, spécifiez les informations suivantes sous forme de paires clé-valeur :
(Facultatif) service.name
définit le nom du service. Il sera affiché comme nom de service pour votre application dans les tableaux de bord des signaux d'application. Lorsque vous ne fournissez aucune valeur pour cette clé, la valeur par défaut UnknownService
est utilisée.
(Facultatif) deployment.environment
définit l'environnement dans lequel l'application s'exécute. Cet environnement sera affiché comme l’environnement hébergé de votre application dans les tableaux de bord Application Signals. Lorsque vous ne spécifiez pas cette variable, l'une des valeurs par défaut suivantes est utilisée :
-
S'il s'agit d'une instance qui fait partie d'un groupe Auto Scaling, elle est définie sur ec2:name-of-Auto-Scaling-group
-
S'il s'agit d'une EC2 instance Amazon qui ne fait pas partie d'un groupe Auto Scaling, elle est définie sur ec2:default
-
S'il s'agit d'un hôte local, il est configuré sur generic:default
Cette variable d'environnement est utilisée uniquement par Application Signals et est convertie en annotations de trace X-Ray et en dimensions CloudWatch métriques.
Pour la OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
variable, spécifiez le point de terminaison des traces X-Ray OTLP :https://xray.[AWSRegion
].amazonaws.com/v1/traces
.
Par exemple :
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
Pour la OTEL_METRICS_EXPORTER
variable, il est recommandé de définir la valeur sur none. Les métriques des signaux d'application sont générées par le point de terminaison OTLP.
Pour la OTEL_LOGS_EXPORTER
variable, il est recommandé de définir la valeur sur none.
Pour la OTEL_TRACES_EXPORTER
variable, vous devez définir la valeur pour otlp
(c'est facultatif et c'est la valeur par défaut si cette variable d'environnement n'est pas définie).
Pour la OTEL_EXPORTER_OTLP_PROTOCOL
variable, vous devez définir la valeur sur http/protobuf
(c'est facultatif et c'est la valeur par défaut si cette variable d'environnement n'est pas définie). Le point de terminaison OTLP X-Ray ne prend actuellement en charge que le protocole HTTP.
Votre application devrait maintenant fonctionner avec l'instrumentation AWS Distro for OpenTelemetry Java et générera des spans. Ces intervalles sont enregistrés aws/spans
CloudWatch LogsLogGroup dans le dossier de votre compte. Vous pouvez également consulter les traces et les métriques corrélées à vos intervalles dans la console CloudWatch Traces and Metrics.
Démarrez votre application avec les variables d'environnement que vous avez définies. Voici un exemple de script de démarrage.
(Remarque : remplacez $ SVC_NAME
par le nom de votre application. Il s'affiche sous forme de nom de l'application.
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
-
Téléchargez la dernière version de l'agent d'auto-instrumentation AWS Distro for OpenTelemetry Python. Vous pouvez effectuer l'installation à l'aide de la commande suivante :
pip install aws-opentelemetry-distro
Pour permettre à l'exportateur d'envoyer directement des traces au point de terminaison OTLP X-Ray et pour optimiser les avantages, utilisez les variables d'environnement pour fournir des informations supplémentaires avant de démarrer votre application.
Pour la variable OTEL_RESOURCE_ATTRIBUTES
, spécifiez les informations suivantes sous forme de paires clé-valeur :
(Facultatif) service.name
définit le nom du service. Il sera affiché comme nom de service pour votre application dans les tableaux de bord des signaux d'application. Lorsque vous ne fournissez aucune valeur pour cette clé, la valeur par défaut UnknownService
est utilisée.
(Facultatif) deployment.environment
définit l'environnement dans lequel l'application s'exécute. Cet environnement sera affiché comme l’environnement hébergé de votre application dans les tableaux de bord Application Signals. Lorsque vous ne le spécifiez pas, l'une des valeurs par défaut suivantes est utilisée :
-
S'il s'agit d'une instance qui fait partie d'un groupe Auto Scaling, elle est définie sur ec2:name-of-Auto-Scaling-group
-
S'il s'agit d'une EC2 instance Amazon qui ne fait pas partie d'un groupe Auto Scaling, elle est définie sur ec2:default
-
S'il s'agit d'un hôte local, il est configuré sur generic:default
Cette variable d'environnement est utilisée uniquement par Application Signals et est convertie en annotations de trace X-Ray et en dimensions CloudWatch métriques.
Pour la OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
variable, spécifiez le point de terminaison des traces X-Ray OTLP :https://xray.[AWSRegion
].amazonaws.com/v1/traces
.
Par exemple :
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
Pour la OTEL_METRICS_EXPORTER
variable, il est recommandé de définir la valeur sur none. Les métriques des signaux d'application sont générées par le point de terminaison OTLP.
Pour la OTEL_LOGS_EXPORTER
variable, il est recommandé de définir la valeur sur none.
Pour la OTEL_TRACES_EXPORTER
variable, vous devez définir la valeur pour otlp
(c'est facultatif et c'est la valeur par défaut si cette variable d'environnement n'est pas définie).
Pour la OTEL_EXPORTER_OTLP_PROTOCOL
variable, vous devez définir la valeur sur http/protobuf
(c'est facultatif et c'est la valeur par défaut si cette variable d'environnement n'est pas définie). Le point de terminaison OTLP X-Ray ne prend actuellement en charge que le protocole HTTP.
Votre application devrait maintenant fonctionner avec l'instrumentation AWS Distro for OpenTelemetry Java et générera des spans. Ces intervalles sont enregistrés aws/spans
CloudWatch LogsLogGroup dans le dossier de votre compte. Vous pouvez également consulter les traces et les métriques corrélées à vos intervalles dans la console CloudWatch Traces and Metrics.
Démarrez votre application avec les variables d'environnement que vous avez définies. Voici un exemple de script de démarrage.
(Remarque : remplacez $ SVC_NAME
par le nom de votre application et remplacez $ PYTHON_APP
par l'emplacement et le nom de votre application.
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
-
Pour activer l'exportateur qui envoie directement les traces au point de terminaison des traces X-Ray OTLP et pour optimiser les avantages, définissez les variables d'environnement afin de fournir des informations supplémentaires avant de démarrer votre application. Ces variables sont également nécessaires pour configurer l'instrumentation .NET.
Remplacez dotnet-service-name
la variable d'OTEL_RESOURCE_ATTRIBUTES
environnement par le nom du service de votre choix.
Configurez OTEL_TRACES_EXPORTER=none
.
Configurez OTEL_AWS_SIG_V4_ENABLED=true
.
Un exemple pour 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 exemple pour 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
Démarrez votre application avec les variables d'environnement.
(Facultatif) Vous pouvez également utiliser les scripts d'installation fournis pour faciliter l'installation et la configuration du package d'instrumentation automatique AWS Distro for OpenTelemetry .NET.
Pour Linux, téléchargez et installez le script d'installation de Bash depuis la page des GitHub versions :
# 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
Pour Windows Server, téléchargez et installez le script PowerShell d'installation depuis la page GitHub des versions :
# 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
Vous pouvez trouver le NuGet package du package d'auto-instrumentation AWS Distro pour OpenTelemetry .NET dans le dépôt officiel NuGet . Assurez-vous de consulter le fichier README pour obtenir des instructions.