Activer les signaux d'application sur Amazon EC2 - Amazon CloudWatch

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.

Activer les signaux d'application sur Amazon EC2

Pour les applications exécutées sur Amazon EC2 ou d'autres types d'instances, vous installez et configurez l' CloudWatch agent et AWS Distro pour OpenTelemetry vous-même. Sur ces architectures activées avec une configuration personnalisée d’Application Signals, Application Signals ne découvre pas automatiquement les noms de vos services ni les hôtes ou clusters sur lesquels ils s’exécutent. Vous devez spécifier ces noms lors de la configuration personnalisée, et les noms que vous spécifiez sont ceux qui sont affichés sur les tableaux de bord d’Application Signals.

Les instructions de cette section concernent Java, Python et. NETapplications. Les étapes ont été testées sur EC2 des instances Amazon, mais elles devraient également fonctionner sur d'autres architectures compatibles AWS Distro pour. OpenTelemetry

Prérequis

  • Pour obtenir de l'aide pour Application Signals, vous devez utiliser la version la plus récente de l' CloudWatchagent et du AWS Distro pour OpenTelemetry agent.

  • Vous devez avoir AWS CLI installé sur l'instance. Il est recommandé : AWS CLI version 2, mais la version 1 devrait également fonctionner. Pour plus d'informations sur l'installation du AWS CLI, voir Installer ou mettre à jour la dernière version du AWS CLI.

Important

Si vous utilisez OpenTelemetry déjà une application que vous avez l'intention d'activer pour les signaux d'application, consultez la section OpenTelemetry considérations relatives à la compatibilité avant d'activer les signaux d'application.

Étape 1 : activer Application Signals dans votre compte

Si vous n’avez pas encore activé Application Signals dans ce compte, vous devez accorder à Application Signals les autorisations nécessaires pour découvrir vos services. Pour ce faire, procédez comme suit. Cette opération ne doit être effectuée qu’une seule fois par compte.

Pour activer Application Signals pour vos applications
  1. Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/.

  2. Dans le panneau de navigation, choisissez Services.

  3. Choisissez Commencer à découvrir vos services.

  4. Cochez la case et choisissez Commencer à découvrir vos services.

    Lorsque vous effectuez cette étape pour la première fois dans votre compte, Application Signals crée le rôle AWSServiceRoleForCloudWatchApplicationSignalslié au service. Ce rôle accorde à Application Signals les autorisations suivantes :

    • xray:GetServiceGraph

    • logs:StartQuery

    • logs:GetQueryResults

    • cloudwatch:GetMetricData

    • cloudwatch:ListMetrics

    • tag:GetResources

    Pour plus d’informations sur ce rôle, consultez Autorisations de rôle liées au service pour les signaux d'application CloudWatch .

Étape 2 : télécharger et démarrer l' CloudWatch agent

Pour installer l' CloudWatch agent dans le cadre de l'activation des signaux d'application sur une EC2 instance Amazon ou un hôte sur site
  1. Téléchargez la dernière version de l' CloudWatch agent sur l'instance. Si l' CloudWatch agent est déjà installé sur l'instance, vous devrez peut-être le mettre à jour. Seules les versions de l'agent publiées le 30 novembre 2023 ou une version ultérieure prennent en charge les signaux CloudWatch d'application.

    Pour plus d'informations sur le téléchargement de CloudWatch l'agent, consultezTéléchargez le package de CloudWatch l'agent.

  2. Avant de démarrer l' CloudWatch agent, configurez-le pour activer les signaux d'application. L'exemple suivant est une configuration d' CloudWatch agent qui active les signaux d'application pour les métriques et les traces sur un EC2 hôte.

    Nous vous recommandons de placer ce fichier /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json sur les systèmes Linux.

    { "traces": { "traces_collected": { "application_signals": {} } }, "logs": { "metrics_collected": { "application_signals": {} } } }
  3. Attachez la CloudWatchAgentServerPolicyIAMpolitique au IAM rôle de votre EC2 instance Amazon. Pour les autorisations pour les hôtes locaux, consultezAutorisations pour les serveurs locaux.

    1. Connectez-vous au AWS Management Console et ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/.

    2. Choisissez Rôles et recherchez le rôle utilisé par votre EC2 instance Amazon. Choisissez ensuite le nom de ce rôle.

    3. Sous l’onglet Autorisations, choisissez Ajouter des autorisations, Attacher des politiques.

    4. Trouvez CloudWatchAgentServerPolicy. Utilisez le champ de recherche si nécessaire. Cochez la case correspondant à la politique, puis choisissez Ajouter des autorisations.

  4. Démarrez l' CloudWatch agent en saisissant les commandes suivantes. Remplacez agent-config-file-path avec le chemin d'accès au fichier de configuration de l' CloudWatch agent, tel que./amazon-cloudwatch-agent.json. Vous devez inclure le préfixe file: comme indiqué.

    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

