View a markdown version of this page

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

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 AgentCore d'exécution, de mémoire, de passerelle, d'outils intégrés et de ressources d'identité. Ces données par défaut sont disponibles sur Amazon CloudWatch. Pour afficher l'ensemble des données d'observabilité dans la CloudWatch console ou pour générer des métriques d'exécution personnalisées pour les agents, vous devez instrumenter votre code à l'aide du SDK ADOT ( AWS Distro for Open Telemetry).

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 métriques d'observabilité sur la page d'observabilité de l'IA générative de 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

Permettre l' AgentCore observabilité

Pour consulter les métriques, 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 plages de ressources de mémoire fournies par le service, vous devez également activer le suivi lorsque vous créez une mémoire. Consultez Activer 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 comment 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 SDK.

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 Transaction search.

  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 la AWS CLI ou un AWS SDK pour activer Transaction Search, configurez d'abord les autorisations nécessaires pour ingérer des spans 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 AWS X-Ray autorise l'envoi de traces aux CloudWatch journaux.

    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 intégrée dans 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 la AWS CLI, 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 la AWS CLI, 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 Amazon Bedrock Runtime AgentCore

Astuce

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

Avec le AgentCore runtime, une fonctionnalité d'Amazon Bedrock AgentCore, vous pouvez configurer un agent pour qu'il envoie ses spans au même groupe de CloudWatch journaux Amazon que les journaux de l'agent. Avec cette configuration, les spans sont dirigés vers le flux de spans journaux entrant/aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>, plutôt que vers le groupe de aws/spans journaux partagé. Vous pouvez conserver les spans, les journaux structurés et les sorties standard dans un seul groupe de journaux par agent, étendre le contrôle d'accès et le chiffrement à un agent individuel et exporter la télémétrie à partir d'un seul emplacement.

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

Vous pouvez remplacer la valeur par défaut d'un agent individuel par la variable d'UNIFIED_TRACES_DESTINATION_ENABLEDenvironnement sur le runtime de votre agent :

  • Pour activer un agent existant qui utilise le groupe de aws/spans journaux partagé, 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 fournit ensuite les plages de l'agent au groupe de aws/spans journaux partagé.

AgentCore Pour que des intervalles soient fournis au groupe de journaux de l'agent, les conditions suivantes doivent être remplies :

  • Activez la recherche de CloudWatch transactions dans votre compte et envoyez des segments de suivi à Amazon CloudWatch Logs. Sans Transaction Search, AgentCore impossible de fournir 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 distribution 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 ADOT version 0.18.0 ou ultérieure (). aws-opentelemetry-distro>=0.18.0 Les versions antérieures ignorent la configuration de destination des intervalles et fournissent des intervalles au groupe de aws/spans journaux partagé.

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

Permettre l'observabilité dans le code des agents pour les AgentCore-hosted agents

Outre les métriques générées par le service, AgentCore vous pouvez également collecter des données de durée et de suivi ainsi que des métriques personnalisées émises à partir du code de votre agent.

Lorsque vous utilisez des frameworks d'agents tels que Strands LangChainou CrewAI avec des bibliothèques d'instrumentation tierces prises en charge, le framework lui-même intègre la prise en charge des conventions sémantiques OTEL et GenAI, et il peut également être instrumenté avec un package d'instrumentation automatique tel que. opentelemetry-instrument-langchain Il est également possible d'envoyer des conventions sémantiques, de la télémétrie et des spans à l'IA générative en définissant un traceur personnalisé. AgentCore prend en charge l'utilisation des bibliothèques d'instrumentation suivantes dans votre infrastructure d'agents :

Pour consulter 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 ADOT ( AWS Distro for Open Telemetry) au code de votre agent.

Note

Avec AgentCore, vous pouvez également consulter les métriques des agents qui ne s'exécutent pas 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 AgentCore non-agents. Consultez les instructions de la section Activation de l'observabilité pour les agents hébergés AgentCore à l'extérieur 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 indiquer à 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.10.0 boto3

    Vous pouvez également installer les dépendances directement :

    pip install aws-opentelemetry-distro>=0.10.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 paramètre traceId=<traceId> défini.

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

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 CloudWatch Transaction Search et ajouter le SDK ADOT à votre code.

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

