View a markdown version of this page

Ajoutez de l'observabilité à vos ressources Amazon Bedrock AgentCore - Base rocheuse de l'Amazonie AgentCore

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.

Ajoutez de l'observabilité à vos ressources Amazon Bedrock AgentCore

Amazon Bedrock AgentCore fournit un certain nombre de mesures intégrées pour surveiller les performances des ressources pour les types de ressources AgentCore d'exécution, de mémoire, de passerelle, d'outils intégrés et d'identité. Ces données par défaut sont disponibles sur Amazon CloudWatch. Pour afficher la gamme complète des données d'observabilité dans la CloudWatch console ou pour générer des mesures d'exécution personnalisées pour les agents, vous devez instrumenter votre code à l'aide du SDK AWS Distro for Open Telemetry (ADOT).

Pour afficher le tableau de bord d'observabilité dans CloudWatch, ouvrez la page Amazon CloudWatch GenAi Observability.

Consultez les sections suivantes pour en savoir plus sur la configuration de vos ressources afin d'afficher les mesures d'observabilité sur la page d'observabilité de l'IA générée par la CloudWatch console et dans CloudWatch les journaux.

Astuce

L'utilisation du SDK ADOT pour générer des métriques personnalisées est également prise en charge pour les agents exécutés en dehors de l' AgentCore environnement d'exécution. Pour savoir comment activer l'observabilité pour ces agents, voir Activation de l'observabilité pour les agents hébergés en dehors de. AgentCore

Favoriser l' AgentCore observabilité

Pour consulter les statistiques, les intervalles et les traces générés par le AgentCore service, vous devez d'abord effectuer une configuration unique pour activer Amazon CloudWatch Transaction Search. Pour afficher les intervalles de ressources mémoire fournis par le service, vous devez également activer le suivi lorsque vous créez une mémoire. Consultez la section Activation de l'observabilité pour l' AgentCore exécution, la mémoire, la passerelle, les outils intégrés et les ressources d'identité pour en savoir plus.

Les sections suivantes décrivent comment effectuer ces actions de configuration et activer l'observabilité dans le code de votre agent.

Activation de CloudWatch la recherche de transactions

Vous pouvez activer la recherche de CloudWatch transactions soit à l'aide de la CloudWatch console, soit à l'aide d'une API via l'interface de ligne de AWS commande (AWS CLI) ou l'un des AWS kits de développement logiciel.

Utilisez l'une des procédures suivantes pour activer la recherche de transactions.

Exemple
CloudWatch console
  1. ====== Pour activer la recherche de CloudWatch transactions dans la console CloudWatch

  2. Ouvrez la console CloudWatch.

  3. Dans le volet de navigation, développez Application Signals (APM) et choisissez Recherche de transactions.

  4. Sélectionnez Activer la recherche de transactions.

  5. Cochez la case pour ingérer les spans sous forme de journaux structurés.

  6. Choisissez Enregistrer.

