Événements

CycleCloud 8.0 génère des événements lorsque certaines modifications se produisent (par exemple, lorsqu’un nœud est créé ou qu’un cluster est supprimé). Certains événements sont instantanés (par exemple, la suppression d’un cluster), et certains événements représentent des transitions (par exemple, la création d’un nœud qui implique la création d’une machine virtuelle). Dans ce cas, l’événement est envoyé à la fin de la transition, qu’elle réussisse ou non.

CycleCloud peut être configuré pour publier dans une rubrique Event Grid en la connectant dans la page Paramètres CycleCloud dans CycleCloud. Les abonnements aux événements Event Grid peuvent être joints à la rubrique pour acheminer les événements vers une destination, telle qu’une file d’attente de stockage, où un programme peut consommer des événements et les traiter.

Objets d’événement

Les événements se trouvent dans le schéma Event Grid standard. Tous les éléments spécifiques à CycleCloud se trouvent dans la data propriété de l’événement.

Nom Type Description
Eventid String Identifie de manière unique l’événement
eventTime String Heure de cet événement (aaaa-MM-jjTHH :mm :ss. SSSZZ)
eventType String Type de transition d’état qui s’est produite (par exemple, Microsoft.CycleCloud.NodeCreated)
subject String La ressource affectée (voir Objet de l’événement)
dataVersion String Schéma utilisé pour data (actuellement « 1 »)

En outre, il existe plusieurs propriétés personnalisées dans data pour presque tous les événements :

Propriété Type Description
status État (Chaîne) Si cette transition a réussi ou non
reason Raison (Chaîne) Pourquoi cet événement a été lancé
message Chaîne Résumé lisible par l’homme de cet événement
errorCode String Code de cette opération si elle a échoué ou n’était pas disponible. Notez que cela peut provenir directement des appels Azure et peut ne pas être présent pour toutes les défaillances

Événements de cluster

CycleCloud envoie des événements lorsque les clusters sont modifiés. Les événements de cluster contiennent les propriétés courantes suivantes dans data:

Propriété Type Description
clusterName String Nom du cluster

Microsoft.CycleCloud.ClusterStarted

Cet événement est déclenché lorsqu’un cluster est démarré.

Microsoft.CycleCloud.ClusterTerminated

Cet événement est déclenché lorsqu’un cluster est arrêté.

Microsoft.CycleCloud.ClusterDeleted

Cet événement est déclenché lorsqu’un cluster est supprimé.

Microsoft.CycleCloud.ClusterSizeIncreased

Cet événement est déclenché lorsque des nœuds sont ajoutés au cluster. Un événement est ajouté pour chaque ensemble de nœuds. (Les nœuds d’un ensemble ont tous la même définition.)

Propriété Type Description
nodesRequested Integer Nombre de nœuds demandés pour cet ensemble
nœudsAdded Integer Nombre de nœuds réellement ajoutés au cluster
nodeArray String Nœud à partir duquel ces nœuds ont été créés
subscriptionId String ID d’abonnement pour les ressources de ce nœud
region String Emplacement de ce nœud
vmSku String Référence SKU (c’est-à-dire, type d’ordinateur) pour la machine virtuelle
priority String Modèle de tarification de la machine virtuelle en vigueur (« normal » ou « spot »)
placementGroupId String Le groupe de placement dans lequel se trouvent ces nœuds, le cas échéant

Événements de nœud

CycleCloud envoie des événements lorsque les nœuds changent d’état. Les événements de nœud contiennent des informations supplémentaires dans la data propriété :

