Interroger les journaux d’épisodes

Bonsai peut collecter des données d’épisode, d’itération et de simulation pendant l’apprentissage et l’évaluation. Bonsai provisionne un espace de travail Azure Log Analytics chaque fois que vous créez un espace Bonsai de travail et écrit des données de journal dans Azure Log Analytics afin de pouvoir interroger les informations le long des autres données de journal que vous pouvez collecter.

Avant de commencer

  • Vous devez activer la journalisation pour capturer les données de journal à partir de l’entraînement du cerveau. Pour activer la journalisation avec l’interface Bonsai utilisateur ou l’interface CLI, suivez les instructions des données de simulation de journal.

Conseil

Bonsai enregistre automatiquement les données d’itération pour toutes les instances de simulateur associées aux évaluations personnalisées. Vous devez uniquement configurer la journalisation manuellement si vous souhaitez capturer les informations système.

Étape 1 : Ouvrir votre espace de travail Log Analytics

  1. Connectez-vous au portail Azure.
  2. Ouvrez la liste des espaces de Bonsai travail associés à votre compte.
  3. Cliquez sur l’espace de travail pour lequel vous souhaitez interroger les journaux.

    Logs workspace link in Azure portal

  4. Sélectionnez Journaux dans la section Général de la navigation du portail.

Notes

La première fois que vous ouvrez la page Journaux, Azure vous présente une superposition pleine de requêtes de pré-package. Pour éviter de voir ce panneau à chaque fois, assurez-vous que le curseur en haut du panneau libellé « Show every time » (Afficher à chaque fois) est désactivé.

Étape 2 : Écrire une requête de journal Azure

Bonsai les données sont stockées dans les journaux personnalisés suivants :

  • EpisodeLog_CL : données de niveau épisode. Une exécution d’apprentissage aura plusieurs entrées d’épisode.
  • IterationLog_CL : données de niveau itération. Un épisode aura plusieurs entrées d’itération.
  • ContainerEvent_CL : données de niveau système relatives aux interactions entre Azure Container Registry et les instances de conteneur utilisées pour la simulation. Disponibles uniquement quand l’indicateur include-system-logs est utilisé.
  • ContainerInstanceLog_CL : données de niveau système relatives aux instances de simulateur individuelles journalisées pendant l’apprentissage. Disponibles uniquement quand l’indicateur include-system-logs est utilisé.

Les colonnes de journal les plus importantes Bonsai pour chaque tableau sont indiquées ci-dessous.

Bonsai journalisation des tables et des colonnes clés

EpisodeLog_CL

Nom de la colonne Description
AssessmentId_s ID d’objet Azure de l’évaluation dont l’épisode faisait partie. Défini uniquement si la journalisation s’est produite pendant une évaluation.
AssessmentName_s Nom personnalisé de l’évaluation dont l’épisode faisait partie. Défini uniquement si la journalisation s’est produite pendant une évaluation.
BrainDisplayName_s Nom sensible à la casse du Bonsai cerveau. Également répertorié dans l’interface Bonsai utilisateur.
BrainName_s Nom non sensible à la casse du Bonsai cerveau. Également utilisé pour référencer des cerveaux avec l’interface Bonsai CLI.
BrainVersionId_g ID d’objet Azure de la version de cerveau.
BrainVersion_d Version de cerveau sous forme d’entier.
ConceptName_s Concept Inkling formé.
CumulativeReward_d Score de récompense final pour l’épisode.
EndTime_t Horodatage UTC de fin de l’épisode.
EpisodeId_g ID d’objet Azure de l’objet de données contenant les données d’épisode brutes.
EpisodeType_s Indique si l’épisode a été journalisé au cours de l’apprentissage ou de l’évaluation (non spécifié).
FinishReason_s Indique la raison pour laquelle l’épisode s’est terminé.
GoalMetrics_s Objet JSON avec des métriques de niveau itération pour des objectifs Inkling avoid, drive et reach. Les objectifs non utilisés sont vides.
LessonIndex_d Index croissant de la leçon pour la session de formation ou d’évaluation donnée, à partir de 1.
SessionId_s ID d’objet Azure du simulateur géré.
SimConfig_s Objet JSON avec les informations de configuration sim de départ pour cet épisode.
SimId_s Adresse IP de conteneur du simulateur géré.
StartTime_t Horodatage UTC de début de l’épisode.
TenantId Locataire Azure sous lequel l’entrée de journal a été générée.
TimeGenerated Horodateur UTC de l’entrée de journal.
Type Type d’entrée de journal. Toujours défini sur « EpisodeLog_CL ».
WorkspaceId_g ID d’objet Azure de l’espace Bonsai de travail.

IterationLog_CL