API
  1. ====== Pour activer la recherche de CloudWatch transactions à l'aide d'une API

  2. Lorsque vous utilisez l' AWS interface de ligne de commande ou un AWS SDK pour activer la recherche de transactions, configurez d'abord les autorisations nécessaires pour ingérer des intervalles dans les CloudWatch journaux en ajoutant une politique basée sur les ressources avec. PutResourcePolicy

    La commande AWS CLI suivante ajoute une politique de ressources qui autorise AWS X-Ray l'envoi de traces à CloudWatch Logs.

    aws logs put-resource-policy --policy-name MyResourcePolicy --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "TransactionSearchXRayAccess", "Effect": "Allow", "Principal": { "Service": "xray.amazonaws.com" }, "Action": "logs:PutLogEvents", "Resource": [ "arn:partition:logs:region:account-id:log-group:aws/spans:*", "arn:partition:logs:region:account-id:log-group:/aws/application-signals/data:*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:partition:logs:region:account-id:*" }, "StringEquals": { "aws:SourceAccount": "account-id" } } } ]}'

    Pour plus de clarté, la politique JSON en ligne de cette commande est illustrée de manière développée dans l'exemple suivant :

    { "Version":"2012-10-17", "Statement": [ { "Sid": "TransactionSearchXRayAccess", "Effect": "Allow", "Principal": { "Service": "xray.amazonaws.com" }, "Action": "logs:PutLogEvents", "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:aws/spans:*", "arn:aws:logs:us-east-1:123456789012:log-group:/aws/application-signals/data:*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:xray:us-east-1:123456789012:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }
  3. Configurez la destination de vos segments de trace à l'aide de UpdateTraceSegmentDestination.

    Pour utiliser l' AWS interface de ligne de commande, exécutez la commande suivante.

    aws xray update-trace-segment-destination --destination CloudWatchLogs
  4. (Facultatif) Configurez le pourcentage d'échantillonnage souhaité à l'aide de UpdateIndexingRule.

    Pour utiliser l' AWS interface de ligne de commande, exécutez la commande suivante.

    aws xray update-indexing-rule --name "Default" --rule '{"Probabilistic": {"DesiredSamplingPercentage": number}}'

Destination Span pour les agents hébergés dans l'environnement d'exécution Amazon Bedrock AgentCore

Astuce

Vous pouvez désormais consolider l'ensemble de la télémétrie d'un agent (spans, journaux structurés et sortie standard) dans un seul groupe de journaux pour chaque agent.

Grâce à AgentCore Runtime, une fonctionnalité d'Amazon Bedrock AgentCore, vous pouvez configurer un agent pour qu'il transmette ses spans au même groupe de CloudWatch journaux Amazon que les journaux de l'agent. Avec cette configuration, les spans vont au flux de spans journaux dans/aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>, au lieu du groupe de aws/spans journaux partagé. Vous pouvez regrouper les spans, les journaux structurés et les sorties standard dans un groupe de journaux par agent, étendre le contrôle d'accès et le chiffrement à un agent individuel et exporter des données télémétriques depuis un emplacement unique.

Dans AWS les régions prises en charge, les agents nouvellement créés utilisent le groupe de journaux de l'agent comme destination de span par défaut. Les agents créés avant qu'une région ne prenne en charge la destination de span unifiée conservent le groupe de aws/spans journaux partagé par défaut.

Vous pouvez remplacer la valeur par défaut pour un agent individuel avec la variable d'environnement sur l'UNIFIED_TRACES_DESTINATION_ENABLEDenvironnement d'exécution de votre agent :

  • Pour activer un agent existant qui utilise le groupe de aws/spans journaux partagés, définissezUNIFIED_TRACES_DESTINATION_ENABLED=true. AgentCore transmet ensuite les spans de l'agent à son propre groupe de journaux.

  • Pour désactiver un agent qui utilise son propre groupe de journaux par défaut, définissezUNIFIED_TRACES_DESTINATION_ENABLED=false. AgentCore transmet ensuite les spans de l'agent au groupe de aws/spans journaux partagé.

AgentCore Pour fournir des spans au groupe de journaux de l'agent, les conditions suivantes doivent être vraies :

  • Activez CloudWatch la recherche de transactions dans votre compte et envoyez des segments de suivi à Amazon CloudWatch Logs. Sans Transaction Search, AgentCore impossible de transmettre des spans au groupe de journaux de l'agent. Pour plus d'informations, consultez la section Activation de CloudWatch la recherche de transactions.

  • Accordez l'logs:PutResourcePolicyaction sur le groupe de journaux de l'agent au rôle d'exécution de l'agent. AgentCore utilise cette autorisation pour AWS X-Ray autoriser la livraison de spans au groupe de journaux. Pour plus d'informations, consultez la section Rôle d'exécution pour exécuter un agent en cours AgentCore d'exécution.

  • L'agent utilise la version 0.18.0 ou ultérieure d'ADOT (). aws-opentelemetry-distro>=0.18.0 Les versions précédentes ignorent la configuration de destination des spans et fournissent des spans au groupe de aws/spans journaux partagé.

La modification de la destination de la travée ne déplace pas les données de travée existantes. Les spans AgentCore déjà livrées restent dans leur groupe de log d'origine.

Activation de l'observabilité dans le code de l'agent pour les AgentCore-hosted agents

Outre les métriques générées par les services, AgentCore vous pouvez également collecter des données de span et de trace ainsi que des métriques personnalisées émises par le code de votre agent.

Lorsque vous utilisez des frameworks d'agents tels que https://strandsagents.com/latest/ Strands LangChain ou CrewAI avec des bibliothèques d'instrumentation tierces prises en charge, le framework lui-même est doté d'un support intégré pour les conventions sémantiques OTEL et GenAI, et il peut également être instrumenté à l'aide d'un package d'auto-instrumentation tel que. opentelemetry-instrument-langchain Il est également possible d'envoyer des conventions sémantiques Generative AI, de la télémétrie et des spans en définissant un traceur personnalisé. AgentCore prend en charge l'utilisation des bibliothèques d'instrumentation suivantes dans votre infrastructure d'agents :

Pour afficher ces données sur la page d'observabilité de l'IA générative de la CloudWatch console et sur Amazon CloudWatch, vous devez ajouter le SDK AWS Distro for Open Telemetry (ADOT) à votre code d'agent.

Note

Avec AgentCore, vous pouvez également consulter les statistiques des agents qui ne sont pas en cours d'exécution pendant l' AgentCore exécution. Des étapes de configuration supplémentaires sont nécessaires pour configurer les sorties de télémétrie pour les non-agents. AgentCore Consultez les instructions de la section Activation de l'observabilité pour les agents hébergés en dehors de AgentCore pour en savoir plus.

Pour ajouter le support ADOT et activer l' AgentCore observabilité, suivez les étapes de la procédure suivante.

Ajoutez de l'observabilité à votre agent AgentCore

  1. Assurez-vous que votre framework est configuré pour émettre des traces. Par exemple, dans le framework Strands, l'objet traceur doit être configuré pour demander à Strands d'émettre des journaux de télémétrie ouverte (OTEL).

  2. Ajoutez le SDK ADOT et boto3 aux dépendances de votre agent. Pour Python, ajoutez ce qui suit à votre requirements.txt fichier :

    aws-opentelemetry-distro>=0.18.0 boto3

    Vous pouvez également installer les dépendances directement :

    pip install aws-opentelemetry-distro>=0.18.0 boto3
  3. Exécutez le code de votre agent à l'aide de la commande OpenTelemetry d'instrumentation automatique :

    opentelemetry-instrument python my_agent.py

    Cette approche d'auto-instrumentation ajoute automatiquement le SDK au chemin Python. Vous utilisez peut-être déjà cette approche dans le cadre de votre OpenTelemetry implémentation standard.

    Pour un environnement conteneurisé (tel que docker), ajoutez la commande suivante :

    CMD ["opentelemetry-instrument", "python", "main.py"]

    Lorsque vous utilisez ADOT, afin de propager correctement l'identifiant de session, définissez-le X-Amzn-Bedrock-AgentCore-Runtime-Session-Id dans l'en-tête de la demande. ADOT définit ensuite correctement le session_id dans les en-têtes en aval.

    Pour propager un ID de trace, appelez le AgentCore moteur d'exécution avec le jeu de paramètrestraceId=<traceId>.

    Vous pouvez également appeler votre agent avec des en-têtes supplémentaires pour des options d'observabilité supplémentaires. Consultez la section Observabilité AgentCore d'exécution améliorée avec des en-têtes personnalisés pour en savoir plus.

Permettre l'observabilité pour les agents hébergés en dehors de AgentCore

Pour activer l'observabilité pour les agents hébergés en dehors de l' AgentCore environnement d'exécution, suivez d'abord les étapes décrites dans les sections précédentes pour activer la recherche de CloudWatch transactions et ajouter le SDK ADOT à votre code.

Si vous hébergez votre agent sur AWS Lambda, utilisez la couche AWS Lambda pour OpenTelemetry sur le site Web AWS Distro for. OpenTelemetry Ajoutez la couche à votre fonction, puis définissez la variable d'AWS_LAMBDA_EXEC_WRAPPERenvironnement sur/opt/otel-instrument. La couche instrumente ensuite automatiquement votre fonction. Avec cette approche, vous n'avez pas besoin d'ajouter le aws-opentelemetry-distro package ou d'exécuter la opentelemetry-instrument commande décrite précédemment.

ADOT Collector n'est pas pris en charge pour l'observabilité des agents

Le collecteur ADOT n'est pas pris en charge pour l'observabilité des agents. Pour envoyer des données télémétriques depuis un agent hébergé en dehors de l' AgentCore environnement d'exécution, vous devez utiliser le SDK ADOT ou la AWS couche Lambda pour. OpenTelemetry

Pour les agents qui s'exécutent en dehors de l' AgentCore environnement d'exécution, vous devez également créer un groupe de journaux d'agents que vous incluez dans vos variables d'environnement.

Configurez vos variables d' AWS environnement, puis définissez vos variables d'environnement Open Telemetry comme indiqué ci-dessous.

AWS variables d'environnement

AWS_ACCOUNT_ID=<account id> AWS_DEFAULT_REGION=<default region> AWS_REGION=<region> AWS_ACCESS_KEY_ID=<access key id> AWS_SECRET_ACCESS_KEY=<secret key>

Variables d'environnement OTEL

AGENT_OBSERVABILITY_ENABLED=true AWS_GENAI_CONTENT_EXTRACTION_OPT_OUT=true # Keeps model payloads and tool request/response data on spans. Requires ADOT >=0.18.0. OTEL_PYTHON_DISTRO=aws_distro OTEL_PYTHON_CONFIGURATOR=aws_configurator # required for ADOT Python only OTEL_RESOURCE_ATTRIBUTES=service.name=<agent-name>,aws.log.group.names=/aws/bedrock-agentcore/runtimes/<agent-id>,cloud.resource_id=<AgentEndpointArn:AgentEndpointName> # endpoint is optional OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=/aws/bedrock-agentcore/runtimes/<agent-id>,x-aws-log-stream=runtime-logs,x-aws-metric-namespace=bedrock-agentcore OTEL_EXPORTER_OTLP_TRACES_HEADERS=x-aws-log-group=/aws/bedrock-agentcore/runtimes/<agent-id>,x-aws-log-stream=spans # (Optional) Directs spans to your log group instead of the aws/spans log group. Requires ADOT version 0.18.0 or later. OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf OTEL_TRACES_EXPORTER=otlp OTEL_AWS_APPLICATION_SIGNALS_ENABLED=false # AWS Lambda Layer for OpenTelemetry only: disables Application Signals OTEL_LOGS_EXPORTER=otlp # AWS Lambda Layer for OpenTelemetry only: exports logs over OTLP OTEL_METRICS_EXPORTER=awsemf # AWS Lambda Layer for OpenTelemetry only: exports metrics as CloudWatch EMF

<agent-name>Remplacez-le par le nom de votre agent et <agent-id> par un identifiant unique pour votre agent.

Note

Si vous choisissez OTEL_EXPORTER_OTLP_TRACES_HEADERS de livrer des spans à votre propre groupe de journaux, vous devez également ajouter une politique de ressources Amazon CloudWatch Logs. La politique doit autoriser X-Ray (xray.amazonaws.com) à appeler logs:PutLogEvents ce groupe de journaux. Appliquez la même politique que celle indiquée dans Activation de la recherche de CloudWatch transactions, en saisissant l'ARN de votre groupe de journauxResource. Sans cette politique, X-Ray vous ne pouvez pas fournir de spans à votre groupe de journaux.

Note

(Facultatif) Pour les frameworks d'agents autres que Strands LangChain et CrewAI : vous devrez peut-être ajouter un SDK et un code supplémentaires pour envoyer des conventions sémantiques Generative AI, de la télémétrie et des spans. AgentCore L'observabilité, une fonctionnalité d'Amazon Bedrock AgentCore, prend en charge l'utilisation des bibliothèques d'instrumentation suivantes dans votre infrastructure d'agents : * * Openllmetry * OpenInference * Traceloop OpenLit https://www.traceloop.com/docs/introduction

Prise en charge des identifiants de session

Pour propager l'identifiant de session, vous devez l'invoquer en utilisant l'identifiant de session figurant dans les bagages OTEL :

from opentelemetry import baggage ctx = baggage.set_baggage("session.id", session_id) # Set the session.id in baggage attach(ctx) # Attach the context to make it active token

Permettre l'observabilité de l' AgentCore exécution, de la mémoire, de la passerelle, des outils intégrés et des ressources d'identité

Lorsque vous créez une ressource AgentCore d'exécution (agent), le AgentCore moteur d'exécution crée par défaut un groupe de CloudWatch journaux pour les journaux fournis par le service. Toutefois, en ce qui concerne la mémoire, la passerelle et les ressources d'outils intégrées, AgentCore ne configure pas automatiquement les destinations des journaux pour vous.

Pour les ressources de mémoire et de passerelle, vous pouvez configurer les destinations des journaux dans la console ou à l'aide d'un AWS SDK. Si vous utilisez la console pour configurer une destination de CloudWatch journaux, le nom de groupe de journaux par défaut pour les ressources de mémoire et de passerelle est de la forme/aws/vendedlogs/bedrock-agentcore/{resource-type}/APPLICATION_LOGS/{resource-id}, où {resource-type} est memory ougateway.

Pour les journaux de mémoire et de passerelle, vous pouvez également configurer les destinations des journaux dans les journaux Amazon S3 ou les journaux de flux Firehose à l'aide de la AgentCore console. Pour en savoir plus sur le stockage des journaux dans Amazon S3 ou Firehose, consultez Chargement, téléchargement et utilisation d'objets dans Amazon S3 et Création d'un flux de diffusion Amazon Data Firehose.

Pour en savoir plus sur les données de journal produites par AgentCore les ressources de mémoire et de passerelle, voir Données de journal fournies (mémoire) ou Données de journal fournies (passerelle).

Pour les ressources d'outils intégrées, le AgentCore service ne fournit pas de journaux par défaut, mais vous pouvez générer vos propres journaux à partir de votre code. Si vous fournissez vos propres sorties de journal, vous devez configurer manuellement les destinations des journaux pour stocker ces données.

Pour voir ce que les données d'observabilité AgentCore fournissent par défaut pour chaque type de ressource, consultez les données d'observabilité AgentCore générées par Amazon Bedrock.

Configurer les destinations des journaux à l'aide de la console

Pour configurer les destinations des journaux de la mémoire ou des journaux de passerelle dans la AgentCore console, utilisez les procédures suivantes.

Exemple
Memory
  1. ====== Pour configurer la livraison des journaux pour les ressources mémoire (console)

  2. Ouvrez la page Mémoire de la AgentCore console.

  3. Dans le volet Mémoire, sélectionnez la mémoire pour laquelle vous souhaitez configurer une destination de journal.

  4. Faites défiler la page vers le bas jusqu'au volet Log delivery et choisissez Ajouter.

  5. Dans la liste déroulante, sélectionnez le type de destination de journal que vous souhaitez ajouter (groupe de CloudWatch journaux, compartiment Amazon S3 ou Amazon Data Firehose).

  6. Pour Type de journal, sélectionnez APPLICATION_LOGS.

  7. Pour les destinations Amazon S3 et Firehose, entrez un ARN de destination de livraison. Pour les CloudWatch journaux, le groupe de journaux de destination est déjà renseigné avec une valeur par défaut.

  8. (Facultatif) Pour CloudWatch les destinations des journaux, pour modifier le groupe de journaux par défaut, entrez un nouveau nom de groupe de journaux ou sélectionnez un groupe de journaux existant sous Groupe de journaux de destination.

  9. (Facultatif) Pour modifier les champs capturés dans chaque enregistrement de journal ou le format de sortie des journaux, développez Paramètres supplémentaires (facultatif) et modifiez la sélection des champs, le format de sortie et le délimiteur de champs selon la configuration souhaitée.

  10. Choisissez Ajouter.

Gateway
  1. ====== Pour configurer la livraison des journaux pour les ressources de la passerelle (console)

  2. Ouvrez la page Passerelles dans la AgentCore console.

  3. Dans le volet Passerelles, sélectionnez la passerelle pour laquelle vous souhaitez configurer une destination de journal.

  4. Faites défiler la page vers le bas jusqu'au volet Log delivery et choisissez Ajouter.

  5. Dans la liste déroulante, sélectionnez le type de destination de journal que vous souhaitez ajouter (groupe de CloudWatch journaux, compartiment Amazon S3 ou Amazon Data Firehose).

  6. Pour les destinations Amazon S3 et Firehose, entrez un ARN de destination de livraison. Pour les CloudWatch journaux, le groupe de journaux de destination est déjà renseigné avec une valeur par défaut.

  7. (Facultatif) Pour CloudWatch les destinations des journaux, pour modifier le groupe de journaux par défaut, entrez un nouveau nom de groupe de journaux ou sélectionnez un groupe de journaux existant sous Groupe de journaux de destination.

  8. (Facultatif) Pour modifier les champs capturés dans chaque enregistrement de journal ou le format de sortie des journaux, développez Paramètres supplémentaires (facultatif) et modifiez la sélection des champs, le format de sortie et le délimiteur de champs selon la configuration souhaitée.

  9. Choisissez Ajouter.

Runtime
  1. ====== Pour configurer la remise des journaux pour les ressources d'exécution de l'agent (console)

  2. Ouvrez la page Agent Runtime dans la AgentCore console.

  3. Dans le volet Agents d'exécution, sélectionnez l'agent d'exécution pour lequel vous souhaitez configurer une destination de journal.

  4. Faites défiler l'écran jusqu'au volet Livraison du journal et, dans la liste déroulante Ajouter, choisissez la destination de journalisation  : Amazon CloudWatch Logs, Amazon S3 ou Amazon Data Firehose.

  5. Configurez les informations de livraison du journal suivantes, puis choisissez Ajouter  :

    • Pour Type de journal, choisissez APPLICATION_LOGS.

    • Si vous utilisez Amazon CloudWatch Logs comme destination de journalisation, spécifiez le groupe de journaux de destination.

    • Si vous utilisez Amazon S3 comme destination de journalisation, spécifiez le compartiment Amazon S3 de destination.

    • Si vous utilisez Amazon Data Firehose comme destination de journalisation, spécifiez un flux de diffusion de destination.

  6. Vérifiez que l'état de livraison du journal est défini sur Livraison active.

Built-in tools
  1. ====== Pour configurer la livraison des journaux pour les ressources des outils intégrés (console)

  2. Ouvrez la page Built-in des outils dans la AgentCore console.

  3. Dans le volet Built-in Outils, dans l'onglet Outils de l'interpréteur de code ou dans l'onglet Outils du navigateur, sélectionnez l'outil d'interprétation de code ou l'outil de navigateur pour lequel vous souhaitez configurer une destination de journal.

  4. Faites défiler l'écran jusqu'au volet Livraison du journal et, dans la liste déroulante Ajouter, choisissez la destination de journalisation  : Amazon CloudWatch Logs, Amazon S3 ou Amazon Data Firehose.

  5. Configurez les informations de livraison du journal suivantes, puis choisissez Ajouter  :

    • Pour Type de journal, choisissez APPLICATION_LOGS.

    • Si vous utilisez Amazon CloudWatch Logs comme destination de journalisation, spécifiez le groupe de journaux de destination.

    • Si vous utilisez Amazon S3 comme destination de journalisation, spécifiez le compartiment Amazon S3 de destination.

    • Si vous utilisez Amazon Data Firehose comme destination de journalisation, spécifiez un flux de diffusion de destination.

  6. Vérifiez que l'état de livraison du journal est défini sur Livraison active.

Identity
  1. WorkloadIdentity l'activation de la remise des journaux est gérée au niveau des ressources associées, y compris les ressources d'exécution de l'agent ou de passerelle d'agent.

    Pour configurer la remise des WorkloadIdentity journaux pour les ressources associées (console)

  2. Ouvrez la page Gateway ou Agent Runtime dans la AgentCore console et sélectionnez un agent ou une passerelle pour lequel vous souhaitez activer la WorkloadIdentity journalisation.

  3. Dans l'onglet Identité, faites défiler l'écran jusqu'au volet de diffusion du journal et, dans la liste déroulante Ajouter, choisissez la destination de journalisation  : Amazon CloudWatch Logs, Amazon S3 ou Amazon Data Firehose.

  4. Configurez les informations de livraison du journal suivantes, puis choisissez Ajouter  :

    • Pour Type de journal, choisissez APPLICATION_LOGS.

    • Si vous utilisez Amazon CloudWatch Logs comme destination de journalisation, spécifiez le groupe de journaux de destination.

    • Si vous utilisez Amazon S3 comme destination de journalisation, spécifiez le compartiment Amazon S3 de destination.

    • Si vous utilisez Amazon Data Firehose comme destination de journalisation, spécifiez un flux de diffusion de destination.

  5. Vérifiez que l'état de livraison du journal est défini sur Livraison active.

Configurer la diffusion du suivi à CloudWatch l'aide de la console

Cette section explique comment activer la livraison de traces CloudWatch pour suivre le flux d'interactions via votre application, ce qui vous permet de visualiser les demandes, d'identifier les goulots d'étranglement en matière de performances, de résoudre les erreurs et d'optimiser les performances.

Exemple
Memory
  1. ====== Pour configurer le suivi des ressources mémoire (console)

  2. Ouvrez la page Mémoire de la AgentCore console.

  3. Dans le volet Mémoire, sélectionnez la ressource mémoire pour laquelle vous souhaitez activer le suivi.

  4. Dans le volet Traçage, choisissez Modifier, placez le widget sur Activer, puis choisissez Enregistrer.

Runtime
  1. ====== Pour configurer le suivi des ressources d'exécution (console)

  2. Ouvrez la page d'exécution des agents dans la AgentCore console.

  3. Dans le volet Agents d'exécution, sélectionnez l'agent pour lequel vous souhaitez activer le suivi.

  4. Dans le volet Traçage, choisissez Modifier, placez le widget sur Activer, puis choisissez Enregistrer.

    AgentCore permet le traçage de l'agent sélectionné. Les spans apparaissent dans le groupe de journaux de l'agent (/aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>), ou dans le groupe de aws/spans journaux pour les agents qui utilisent la destination de span partagée. Pour plus d'informations, consultez Span destination pour les agents hébergés dans l' AgentCore environnement d'exécution Amazon Bedrock.

    Pour configurer le WorkloadIdentity suivi des ressources d'exécution (console)

  5. Ouvrez la page d'exécution des agents dans la AgentCore console.

  6. Dans le volet Agents d'exécution, choisissez l'onglet Identité, puis sélectionnez l'agent pour lequel vous souhaitez activer le WorkloadIdentity suivi.

  7. Dans le volet Traçage, choisissez Modifier, placez le widget sur Activer, puis choisissez Enregistrer.

    WorkloadIdentity le traçage sera activé pour l'agent sélectionné et les intervalles seront disponibles dans le groupe de aws/spans journaux.

Built-in tools
  1. ====== Pour configurer le suivi pour les outils intégrés (console)

  2. Ouvrez la page Built-in des outils dans la AgentCore console.

  3. Dans le volet Built-in Outils, dans l'onglet Outils de l'interpréteur de code ou dans l'onglet Outils du navigateur, sélectionnez l'outil d'interprétation de code ou l'outil de navigateur pour lequel vous souhaitez activer le traçage.

  4. Dans le volet Traçage, choisissez Modifier, placez le widget sur Activer, puis choisissez Enregistrer.

    Le traçage sera activé pour l'interpréteur de code ou l'outil de navigation sélectionné et les spans seront disponibles dans le groupe de aws/spans journaux.

Gateway
  1. ====== Pour configurer le suivi des ressources de la passerelle (console)

  2. Ouvrez la page Passerelles dans la AgentCore console.

  3. Dans le volet Passerelles, sélectionnez la passerelle pour laquelle vous souhaitez activer le suivi.

  4. Dans le volet Traçage, choisissez Modifier, placez le widget sur Activer, puis choisissez Enregistrer.

    Le traçage sera activé pour la passerelle sélectionnée et les étendues seront disponibles dans le groupe de aws/spans journaux.

    Pour configurer le WorkloadIdentity suivi des ressources de la passerelle (console)

  5. Ouvrez la page Passerelles dans la AgentCore console.

  6. Dans le volet Passerelles, choisissez l'onglet Identité, puis sélectionnez la passerelle pour laquelle vous souhaitez activer le WorkloadIdentity suivi.

  7. Dans le volet Traçage, choisissez Modifier, placez le widget sur Activer, puis choisissez Enregistrer.

    WorkloadIdentity le traçage sera activé pour la passerelle sélectionnée et les étendues seront disponibles dans le groupe de aws/spans journaux.

    Note

    La recherche de CloudWatch transactions doit être activée pour pouvoir activer le suivi.

Identity
  1. ====== Pour configurer le suivi des ressources d'identité (console)

  2. Ouvrez la page Identité dans la AgentCore console.

  3. Dans le volet Identité, sélectionnez le client OAuth ou la clé API pour laquelle vous souhaitez activer le suivi.

  4. Dans le volet Traçage, choisissez Modifier, placez le widget sur Activer, puis choisissez Enregistrer.

Configurer les CloudWatch ressources à l'aide d'un AWS Kit SDK

Pour configurer une source de diffusion pour les journaux et les traces (SDK)

  • Exécutez le code Python suivant CloudWatch pour configurer votre mémoire, votre passerelle et les ressources d'outils intégrées. Notez que les sources de diffusion et les destinations pour le suivi ne s'appliquent qu'aux ressources de mémoire et de passerelle.

import boto3 def enable_observability_for_resource(resource_arn, resource_id, account_id, region='us-east-1'): """ Enable observability for a Bedrock AgentCore resource (e.g., Memory Store) """ logs_client = boto3.client('logs', region_name=region) # Step 0: Create new log group for vended log delivery log_group_name = f'/aws/vendedlogs/bedrock-agentcore/{resource_id}' logs_client.create_log_group(logGroupName=log_group_name) log_group_arn = f'arn:aws:logs:{region}:{account_id}:log-group:{log_group_name}' # Step 1: Create delivery source for logs logs_source_response = logs_client.put_delivery_source( name=f"{resource_id}-logs-source", logType="APPLICATION_LOGS", resourceArn=resource_arn ) # Step 2: Create delivery source for traces traces_source_response = logs_client.put_delivery_source( name=f"{resource_id}-traces-source", logType="TRACES", resourceArn=resource_arn ) # Step 3: Create delivery destinations logs_destination_response = logs_client.put_delivery_destination( name=f"{resource_id}-logs-destination", deliveryDestinationType='CWL', deliveryDestinationConfiguration={ 'destinationResourceArn': log_group_arn, } ) # Traces required traces_destination_response = logs_client.put_delivery_destination( name=f"{resource_id}-traces-destination", deliveryDestinationType='XRAY' ) # Step 4: Create deliveries (connect sources to destinations) logs_delivery = logs_client.create_delivery( deliverySourceName=logs_source_response['deliverySource']['name'], deliveryDestinationArn=logs_destination_response['deliveryDestination']['arn'] ) # Traces required traces_delivery = logs_client.create_delivery( deliverySourceName=traces_source_response['deliverySource']['name'], deliveryDestinationArn=traces_destination_response['deliveryDestination']['arn'] ) print(f"Observability enabled for {resource_id}") return { 'logs_delivery_id': logs_delivery['id'], 'traces_delivery_id': traces_delivery['id'] } # Usage example resource_arn = "arn:aws:bedrock-agentcore:us-east-1:123456789012:memory/my-memory-id" resource_id = "my-memory-id" account_id = "123456789012" delivery_ids = enable_observability_for_resource(resource_arn, resource_id, account_id)

Observabilité AgentCore d'exécution améliorée grâce à des en-têtes personnalisés

Vous pouvez appeler votre agent avec des en-têtes HTTP supplémentaires pour fournir des options d'observabilité améliorées. L'exemple suivant montre les invocations, y compris les demandes d'en-tête supplémentaires facultatives pour les agents hébergés dans l' AgentCore environnement d'exécution.

Exemple d'invocation de Boto3

def invoke_agent(agent_id, payload, session_id=None): client = boto3.client("bedrock-agentcore", region="us-west-2") response = client.invoke_agent_runtime( agentRuntimeArn="arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/test_agent_boto2-nIg2xk3VSR", runtimeSessionId="12345678-1234-5678-9abc-123456789012", payload='{"query": "Plan a weekend in Seattle"}', )

Vous pouvez inclure les en-têtes facultatifs suivants lorsque vous invoquez votre agent afin d'améliorer les fonctionnalités d'observabilité et de suivi :

En-tête Description Exemple de valeur Explication technique

X-Amzn-Trace-Id

ID de trace pour le suivi des demandes (X-Ray Format)

Racine = 1-5759e988-bd862e3fe1be46a994272793 ; parent = 53995c3f42cd8ad8 ; Échantillonné = 1

Utilisé pour le suivi distribué entre les AWS services. Contient l'identifiant racine (origine de la demande), l'identifiant du parent (service précédent) et la décision d'échantillonnage pour le traçage. Échantillonnage = 1 signifie un échantillonnage à 100 %. Parent est également au format X-Ray Trace. L'OTEL générera automatiquement des identifiants de suivi s'ils ne sont pas fournis.

traceur

En-tête de traçage standard W3C

00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

Format W3C qui inclut la version, l'ID de trace, l'ID parent et les indicateurs. Nécessaire pour la corrélation des traces entre services lors de l'utilisation de systèmes de traçage modernes.

X-Amzn-Bedrock-AgentCore-Runtime-Session-Id

AgentCore identifiant de session

A1B2C3D4-5678-90AB-CDEF-Exemple AAAAA

Identifie une session utilisateur au sein du AgentCore système. Aide à l'analyse et au dépannage basés sur les sessions.

identifiant de session mcp

Identifiant de session MCP

MCP-A1B2C3D4-5678-90AB-CDEF-Exemple AAAAA

Identifie une session dans la plateforme cloud gérée. Permet de suivre les opérations dans l'écosystème MCP.

état du tracé

Informations supplémentaires sur l'état du traçage

congo=t61rc E, rouge=00f067aa0ba902b7 WkgMz

Vendor-specific informations de traçage. Fournit un contexte supplémentaire aux systèmes de traçage au-delà de ce qui se trouve dans traceparent.

bagages

Propagation contextuelle pour le traçage distribué

ID utilisateur = Alice, région du serveur = US-East-1

Key-value paires qui propagent les propriétés définies par l'utilisateur au-delà des limites du service à des fins de journalisation et d'analyse contextuelles.

Observabilité améliorée des outils AgentCore intégrés avec des en-têtes personnalisés

Vous pouvez invoquer vos Built-in outils avec des en-têtes HTTP supplémentaires pour fournir des options d'observabilité améliorées. Vous pouvez inclure les en-têtes facultatifs suivants lors de l'intégration des API Build-in Tools suivantes afin d'améliorer l'observabilité et les fonctionnalités de suivi :

Les API suivantes prennent en charge les en-têtes personnalisés :

  • StartCodeInterpreterSession

  • InvokeCodeInterpreter

  • StopCodeInterpreterSession

  • StartBrowserSession

  • StopBrowserSession

En-tête Description Exemple de valeur Explication technique

X-Amzn-Trace-Id

ID de trace pour le suivi des demandes (X-Ray Format)

Racine = 1-5759e988-bd862e3fe1be46a994272793 ; parent = 53995c3f42cd8ad8 ; Échantillonné = 1

Utilisé pour le suivi distribué entre les AWS services. Contient l'identifiant racine (origine de la demande), l'identifiant du parent (service précédent) et la décision d'échantillonnage pour le traçage. Échantillonnage = 1 signifie un échantillonnage à 100 %. Parent est également au format X-Ray Trace. L'OTEL générera automatiquement des identifiants de suivi s'ils ne sont pas fournis.

traceur

En-tête de traçage standard W3C

00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

Format W3C qui inclut la version, l'ID de trace, l'ID parent et les indicateurs. Nécessaire pour la corrélation des traces entre services lors de l'utilisation de systèmes de traçage modernes.

Observabilité des AgentCore identités améliorée grâce à des en-têtes personnalisés

Vous pouvez invoquer vos ressources d'identité avec des en-têtes HTTP supplémentaires pour fournir des options d'observabilité améliorées. Vous pouvez inclure les en-têtes facultatifs suivants lors de l'intégration des API d'identité suivantes afin d'améliorer l'observabilité et les fonctionnalités de suivi :

Les API suivantes prennent en charge les en-têtes personnalisés :

  • GetWorkloadAccessToken

  • GetWorkloadAccessTokenForJWT

  • GetWorkloadAccessTokenForUserId

  • GetResourceOauth2Token

  • GetResourceAPIKey

En-tête Description Exemple de valeur Explication technique

X-Amzn-Trace-Id

ID de trace pour le suivi des demandes (X-Ray Format)

Racine = 1-5759e988-bd862e3fe1be46a994272793 ; parent = 53995c3f42cd8ad8 ; Échantillonné = 1

Utilisé pour le suivi distribué entre les AWS services. Contient l'identifiant racine (origine de la demande), l'identifiant du parent (service précédent) et la décision d'échantillonnage pour le traçage. Échantillonnage = 1 signifie un échantillonnage à 100 %. Parent est également au format X-Ray Trace. L'OTEL générera automatiquement des identifiants de suivi s'ils ne sont pas fournis.

Meilleures pratiques en matière d'observabilité

Prenez en compte les bonnes pratiques suivantes lors de la mise en œuvre de l'observabilité pour les agents dans AgentCore :

  • Utilisez des identifiants de session cohérents - Dans la mesure du possible, réutilisez le même ID de session pour les demandes associées afin de conserver le contexte entre les interactions.

  • Implémentez le traçage distribué : utilisez les en-têtes fournis pour permettre un suivi de bout en bout des composants de votre application.

  • Ajoutez des attributs personnalisés : améliorez vos traces et vos mesures grâce à des attributs personnalisés qui fournissent un contexte supplémentaire pour le dépannage et l'analyse.

  • Surveillez l'utilisation des ressources - Portez attention aux indicateurs d'utilisation de la mémoire pour optimiser les performances de votre agent.

  • Configurez des alertes : configurez CloudWatch des alarmes pour vous avertir des problèmes potentiels avant qu'ils n'affectent vos utilisateurs.

Utilisation d'autres plateformes d'observabilité

Pour intégrer les agents hébergés dans l' AgentCore environnement d'exécution à d'autres plateformes d'observabilité afin de capturer et d'afficher les sorties de télémétrie, définissez la variable d'environnement suivante :

DISABLE_ADOT_OBSERVABILITY=true

La définition de cette variable pour true annuler les variables d'environnement ADOT par défaut de l'environnement AgentCore d'exécution, garantissant ainsi qu'aucune des configurations ADOT par défaut n'est définie.