Le collecteur ADOT 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 de la télémétrie depuis un agent hébergé en dehors de l' AgentCore environnement d'exécution, vous devez utiliser le SDK ADOT ou la couche Lambda AWS pour. OpenTelemetry

Pour les agents exécutés en dehors de l' AgentCore environnement d'exécution, vous devez également créer un groupe journal 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 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 configurez OTEL_EXPORTER_OTLP_TRACES_HEADERS l'attribution de 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. Utilisez la même politique que celle décrite dans Enabling CloudWatch Transaction Search, en insérant l'ARN de votre groupe de logsResource. Sans cette politique, X-Ray vous ne pouvez pas fournir de spans à votre groupe de logs.

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 les conventions sémantiques, la télémétrie et les spans à Generative AI. 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

Support de l'identifiant de session

Pour propager l'identifiant de session, vous devez l'invoquer en utilisant l'identifiant de session dans le bagage 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é pour le AgentCore temps d'exécution, la mémoire, la passerelle, les outils intégrés et les 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, pour ce qui est de la mémoire, de la passerelle et des ressources d'outils intégrées, les destinations des journaux AgentCore ne sont pas configurées automatiquement 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 du groupe de journaux par défaut pour les ressources de mémoire et de passerelle est au /aws/vendedlogs/bedrock-agentcore/{resource-type}/APPLICATION_LOGS/{resource-id} format « where {resource-type} is memory or gateway ».

Pour les journaux de mémoire et de passerelle, vous pouvez également configurer les destinations des journaux dans les journaux Amazon S3 ou dans 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 les sections 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 pour la mémoire ou les journaux de passerelle dans la AgentCore console, suivez les procédures suivantes.

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

  2. Ouvrez la page Mémoire dans 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 jusqu'au volet de livraison du journal 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 de champs, le format de sortie et le séparateur de champs selon la configuration souhaitée.

  10. Choisissez Ajouter.

Gateway
  1. ====== Pour configurer la livraison des journaux pour les ressources de 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 jusqu'au volet de livraison du journal 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 de champs, le format de sortie et le séparateur de champs selon la configuration souhaitée.

  9. Choisissez Ajouter.

Runtime
  1. ====== Pour configurer la livraison 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 des agents d'exécution, sélectionnez l'agent d'exécution pour lequel vous souhaitez configurer une destination de journal.

  4. Faites défiler la page jusqu'au volet de livraison du journal et, dans le menu déroulant Ajouter, choisissez la destination de journalisation : Amazon CloudWatch Logs, Amazon S3 ou Amazon Data Firehose.

  5. Configurez les détails de livraison du journal suivants, 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 le statut de livraison du journal est défini sur Livraison active.

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

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

  3. Dans le volet Built-in Outils, dans les outils d'interprétation 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 la page jusqu'au volet de livraison du journal et, dans le menu déroulant Ajouter, choisissez la destination de journalisation : Amazon CloudWatch Logs, Amazon S3 ou Amazon Data Firehose.

  5. Configurez les détails de livraison du journal suivants, 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 le statut de livraison du journal est défini sur Livraison active.

Identity
  1. WorkloadIdentity l'activation de la livraison 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 des agents.

    Pour configurer la livraison 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 livraison du journal et, dans le menu déroulant Ajouter, choisissez la destination de journalisation : Amazon CloudWatch Logs, Amazon S3 ou Amazon Data Firehose.

  4. Configurez les détails de livraison du journal suivants, 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 le statut de livraison du journal est défini sur Livraison active.

Configuration du suivi de la livraison à CloudWatch l'aide de la console