Autorisations pour les serveurs locaux

Pour un hôte sur site, vous devez fournir AWS autorisation sur votre appareil.

Pour configurer les autorisations pour un hôte local
  1. Créez l'IAMutilisateur à utiliser pour fournir des autorisations à votre hôte local :

    1. Ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/.

    2. Choisissez Utilisateurs, puis Créer un utilisateur.

    3. Dans Détails de l'utilisateur, dans Nom d'utilisateur, entrez le nom du nouvel IAM utilisateur. Il s'agit du nom de connexion pour AWS qui sera utilisé pour authentifier votre hôte. Ensuite, sélectionnez Next

    4. Sur la page Définir les autorisations, sous Options d'autorisations, sélectionnez Joindre directement les politiques.

    5. Dans la liste des politiques d'autorisation, sélectionnez la CloudWatchAgentServerPolicypolitique à ajouter à votre utilisateur. Ensuite, sélectionnez Suivant.

    6. Sur la page Réviser et créer, assurez-vous que vous êtes satisfait du nom d'utilisateur et que la CloudWatchAgentServerPolicypolitique figure dans le résumé des autorisations.

    7. Choisissez Créer un utilisateur

  2. Créez et récupérez votre AWS clé d'accès et clé secrète :

    1. Dans le volet de navigation de la IAM console, choisissez Utilisateurs, puis sélectionnez le nom d'utilisateur de l'utilisateur que vous avez créé à l'étape précédente.

    2. Sur la page de l'utilisateur, choisissez l'onglet Informations d'identification de sécurité. Ensuite, dans la section Clés d'accès, choisissez Créer une clé d'accès.

    3. Pour l'étape 1 de création d'une clé d'accès, choisissez Command Line Interface (CLI).

    4. Pour l'étape 2 de création d'une clé d'accès, entrez éventuellement une balise, puis choisissez Next.

    5. 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 IAM utilisateur. Vous avez besoin de ces informations pour les prochaines étapes.

    6. Sélectionnez Exécuté.

  3. Configurez votre AWS informations d'identification sur votre hôte local en saisissant la commande suivante. Remplacez ACCESS_KEY_ID and SECRET_ACCESS_ID avec 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

Étape 3 : instrumenter votre application et la démarrer

L'étape suivante consiste à instrumenter votre application pour les signaux CloudWatch d'application.