Propriété Type Description
status État (Chaîne) Si cet événement a réussi ou non
clusterName String Nom du cluster dans lequel se trouve ce nœud. Les noms ne sont pas uniques au fil du temps
nodeName String Nom du nœud affecté. Les noms ne sont pas uniques au fil du temps
nodeId String ID de ce nœud. Les ID de nœud sont uniques au fil du temps, et une fois qu’un nœud est supprimé, l’ID ne sera pas réutilisé.
nodeArray String Nom du nodearray à partir duquel ce nœud a été créé
resourceId String Ressource Azure pour la machine virtuelle, le cas échéant
subscriptionId String ID d’abonnement pour les ressources de ce nœud
region String Emplacement de ce nœud
vmSku String Référence SKU (c’est-à-dire, type d’ordinateur) pour la machine virtuelle
priority String Modèle de tarification de la machine virtuelle en vigueur (« normal » ou « spot »)
placementGroupId String Le groupe de placement dans lequel se trouve ce nœud, le cas échéant
retryCount Integer Nombre de fois où cette action spécifique a été tentée précédemment (voir Nombre de nouvelles tentatives)
minutage (Objet) Carte des étapes de cet événement et de leurs durées (voir Minutage)

Microsoft.CycleCloud.NodeAdded

Cet événement est déclenché pour chaque nœud ajouté à un cluster. (Pour obtenir un événement pour un ensemble de nœuds ajoutés à la fois, consultez ClusterSizeIncreased.) Il est envoyé lorsque le nœud apparaît pour la première fois dans l’interface utilisateur, de sorte qu’il n’a pas d’informations de minutage.

Microsoft.CycleCloud.NodeCreated

Cet événement est déclenché chaque fois qu’un nœud est démarré pour la première fois (c’est-à-dire qu’une machine virtuelle est créée pour celui-ci). Cet événement contient les informations de minutage suivantes :

  • Create: durée totale de création du nœud. Cela inclut la création de la machine virtuelle et la configuration de la machine virtuelle.
  • CreateVM: temps nécessaire à la création de la machine virtuelle.
  • Configure: temps nécessaire pour installer le logiciel et configurer le nœud.

Microsoft.CycleCloud.NodeDeallocated

Cet événement est déclenché chaque fois qu’un nœud est libéré. Cet événement contient les informations de minutage suivantes :

  • Deallocate: durée totale de libération du nœud.
  • DeallocateVM: temps nécessaire pour libérer la machine virtuelle.

Microsoft.CycleCloud.NodeStarted

Cet événement est déclenché chaque fois qu’un nœud est redémarré à partir d’un état libéré. Cet événement contient les informations de minutage suivantes :

  • Start: durée totale du redémarrage du nœud libéré.
  • StartVM: temps nécessaire pour démarrer la machine virtuelle libérée.

Microsoft.CycleCloud.NodeTerminated

Cet événement est déclenché chaque fois qu’un nœud est arrêté et que sa machine virtuelle est supprimée. Cet événement contient les informations de minutage suivantes :

  • Terminate: temps total nécessaire à l’arrêt du nœud.
  • DeleteVM: temps nécessaire à la suppression de la machine virtuelle.

Objet

Chaque événement a un « objet » qui peut être utilisé pour le filtrage dans Event Grid. Les événements dans CycleCloud ont des sujets dans le modèle suivant :

  • /sites/SITENAME: pour les événements spécifiques à une installation CycleCloud donnée
  • /sites/SITENAME/clusters/CLUSTERNAME: pour les événements au niveau du cluster
  • /sites/SITENAME/clusters/CLUSTERNAME/nodes/NODENAME: pour les événements au niveau du nœud

Cela permet de « définir » un abonnement Event Grid à un préfixe spécifique pour collecter un sous-ensemble d’événements. Cela peut être utilisé conjointement avec le filtrage de type d’événement.

Statut

  • Succeeded: l’opération a réussi.
  • Failed: l’opération n’a pas réussi. Il existe souvent un reason et/ou errorCode défini.
  • Canceled: l’opération a été annulée.

Motif