Cette section décrit comment activer la livraison de traces CloudWatch pour suivre le flux d'interactions dans votre application, vous permettant ainsi de visualiser les demandes, d'identifier les obstacles aux 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 dans 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 Suivi, choisissez Modifier, basculez le widget sur Activer, puis sélectionnez 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 des agents d'exécution, sélectionnez l'agent pour lequel vous souhaitez activer le suivi.

  4. Dans le volet Suivi, choisissez Modifier, basculez le widget sur Activer, puis sélectionnez Enregistrer.

    AgentCore permet le suivi de l'agent sélectionné. Les intervalles 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 d'intervalle partagée. Pour plus d'informations, consultez Span destination pour les agents hébergés dans Amazon Bedrock AgentCore Runtime.

    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 des 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 Suivi, choisissez Modifier, basculez le widget sur Activer, puis sélectionnez Enregistrer.

    WorkloadIdentity le suivi 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 les outils d'interprétation 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 suivi.

  4. Dans le volet Suivi, choisissez Modifier, basculez le widget sur Activer, puis sélectionnez Enregistrer.

    Le suivi sera activé pour l'interpréteur de code ou l'outil de navigateur sélectionné et les intervalles seront disponibles dans le groupe de aws/spans journaux.

Gateway
  1. ====== Pour configurer le suivi des ressources de 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 Suivi, choisissez Modifier, basculez le widget sur Activer, puis sélectionnez Enregistrer.

    Le suivi 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 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 Suivi, choisissez Modifier, basculez le widget sur Activer, puis sélectionnez Enregistrer.

    WorkloadIdentity le suivi 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 avant de 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é d'API pour laquelle vous souhaitez activer le suivi.

  4. Dans le volet Suivi, choisissez Modifier, basculez le widget sur Activer, puis sélectionnez 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 livraison 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 du 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 appelez votre agent afin d'améliorer l'observabilité et les capacités 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)

Root=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 parent (service précédent) et la décision d'échantillonnage pour le suivi. Échantillonnage = 1 signifie un échantillonnage à 100 %. Parent est également le format X-Ray Trace. OTEL générera automatiquement les identifiants de suivi s'ils ne sont pas fournis.

parent de trace

En-tête de traçage standard du W3C

00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

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

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

AgentCore identifiant de session

A1B2C3D4-5678-90AB-CDEF-ExempleAAAAA

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

identifiant de session mcp

Identifiant de session MCP

MCP-A1B2C3D4-5678-90AB-CDEF-ExempleAAAAA

Identifie une session dans la plateforme cloud gérée. Permet le suivi des opérations dans l'ensemble de l'écosystème MCP.

état de trace

Informations supplémentaires sur l'état du suivi

congo=t61rc E, rojo=00f067aa0ba902b7 WkgMz

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

bagages

Propagation du contexte pour le traçage distribué

UserID=Alice, ServerRegion=US-East-1

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

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

Vous pouvez appeler 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 d' Build-in outils suivantes afin d'améliorer l'observabilité et les capacité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)

Root=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 parent (service précédent) et la décision d'échantillonnage pour le suivi. Échantillonnage = 1 signifie un échantillonnage à 100 %. Parent est également le format X-Ray Trace. OTEL générera automatiquement les identifiants de suivi s'ils ne sont pas fournis.

parent de trace

En-tête de traçage standard du W3C

00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01

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

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

Vous pouvez appeler 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 capacité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)

Root=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 parent (service précédent) et la décision d'échantillonnage pour le suivi. Échantillonnage = 1 signifie un échantillonnage à 100 %. Parent est également le format X-Ray Trace. OTEL générera automatiquement les identifiants de suivi s'ils ne sont pas fournis.

Bonnes pratiques en matière d'observabilité

Tenez compte des meilleures 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 identifiant de session pour les demandes connexes afin de maintenir le contexte des interactions.

  • Implémenter le suivi distribué : utilisez les en-têtes fournis pour activer le suivi de bout en bout entre les composants de votre application.

  • Ajoutez des attributs personnalisés : améliorez vos traces et vos statistiques avec des attributs personnalisés qui fournissent un contexte supplémentaire pour le dépannage et l'analyse.

  • Surveillez l'utilisation des ressources : prêtez attention aux indicateurs d'utilisation de la mémoire pour optimiser les performances de votre agent.

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

Utilisation d'autres plateformes d'observabilité

Pour intégrer des agents hébergés dans l' AgentCore environnement d'exécution à d'autres plateformes d'observabilité afin de capturer et de visualiser les résultats 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 du AgentCore moteur d'exécution, garantissant ainsi qu'aucune des configurations ADOT par défaut n'est définie.