Java
Pour instrumenter vos applications Java dans le cadre de l'activation des signaux d'application sur une EC2 instance Amazon ou un hôte sur site
  1. Téléchargez la dernière version du AWS Agent d'auto-instrumentation de Distro pour OpenTelemetry Java. Vous pouvez télécharger la version la plus récente en utilisant ce lien. Vous pouvez consulter les informations relatives à toutes les versions publiées dans la section aws-otel-java-instrumentation Releases.

  2. Pour optimiser vos avantages d’Application Signals, utilisez des variables d’environnement pour fournir des informations supplémentaires avant de démarrer votre application. Ces informations seront affichées dans les tableaux de bord d’Application Signals.

    1. 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. Si vous ne fournissez pas de 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. Si 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 de base vers URL lequel les traces doivent être exportées. L' CloudWatch agent expose 4316 comme port. OTLP Sur AmazonEC2, étant donné que les applications communiquent avec l' CloudWatch agent local, vous devez définir cette valeur sur OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces

      • Pour la OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT variable, spécifiez le point de terminaison de base vers URL lequel les métriques doivent être exportées. L' CloudWatch agent expose 4316 comme port. OTLP Sur AmazonEC2, étant donné que les applications communiquent avec l' CloudWatch agent local, vous devez définir cette valeur sur OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics

      • Pour la JAVA_TOOL_OPTIONS variable, spécifiez le chemin où AWS L'agent d'auto-instrumentation de Distro pour 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 variable OTEL_METRICS_EXPORTER, nous vous recommandons de définir la valeur sur none. Cela désactive les autres exportateurs de métriques afin que seul l’exportateur d’Application Signals soit utilisé.

      • Définissez OTEL_AWS_APPLICATION_SIGNALS_ENABLED sur true. Cela génère des métriques d’Application Signals à partir des suivis.

  3. Démarrez votre application avec les variables d'environnement répertoriées à l'étape précédente. Voici un exemple de script de démarrage.

    Note

    La configuration suivante ne prend en charge que les versions 1.32.2 et ultérieures du AWS Distro pour agent d' OpenTelemetry auto-instrumentation pour 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
  4. (Facultatif) Pour activer la corrélation des journauxOTEL_RESOURCE_ATTRIBUTES, définissez une variable d'environnement supplémentaire aws.log.group.names pour les groupes de journaux de votre application. Ce faisant, les traces et les métriques de votre application peuvent être corrélées aux entrées de journal pertinentes de ces groupes de journaux. Pour cette variable, remplacez $YOUR_APPLICATION_LOG_GROUP avec les noms des groupes de journaux de votre application. Si vous avez plusieurs groupes de journaux, vous pouvez utiliser une esperluette (&) pour les séparer comme dans cet exemple :. aws.log.group.names=log-group-1&log-group-2 Pour activer la corrélation entre les métriques et les logs, il suffit de définir cette variable environnementale actuelle. Pour de plus amples informations, veuillez consulter Activer la corrélation entre les métriques et les journaux. Pour activer la corrélation entre le suivi et le journal, vous devez également modifier la configuration de journalisation dans votre application. Pour de plus amples informations, veuillez consulter Activer la corrélation entre le traçage et le journal.

    Voici un exemple de script de démarrage qui permet d'activer la corrélation des logs.

    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
Note

Si vous utilisez un WSGI serveur pour votre application Python, outre les étapes décrites dans cette section, consultez les informations Aucune donnée de signal d'application pour une application Python utilisant un WSGI serveur permettant de faire fonctionner les signaux d'application.

