Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’observabilité fournit des insights sur l’état interne et le comportement des flux de travail pendant l’exécution. Cela inclut la journalisation, les métriques et les fonctionnalités de suivi qui permettent de surveiller et de déboguer les flux de travail.
Conseil / Astuce
L’observabilité est une fonctionnalité à l’échelle de l’infrastructure et n’est pas limitée aux flux de travail. Pour plus d’informations, consultez Observabilité.
Outre la télémétrie GenAI standard, les flux de travail du cadre Agent Framework émettent des étendues supplémentaires, des journaux et des métriques pour fournir des informations plus détaillées sur l’exécution du flux de travail. Ces fonctionnalités d’observabilité aident les développeurs à comprendre le flux de messages, les performances des exécuteurs et toutes les erreurs qui peuvent se produire.
Activer l’observabilité
Reportez-vous à l’activation de l’observabilité pour obtenir des instructions sur l’activation de l’observabilité dans vos applications.
Reportez-vous à l’activation de l’observabilité pour obtenir des instructions sur l’activation de l’observabilité dans vos applications.
Étendues de flux de travail
Les segments suivants sont émis pendant l’exécution du flux de travail :
| Nom de l’étendue | Descriptif |
|---|---|
workflow.build |
Émis pour chaque build de flux de travail. |
workflow.session |
Étendue externe représentant toute la durée de vie d’une exécution de flux de travail, du début jusqu’à l’arrêt ou à l’erreur. |
workflow_invoke |
Émis pour chaque cycle d’entrée à arrêter au sein d’une session de flux de travail. |
executor.process {executor_id} |
Émis pour chaque exécuteur traitant un message. L’ID d’exécuteur est ajouté au nom de l’étendue. |
edge_group.process |
Émis pour chaque groupe de périphérie qui traite un message. |
message.send |
Émis pour chaque message envoyé d’un exécuteur à un autre exécuteur. |
Les portées suivantes sont émises pendant l’exécution du flux de travail :
| Nom de l’étendue | Descriptif |
|---|---|
workflow.build |
Émis pour chaque build de flux de travail. |
workflow.run |
Émis pour chaque exécution de flux de travail. |
executor.process {executor_id} |
Émis pour chaque exécuteur traitant un message. L'ID d'exécuteur est ajouté au nom du tracé. |
edge_group.process {edge_group_type} |
Émis pour chaque groupe de périphérie qui traite un message. Le type de groupe d'edge est ajouté au nom du span. |
message.send |
Émis pour chaque message envoyé d’un exécuteur à un autre exécuteur. |
Attributs de plage
Les segments portent des attributs qui fournissent un contexte supplémentaire à l'opération. Les attributs suivants sont définis sur les périmètres de flux de travail :
| Caractéristique | Étendues | Descriptif |
|---|---|---|
workflow.id |
workflow.build, workflow.session |
Identificateur unique du flux de travail. |
workflow.name |
workflow.session |
Nom du workflow. |
workflow.description |
workflow.session |
Description du workflow. |
workflow.definition |
workflow.build |
Définition JSON du graphe de flux de travail. |
session.id |
workflow.session |
Identificateur de session unique. |
executor.id |
executor.process |
Identificateur unique de l’exécuteur. |
executor.type |
executor.process |
Nom de type de l’exécuteur. |
executor.input |
executor.process |
Message d’entrée. Ne configurez que lorsque des données sensibles sont disponibles. |
executor.output |
executor.process |
Sortie de l’exécuteur. Activez uniquement si des données sensibles sont activées. |
message.type |
executor.process, message.send |
Nom du type du message. |
message.content |
message.send |
Contenu du message. Ne définissez que lorsque des données sensibles sont activées. |
message.source_id |
message.send |
ID de l’exécuteur qui a envoyé le message. |
message.target_id |
message.send |
ID de l’exécuteur cible, s’il est spécifié. |
edge_group.type |
edge_group.process |
Type du groupe de bords. |
edge_group.delivered |
edge_group.process |
Indique si le message a été remis (booléen). |
edge_group.delivery_status |
edge_group.process |
Résultat de la livraison (voir État de livraison du groupe Edge). |
error.type |
Toute plage concernant une erreur | Nom du type d’exception. |
| Caractéristique | Étendues | Descriptif |
|---|---|---|
workflow.id |
workflow.build, workflow.run |
Identificateur unique du flux de travail. |
workflow.name |
workflow.run |
Nom du workflow. |
workflow.description |
workflow.run |
Description du workflow. |
workflow.definition |
workflow.build |
Définition JSON du graphe de flux de travail. |
workflow_builder.name |
workflow.build |
Nom du générateur de flux de travail. |
workflow_builder.description |
workflow.build |
Description du générateur de flux de travail. |
executor.id |
executor.process |
Identificateur unique de l’exécuteur. |
executor.type |
executor.process |
Nom de type de l’exécuteur. |
message.type |
executor.process, message.send |
Nom du type du message. |
message.payload_type |
executor.process |
Type de données de la charge utile du message. |
message.destination_executor_id |
message.send |
ID de l’exécuteur cible, s’il est spécifié. |
message.source_id |
edge_group.process |
ID de l’exécuteur qui a envoyé le message. |
message.target_id |
edge_group.process |
ID de l’exécuteur cible, s’il est spécifié. |
edge_group.type |
edge_group.process |
Type du groupe de bords. |
edge_group.id |
edge_group.process |
Identificateur unique du groupe de bordure. |
edge_group.delivered |
edge_group.process |
Indique si le message a été remis (booléen). |
edge_group.delivery_status |
edge_group.process |
Résultat de la livraison (voir État de livraison du groupe Edge). |
Événements d’étendue
Les événements de segment sont des entrées de journal structurées attachées à des segments, fournissant une chronologie des moments clés dans chaque segment.
| Nom de l'événement | Étendues | Descriptif |
|---|---|---|
build.started |
workflow.build |
Émis lorsque le processus de génération commence. |
build.validation_completed |
workflow.build |
Émis quand la validation de la construction réussit. |
build.completed |
workflow.build |
Émis lorsque la build est terminée avec succès. |
build.error |
workflow.build |
Émis lorsque la compilation échoue. |
session.started |
workflow.session |
Émis lorsqu’une session de flux de travail commence. |
session.completed |
workflow.session |
Émis lorsqu’une session de flux de travail est terminée. |
session.error |
workflow.session |
Émis lorsqu’une session de flux de travail rencontre une erreur. |
workflow.started |
workflow_invoke |
Émis lorsqu’un appel de flux de travail commence. |
workflow.completed |
workflow_invoke |
Émis lorsqu’un appel de flux de travail est terminé. |
workflow.error |
workflow_invoke |
Émis lorsqu’un appel de flux de travail rencontre une erreur. |
| Nom de l'événement | Étendues | Descriptif |
|---|---|---|
build.started |
workflow.build |
Émis lorsque le processus de génération commence. |
build.validation_completed |
workflow.build |
Émis lorsque la validation de la construction est réussie. |
build.completed |
workflow.build |
Émis lorsque la build est terminée avec succès. |
build.error |
workflow.build |
Émis lorsque la compilation échoue. |
workflow.started |
workflow.run |
Émis lorsqu’une exécution de flux de travail commence. |
workflow.completed |
workflow.run |
Émis lorsqu’une exécution du flux de travail est terminée. |
workflow.error |
workflow.run |
Émis lorsqu’une exécution de flux de travail rencontre une erreur. |
Liens entre les étendues
Lorsqu’un exécuteur envoie un message à un autre exécuteur, l’étendue message.send est créée en tant qu’enfant de l’étendue executor.process . Toutefois, l'étendue executor.process de l'exécuteur cible n'est pas un enfant de l'étendue message.send, car l'exécution n'est pas imbriquée. Au lieu de cela, l’étendue executor.process de l’exécuteur cible est liée à l’étendue message.send de l’exécuteur source. Cette liaison crée un chemin d'accès traçable via l'exécution du processus de travail sans impliquer une hiérarchie d'appels imbriquée.
La même approche de liaison s’applique aux edge_group.process segments, qui sont liés aux segments sources message.send pour le suivi de la causalité. Cela prend en charge les scénarios de fan-in dans lesquels plusieurs étendues sources contribuent à une étendue de traitement unique.
Statut de livraison du groupe Edge
Les plages de traitement des groupes de bord incluent des attributs d’état de remise qui indiquent le résultat du routage des messages via chaque groupe de bord. L’attribut edge_group.delivery_status est défini sur l’une des valeurs suivantes :
| État | Descriptif |
|---|---|
delivered |
Le message a été remis à l’exécuteur cible. |
dropped type mismatch |
L’exécuteur cible ne peut pas gérer le type de message. |
dropped target mismatch |
Le message a spécifié une cible qui ne correspond pas à cette arête. |
dropped condition false |
La condition de routage à la périphérie a été évaluée comme fausse. |
exception |
Une exception s’est produite pendant le traitement de périphérie. |
buffered |
Le message a été mis en mémoire tampon, en attente de l'arrivée de messages supplémentaires (agrégation). |
L’attribut edge_group.delivered booléen fournit un contrôle rapide pour déterminer si le message a été remis avec succès.
Configuration de la télémétrie
Les données de télémétrie de flux de travail peuvent être activées via la WithOpenTelemetry méthode d’extension sur le générateur de flux de travail. La WorkflowTelemetryOptions classe fournit un contrôle précis sur les portées émises :
| Choix | Par défaut | Descriptif |
|---|---|---|
EnableSensitiveData |
false |
Inclut des entrées brutes, des sorties et du contenu de message dans les attributs d’étendue. |
DisableWorkflowBuild |
false |
Désactive les étendues workflow.build . |
DisableWorkflowRun |
false |
Désactive les étendues workflow.session et workflow_invoke. |
DisableExecutorProcess |
false |
Désactive les intervalles executor.process. |
DisableEdgeGroupProcess |
false |
Désactive les balises edge_group.process. |
DisableMessageSend |
false |
Désactive les balises message.send . |
Avertissement
L’activation des données sensibles entraîne l'inclusion du contenu brut des messages, des entrées des exécutants et des sorties des exécutants dans les données de télémétrie. Activez-le uniquement dans les environnements sécurisés où les données de télémétrie sont correctement protégées.
La télémétrie de flux de travail est activée par le biais de la fonction globale enable_instrumentation() . Lorsque l’instrumentation est activée, toutes les étendues de flux de travail sont émises automatiquement. La configure_otel_providers() fonction peut être utilisée pour configurer des exportateurs pour les traces, les métriques et les journaux.
Avertissement
Passez en revue la configuration de votre pipeline de télémétrie pour vous assurer que les données sensibles sont correctement protégées lors de l’exportation de traces.