Suivi de votre application App Runner avec X-Ray - AWS App Runner

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.

Suivi de votre application App Runner avec X-Ray

AWS X-Ray est un service qui collecte des données sur les demandes traitées par votre application et fournit des outils que vous pouvez utiliser pour visualiser, filtrer et obtenir des informations sur ces données afin d'identifier les problèmes et les opportunités d'optimisation. Pour toute demande retracée envoyée à votre application, vous pouvez consulter des informations détaillées non seulement sur la demande et la réponse, mais également sur les appels que votre application fait aux AWS ressources en aval, aux microservices, aux bases de données et aux API Web HTTP.

X-Ray utilise les données de suivi provenant des AWS ressources qui alimentent vos applications cloud pour générer un graphique de service détaillé. Le graphique de services montre le client, le service frontal et les services dorsaux que votre service frontal appelle pour traiter les demandes et conserver les données. Utilisez le graphique de services pour identifier les goulots d'étranglement, les pics de latence et d'autres problèmes à résoudre pour améliorer les performances de vos applications.

Pour plus d'informations sur X-Ray, veuillez consulter le Guide du développeur AWS X-Ray.

Exemple de carte de service X-Ray pour un service App Runner

Instrumentez votre application pour le traçage

Instrumentez votre application de service App Runner pour le traçage à l'aide OpenTelemetryd'une spécification de télémétrie portable. À l'heure actuelle, App Runner prend en charge AWS Distro for OpenTelemetry (ADOT), une OpenTelemetry implémentation qui collecte et présente des informations de télémétrie à l'aide de services. AWS X-Ray implémente le composant de traçage.

Selon le SDK ADOT spécifique que vous utilisez dans votre application, ADOT prend en charge jusqu'à deux approches d'instrumentation : automatique et manuelle. Pour plus d'informations sur l'instrumentation avec votre SDK, consultez la documentation ADOT et choisissez votre SDK dans le volet de navigation.

Configuration du moteur d'exécution

Vous trouverez ci-dessous les instructions générales de configuration de l'exécution pour instrumenter votre application de service App Runner à des fins de traçage.

Pour configurer le suivi pour votre environnement d'exécution
  1. Suivez les instructions fournies pour votre exécution dans AWS Distro for OpenTelemetry (ADOT) pour instrumenter votre application.

  2. Installez les OTEL dépendances requises dans la build section du apprunner.yaml fichier si vous utilisez le référentiel de code source ou dans le Dockerfile si vous utilisez une image de conteneur.

  3. Configurez vos variables d'environnement dans le apprunner.yaml fichier si vous utilisez le référentiel de code source ou dans le Dockerfile si vous utilisez une image de conteneur.

    Exemple Variables d’environnement
    Note

    L'exemple suivant répertorie les variables d'environnement importantes à ajouter au apprunner.yaml fichier. Ajoutez ces variables d'environnement à votre Dockerfile si vous utilisez une image de conteneur. Cependant, chaque environnement d'exécution peut avoir ses propres particularités et vous devrez peut-être ajouter d'autres variables d'environnement à la liste suivante. Pour plus d'informations sur les instructions spécifiques à votre environnement d'exécution et des exemples sur la façon de configurer votre application pour votre environnement d'exécution, consultez AWS Distro for OpenTelemetry et accédez à votre environnement d'exécution, sous Getting Started.

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

    OTEL_METRICS_EXPORTER=noneest une variable d'environnement importante pour App Runner car le collecteur App Runner Otel n'accepte pas l'enregistrement des métriques. Il n'accepte que le suivi des métriques.

Exemple de configuration d'exécution

L'exemple suivant illustre l'instrumentation automatique de votre application avec le SDK ADOT Python. Le SDK produit automatiquement des intervalles avec des données de télémétrie décrivant les valeurs utilisées par les frameworks Python dans votre application sans ajouter une seule ligne de code Python. Il suffit d'ajouter ou de modifier quelques lignes dans deux fichiers sources.

Ajoutez d'abord quelques dépendances, comme indiqué dans l'exemple suivant.

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

Ensuite, instrumentez votre application. La manière de procéder dépend de la source de votre service : image source ou code source.

Source image

Lorsque la source de votre service est une image, vous pouvez directement instrumenter le Dockerfile qui contrôle la création de votre image de conteneur et l'exécution de l'application dans l'image. L'exemple suivant montre un Dockerfile instrumenté pour une application Python. Les ajouts à l'instrumentation sont soulignés en gras.

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

Lorsque votre source de service est un référentiel contenant la source de votre application, vous instrumentez indirectement votre image à l'aide des paramètres du fichier de configuration d'App Runner. Ces paramètres contrôlent le Dockerfile qu'App Runner génère et utilise pour créer l'image de votre application. L'exemple suivant montre un fichier de configuration App Runner instrumenté pour une application Python. Les ajouts à l'instrumentation sont soulignés en gras.

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

Ajoutez des autorisations X-Ray à votre rôle d'instance de service App Runner

Pour utiliser le traçage X-Ray avec votre service App Runner, vous devez autoriser les instances du service à interagir avec le service X-Ray. Pour ce faire, associez un rôle d'instance à votre service et ajoutez une politique gérée avec des autorisations X-Ray. Pour plus d'informations sur un rôle d'instance App Runner, consultezRôle de l'instance. Ajoutez la politique AWSXRayDaemonWriteAccess gérée à votre rôle d'instance et attribuez-la à votre service lors de sa création.

Activez le suivi X-Ray pour votre service App Runner

Lorsque vous créez un service, App Runner désactive le suivi par défaut. Vous pouvez activer le suivi X-Ray pour votre service dans le cadre de la configuration de l'observabilité. Pour plus d’informations, consultez Gérez l'observabilité.

Si vous utilisez l'API App Runner ou le AWS CLI, l'TraceConfigurationobjet contenu dans l'objet de ObservabilityConfigurationressource contient des paramètres de suivi. Pour que le traçage reste désactivé, ne spécifiez aucun TraceConfiguration objet.

Dans le cas de la console et de l'API, veillez à associer le rôle d'instance décrit dans la section précédente à votre service App Runner.

Afficher les données de suivi X-Ray pour votre service App Runner

Dans l'onglet Observabilité de la page du tableau de bord des services de la console App Runner, choisissez Afficher la carte des services pour accéder à la CloudWatch console Amazon.

Page du tableau de bord du service App Runner affichant l'onglet d'observabilité

Utilisez la CloudWatch console Amazon pour consulter les cartes des services et les traces des demandes traitées par votre application. Les cartes des services présentent des informations telles que la latence des demandes et les interactions avec d'autres applications et AWS services. Les annotations personnalisées que vous ajoutez à votre code vous permettent de rechercher facilement des traces. Pour plus d'informations, consultez la section Utilisation ServiceLens pour surveiller l'état de santé de vos applications dans le guide de CloudWatch l'utilisateur Amazon.