Pour instrumenter vos applications Python dans le cadre de l'activation des signaux d'application sur une EC2 instance Amazon
  1. Téléchargez la dernière version du AWS Agent d'auto-instrumentation de distribution pour OpenTelemetry Python. Pour l'installer, exécutez la commande d' ci-dessous.

    pip install aws-opentelemetry-distro

    Vous pouvez consulter les informations relatives à toutes les versions publiées sur AWS Distro pour l'instrumentation OpenTelemetry Python.

  2. Pour optimiser vos avantages d’Application Signals, utilisez des variables d’environnement pour fournir des informations supplémentaires avant de démarrer votre application. Ces informations seront affichées dans les tableaux de bord d’Application Signals.

    1. Pour la variable OTEL_RESOURCE_ATTRIBUTES, spécifiez les informations suivantes sous forme de paires clé-valeur :

      • service.name défini le nom du service. Il sera affiché comme nom de service pour votre application dans les tableaux de bord d’Application Signals. Si vous ne fournissez pas de valeur pour cette clé, la valeur par défaut UnknownService est utilisée.

      • 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. Si 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 surec2: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 clé d'attribut est utilisée uniquement par Application Signals et est convertie en annotations de trace X-Ray et en dimensions CloudWatch métriques.

    2. Pour la OTEL_EXPORTER_OTLP_PROTOCOL variable, spécifiez d'http/protobufexporter les données de télémétrie HTTP vers les points de terminaison de l' CloudWatch agent répertoriés dans les étapes suivantes.

    3. Pour la OTEL_EXPORTER_OTLP_TRACES_ENDPOINT variable, spécifiez le point de terminaison de base vers URL lequel les traces doivent être exportées. L' CloudWatch agent indique 4316 comme OTLP port d'escale. HTTP Sur AmazonEC2, étant donné que les applications communiquent avec l' CloudWatch agent local, vous devez définir cette valeur sur OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces

    4. Pour la OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT variable, spécifiez le point de terminaison de base vers URL lequel les métriques doivent être exportées. L' CloudWatch agent indique 4316 comme OTLP port d'escale. HTTP Sur AmazonEC2, étant donné que les applications communiquent avec l' CloudWatch agent local, vous devez définir cette valeur sur OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics

    5. Pour la variable OTEL_METRICS_EXPORTER, nous vous recommandons de définir la valeur sur none. Cela désactive les autres exportateurs de métriques afin que seul l’exportateur d’Application Signals soit utilisé.

    6. Définissez la OTEL_AWS_APPLICATION_SIGNALS_ENABLED variable sur true pour que votre conteneur commence à envoyer des traces et des CloudWatch métriques X-Ray à Application Signals.

  3. Démarrez votre application avec les variables d’environnement décrites à l’étape précédente. Voici un exemple de script de démarrage.

    • Remplacez $SVC_NAME par le nom de votre application. Il sera affiché sous forme de nom de l'application, dans les tableaux de bord des signaux d'application.

    • Remplacez $PYTHON_APP par l'emplacement et le nom de votre application.

    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

    Avant d'activer les signaux d'application pour vos applications Python, tenez compte des points suivants.

    • Dans certaines applications conteneurisées, PYTHONPATH l'absence d'une variable d'environnement peut parfois empêcher l'application de démarrer. Pour résoudre ce problème, veillez à définir la variable d'PYTHONPATHenvironnement à l'emplacement du répertoire de travail de votre application. Cela est dû à un problème connu lié à l' OpenTelemetry auto-instrumentation. Pour plus d'informations sur ce problème, voir le paramètre d'auto-instrumentation Python de n'PYTHONPATHest pas conforme.

    • Pour les applications Django, des configurations supplémentaires sont requises, qui sont décrites dans la documentation OpenTelemetry Python.

      • Utilisez le --noreload drapeau pour empêcher le rechargement automatique.

      • Définissez la variable d'DJANGO_SETTINGS_MODULEenvironnement sur l'emplacement du settings.py fichier de votre application Django. Cela garantit que OpenTelemetry vous pouvez accéder et intégrer correctement vos paramètres Django.

  4. (Facultatif) Pour activer la corrélation des journauxOTEL_RESOURCE_ATTRIBUTES, définissez une variable d'environnement supplémentaire aws.log.group.names pour les groupes de journaux de votre application. Ce faisant, les traces et les métriques de votre application peuvent être corrélées aux entrées de journal pertinentes de ces groupes de journaux. Pour cette variable, remplacez $YOUR_APPLICATION_LOG_GROUP avec les noms des groupes de journaux de votre application. Si vous avez plusieurs groupes de journaux, vous pouvez utiliser une esperluette (&) pour les séparer comme dans cet exemple :. aws.log.group.names=log-group-1&log-group-2 Pour activer la corrélation entre les métriques et les logs, il suffit de définir cette variable environnementale actuelle. Pour de plus amples informations, veuillez consulter Activer la corrélation entre les métriques et les journaux. Pour activer la corrélation entre le suivi et le journal, vous devez également modifier la configuration de journalisation dans votre application. Pour de plus amples informations, veuillez consulter Activer la corrélation entre le traçage et le journal.

    Voici un exemple de script de démarrage qui permet d'activer la corrélation des logs.

    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 (Preview)
Pour instrumenter votre. NETapplications dans le cadre de l'activation des signaux d'application sur une EC2 instance Amazon ou un hôte sur site
  1. Téléchargez la dernière version du AWS Distro pour. OpenTelemetry NETensemble d'auto-instrumentation. Vous pouvez télécharger la dernière version sur aws-otel-dotnet-instrumentation Releases.

  2. Pour activer les signaux d'application, définissez les variables d'environnement suivantes afin de fournir des informations supplémentaires avant de démarrer votre application. Ces variables sont nécessaires pour configurer le hook de démarrage pour. NETinstrumentation, avant de commencer votre. NETdemande.

    • Voici 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_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
    • Voici 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_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"
  3. Démarrez votre application avec les variables d'environnement répertoriées à l'étape précédente.