Certains événements ont une raison pour laquelle ils ont été initiés. Sauf indication contraire, ceux-ci sont définis sur les ClusterSizeIncreasedévénements , NodeAdded, NodeCreated, NodeDeallocated, NodeStarted, et NodeTerminated .

  • Autoscaled: le nœud a été modifié en réponse à une demande de mise à l’échelle automatique effectuée via l’API
  • UserInitiated: l’opération a été effectuée directement via l’interface utilisateur ou l’interface CLI
  • System: l’opération a été lancée par CycleCloud (par exemple, par défaut, les nœuds d’exécution sont automatiquement supprimés du cluster lorsqu’ils sont arrêtés)
  • SpotEvicted: l’événement a été déclenché parce qu’une machine virtuelle spot a été supprimée (événements NodeTerminated uniquement)
  • VMDisappeared: l’événement a été déclenché car une machine virtuelle non spot a disparu (événements NodeTerminated uniquement)
  • AllocationFailed: la machine virtuelle n’a pas pu être allouée en raison de contraintes de placement ou de capacité (événements NodeTerminated/NodeDeallocated uniquement, le status indiquant le résultat de l’opération d’arrêt/de libération)

Notes

est reason défini sur les événements NodeTerminated pour indiquer la raison pour laquelle le nœud a été arrêté. Lorsqu’un nœud ne parvient pas à être créé en raison de sa capacité, il échoue avec le code d’erreur spécifique d’Azure (dont il existe plusieurs). Le nœud est alors automatiquement arrêté et la raison de l’arrêt est AllocationFailed. Lorsqu’une machine virtuelle spot en cours d’exécution est supprimée, l’opération de création a déjà réussi. Le nœud est alors automatiquement arrêté et la raison indiquée pour l’événement d’arrêt est SpotEvicted.

Minutage

Certains événements contiennent des informations de minutage. L’entrée timing dans data est un objet avec des clés correspondant aux phases de l’événement et des valeurs sous forme de secondes totales. Plusieurs étapes de minutage peuvent être associées à chaque événement. Par instance, supposons qu’un nœud soit ajouté à un cluster, démarré et terminé :

! Diagramme de minutage Event Grid

  • T1 : l’utilisateur ajoute un nœud. Un NodeAdded événement est envoyé, sans délai.
  • T2 : L’opération de création de machine virtuelle échoue. Il est donc NodeCreated envoyé avec un status d’échec et les informations de minutage suivantes :
    • Create: T2-T1
    • CreateVM: T2-T1
  • T3 : l’utilisateur clique sur Réessayer
  • T4 : l’opération Créer une machine virtuelle réussit, de sorte que le nœud démarre l’installation du logiciel.
  • T5. Le logiciel s’installe correctement. Il est donc NodeCreated envoyé avec une status de Réussite et les informations de minutage suivantes :
    • Create: (T5-T3)
    • CreateVM: (T4-T3)
    • Configure: (T5-T4)
  • T6 : l’utilisateur clique sur Terminer.
  • T7 : L’opération de suppression de machine virtuelle réussit. Il est donc NodeTerminated envoyé avec l’état Réussi et les informations de minutage suivantes :
    • Started: T6-T5
    • Terminate: T7-T6
    • DeleteVM: T7-T6

Minutage de l’état précédent

La première fois qu’un nœud passe à un état (qu’il réussisse ou non), il n’a pas d’état précédent. Lorsque l’état cible est modifié après ce point, le temps passé à l’état précédent est inclus dans l’événement pour le nouvel état cible. Notez que cela n’est inclus que s’il a atteint l’état précédent avec succès. Par conséquent, ces entrées de minutage mesurent la durée des éléments suivants :

  • Started: avant cet événement, le nœud était en cours d’exécution (c’est-à-dire vert)
  • Deallocated: avant cet événement, le nœud avait été libéré
  • Terminated: avant cet événement, le nœud était désactivé

Cela peut être utilisé, pour instance, pour suivre la durée d’exécution d’une machine virtuelle spot avant d’être supprimée.

Nombre de tentatives

Certaines opérations peuvent être retentées dans CycleCloud si elles échouent. Ces opérations sont reflétées dans les NodeCreatedévénements , NodeDeallocated, NodeStartedet NodeTerminated . Ces événements contiennent une propriété facultative retryCount sur la propriété de data l’événement indiquant le nombre de fois où l’opération a été tentée auparavant. Cette propriété est incluse lors des nouvelles tentatives suivantes, si ces tentatives ont réussi ou échoué.