É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 unreason
et/ouerrorCode
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
, NodeStarted
et 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é.