Nom de la colonne Description
BrainAction_s Actions par itération retournées par le cerveau, après transformation SimState.
BrainDisplayName_s Nom complet du Bonsai cerveau. Répertorié dans l’interface Bonsai utilisateur.
BrainName_s Nom interne du Bonsai cerveau. Utilisé pour référencer des cerveaux avec l’interface Bonsai CLI.
BrainVersionId_g ID d’objet Azure de la version de cerveau.
BrainVersion_d Version du cerveau affichée dans l’interface Bonsai utilisateur.
EpisodeId_g ID d’objet Azure de l’objet de données contenant les données d’épisode brutes.
EpisodeIndex_d Index croissant de l’épisode pour la leçon donnée, à partir de 1.
Halted_b Indique si l’épisode associé a été arrêté par l’utilisateur.
IterationIndex_d Index croissant de l’itération pour l’épisode donné, à partir de 1.
ObservableState_s Valeurs d’état transmises au cerveau pour l’itération, après transformation SimState.
Reward_d Récompense incrémentielle attribuée au cerveau pour l’itération.
SessionId_s ID d’objet Azure du simulateur géré.
SimAction_s Valeurs d’action envoyées par le cerveau au simulateur.
SimState_s Valeurs d’état envoyées par le simulateur au cerveau.
TenantId Locataire Azure sous lequel l’espace Bonsai de travail a été provisionné.
Terminal_b Booléen indiquant si l’itération donnée était une itération terminale.
TimeGenerated Horodateur UTC défini automatiquement par Log Analytics au moment de l’entrée de journal.
Timestamp_t Horodatage UTC lorsque les données du journal ont été générées par Bonsai.
Type Type d’entrée de journal. Toujours défini sur « IterationLog_CL ».
WorkspaceId_g ID d’objet Azure de l’espace Bonsai de travail.

ContainerEvent_CL

Nom de la colonne Description
ContainerGroupInstanceId_g ID d’objet Azure de l’instance de groupe de conteneurs ACR utilisée pour la simulation.
ContainerGroup_s Nom respectant la casse de l’instance de groupe de conteneurs ACR utilisée pour la simulation.
ContainerName_s Nom respectant la casse du conteneur ACR individuel pour l’instance de simulateur associée.
Location_s Région de service Microsoft dans laquelle le conteneur a été déployé.
Message Message journalisé à partir du registre de conteneurs Azure.
OSType_s Type de système d’exploitation des instances de conteneur associées.
Reason_s Événement ACR qui a déclenché un message système.
ResourceGroup ID d’objet Azure du groupe de ressources auquel appartient le groupe de conteneurs.
SubscriptionId ID d’abonnement Azure auquel le coût d’exécution du groupe de conteneurs a été facturé.
TimeGenerated Horodateur UTC de l’entrée de journal.
Type Type d’entrée de journal. Toujours défini sur « ContainerEvent_CL ».

ContainerInstanceLog_CL

Nom de la colonne Description
ContainerGroup_s Nom respectant la casse de l’instance de groupe de conteneurs ACR associée dans ContainerEvent_CL.
ContainerID_s ID d’objet Azure de l’instance de conteneur ACR.
ContainerImage_s Nom Azure Container Registry de l’instance de conteneur.
ContainerName_s Nom court de l’instance de conteneur.
Location_s Région de service Microsoft dans laquelle l’instance a été déployée.
Message Message journalisé de l’instance de conteneur.
OSType_s Type de système d’exploitation de l’instance de conteneur (par exemple, Linux).
ResourceGroup ID d’objet Azure du groupe de ressources auquel l’instance de conteneur appartient.
Source_s Indique comment les données de journal ont été capturées.
SubscriptionId ID d’abonnement Azure auquel le coût d’exécution de l’instance de conteneur a été facturé.
TimeGenerated Horodateur UTC de l’entrée de journal.
Type Type d’entrée de journal. Toujours défini sur « ContainerEvent_CL ».

Exemples de requêtes

Répertorier tous les ID de session uniques dans les données des itérations :

IterationLog_CL | distinct SessionId_s

Lier les données d’épisode de haut niveau avec les itérations associées à l’aide de l’ID de session :

IterationLog_CL |
join kind = leftouter (
  EpisodeLog_CL |
  project
    BrainName_s,
    CumulativeReward_d,
    SimConfig_s,
    GoalMetrics_s,
    EpisodeType_s,
    EpisodeId_g
) on EpisodeId_g |
project
  WorkspaceId = WorkspaceId_g, 
  BrainName = BrainName_s,
  BrainVersion = BrainVersion_d, 
  Timestamp = Timestamp_t, 
  SimAction = parse_json(SimAction_s),
  SimState = parse_json(SimState_s), 
  IterationIndex = IterationIndex_d, 
  EpisodeIndex = EpisodeIndex_d, 
  Reward = Reward_d, 
  CumulativeReward = CumulativeReward_d, 
  SimConfig = parse_json(SimConfig_s), 
  GoalMetrics = parse_json(EpisodeType_s), 
  EpisodeType = EpisodeType_s, 
  EpisodeId = EpisodeId_g1 |
order by
  EpisodeIndex asc,
  IterationIndex asc,
  BrainName asc

Étapes suivantes

Pour en savoir plus sur les colonnes de journal Azure standard et la syntaxe de requête de journal Azure, consultez la Documentation Azure Log Analytics.