Node.js (Preview)
Pour instrumenter vos applications Node.js dans le cadre de l'activation des signaux d'application sur une EC2 instance Amazon
  1. Téléchargez la dernière version du AWS Distro pour l'agent OpenTelemetry JavaScript d'auto-instrumentation pour Node.js. Pour l'installer, exécutez la commande d' ci-dessous.

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

    Vous pouvez consulter les informations relatives à toutes les versions publiées sur AWS Distro pour OpenTelemetry JavaScript instrumentation.

  2. Pour optimiser vos avantages d’Application Signals, utilisez des variables d’environnement pour fournir des informations supplémentaires avant de démarrer votre application. Ces informations seront affichées dans les tableaux de bord d’Application Signals.

    1. Pour la variable OTEL_RESOURCE_ATTRIBUTES, spécifiez les informations suivantes sous forme de paires clé-valeur :

      • service.name défini le nom du service. Il sera affiché comme nom de service pour votre application dans les tableaux de bord d’Application Signals. Si vous ne fournissez pas de valeur pour cette clé, la valeur par défaut UnknownService est utilisée.

      • 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. Si 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 surec2: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 clé d'attribut est utilisée uniquement par Application Signals et est convertie en annotations de trace X-Ray et en dimensions CloudWatch métriques.

    2. Pour la OTEL_EXPORTER_OTLP_PROTOCOL variable, spécifiez d'http/protobufexporter les données de télémétrie HTTP vers les points de terminaison de l' CloudWatch agent répertoriés dans les étapes suivantes.

    3. Pour la OTEL_EXPORTER_OTLP_TRACES_ENDPOINT variable, spécifiez le point de terminaison de base vers URL lequel les traces doivent être exportées. L' CloudWatch agent indique 4316 comme OTLP port d'escale. HTTP Sur AmazonEC2, étant donné que les applications communiquent avec l' CloudWatch agent local, vous devez définir cette valeur sur OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4316/v1/traces

    4. Pour la OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT variable, spécifiez le point de terminaison de base vers URL lequel les métriques doivent être exportées. L' CloudWatch agent indique 4316 comme OTLP port d'escale. HTTP Sur AmazonEC2, étant donné que les applications communiquent avec l' CloudWatch agent local, vous devez définir cette valeur sur OTEL_AWS_APPLICATION_SIGNALS_EXPORTER_ENDPOINT=http://localhost:4316/v1/metrics

    5. Pour la variable OTEL_METRICS_EXPORTER, nous vous recommandons de définir la valeur sur none. Cela désactive les autres exportateurs de métriques afin que seul l’exportateur d’Application Signals soit utilisé.

    6. Définissez la OTEL_AWS_APPLICATION_SIGNALS_ENABLED variable sur true pour que votre conteneur commence à envoyer des traces et des CloudWatch métriques X-Ray à Application Signals.

  3. Démarrez votre application avec les variables d’environnement décrites à l’étape précédente. Voici un exemple de script de démarrage.

    • Remplacez $SVC_NAME par le nom de votre application. Il sera affiché sous forme de nom de l'application, dans les tableaux de bord des signaux d'application.

    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
  4. (Facultatif) Pour activer la corrélation des journauxOTEL_RESOURCE_ATTRIBUTES, définissez une variable d'environnement supplémentaire aws.log.group.names pour les groupes de journaux de votre application. Ce faisant, les traces et les métriques de votre application peuvent être corrélées aux entrées de journal pertinentes de ces groupes de journaux. Pour cette variable, remplacez $YOUR_APPLICATION_LOG_GROUP avec les noms des groupes de journaux de votre application. Si vous avez plusieurs groupes de journaux, vous pouvez utiliser une esperluette (&) pour les séparer comme dans cet exemple :. aws.log.group.names=log-group-1&log-group-2 Pour activer la corrélation entre les métriques et les logs, il suffit de définir cette variable environnementale actuelle. Pour de plus amples informations, veuillez consulter Activer la corrélation entre les métriques et les journaux. Pour activer la corrélation entre le suivi et le journal, vous devez également modifier la configuration de journalisation dans votre application. Pour de plus amples informations, veuillez consulter Activer la corrélation entre le traçage et le journal.

    Voici un exemple de script de démarrage qui permet d'activer la corrélation des logs.

    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