Ereignisse
CycleCloud 8.0 generiert Ereignisse , wenn bestimmte Änderungen vorgenommen werden (z. B. wenn ein Knoten erstellt oder ein Cluster gelöscht wird). Einige Ereignisse sind sofort (z. B. löschen einen Cluster), und einige Ereignisse stellen Übergänge dar (z. B. das Erstellen eines Knotens, was das Erstellen eines virtuellen Computers impliziert). In diesen Fällen wird das Ereignis am Ende des Übergangs gesendet, unabhängig davon, ob er erfolgreich war oder nicht.
CycleCloud kann so konfiguriert werden, dass es in einem Event Grid-Thema veröffentlicht wird, indem es auf der Seite CycleCloud-Einstellungen in CycleCloud verbunden wird. Event Grid-Ereignisabonnements können an das Thema angefügt werden, um die Ereignisse an ein Ziel wie eine Speicherwarteschlange weiterzuleiten, wo ein Programm Ereignisse nutzen und verarbeiten kann.
Ereignisobjekte
Die Ereignisse befinden sich im Event Grid-Standardschema. Alle CycleCloud-spezifischen Elemente befinden sich in der data
-Eigenschaft des -Ereignisses.
Name | Typ | BESCHREIBUNG |
---|---|---|
Eventid | String | Eindeutige Identifizierung des Ereignisses |
eventTime | String | Die Uhrzeit dieses Ereignisses (yyyy-MM-ttTHH:mm:ss. SSSZZ) |
eventType | String | Die Art des Zustandsübergangs, der stattgefunden hat (z. B. Microsoft.CycleCloud.NodeCreated ) |
subject | String | Die betroffene Ressource (siehe Ereignissubjekt) |
dataVersion | String | Das schema, das für data (derzeit "1") verwendet wird |
Darüber hinaus gibt es mehrere benutzerdefinierte Eigenschaften in data
für fast alle Ereignisse:
Eigenschaft | Typ | BESCHREIBUNG |
---|---|---|
status | Status (Zeichenfolge) | Ob dieser Übergang erfolgreich war oder nicht |
reason | Ursache (Zeichenfolge) | Warum dieses Ereignis initiiert wurde |
message | String | Eine lesbare Zusammenfassung dieses Ereignisses |
errorCode | String | Der Code für diesen Vorgang, wenn er fehlgeschlagen ist oder nicht verfügbar war. Beachten Sie, dass dies direkt von Azure-Aufrufen stammt und möglicherweise nicht für alle Fehler vorhanden ist. |
Clusterereignisse
CycleCloud sendet Ereignisse, wenn Cluster geändert werden. Clusterereignisse enthalten die folgenden allgemeinen Eigenschaften in data
:
Eigenschaft | Typ | BESCHREIBUNG |
---|---|---|
clusterName | String | Der Name des Clusters |
Microsoft.CycleCloud.ClusterStarted
Dieses Ereignis wird ausgelöst, wenn ein Cluster gestartet wird.
Microsoft.CycleCloud.ClusterTerminated
Dieses Ereignis wird ausgelöst, wenn ein Cluster beendet wird.
Microsoft.CycleCloud.ClusterDeleted
Dieses Ereignis wird ausgelöst, wenn ein Cluster gelöscht wird.
Microsoft.CycleCloud.ClusterSizeIncreased
Dieses Ereignis wird ausgelöst, wenn Knoten dem Cluster hinzugefügt werden. Es gibt ein Ereignis für jeden hinzugefügten Knotensatz. (Knoten in einer Gruppe haben alle dieselbe Definition.)
Eigenschaft | Typ | BESCHREIBUNG |
---|---|---|
nodesRequested | Integer | Wie viele Knoten wurden für diesen Satz angefordert? |
NodesHinfügt | Integer | Wie viele Knoten dem Cluster tatsächlich hinzugefügt wurden |
nodeArray | String | Das nodearray, aus dem diese Knoten erstellt wurden |
subscriptionId | String | Die Abonnement-ID für die Ressourcen dieses Knotens |
region | String | Der Speicherort dieses Knotens |
vmSku | String | Die SKU (d.h. computertyp) für den virtuellen Computer |
priority | String | Das vm-Preismodell in Kraft (entweder "normal" oder "spot") |
placementGroupId | String | Die Platzierungsgruppe, in der sich diese Knoten befinden, falls vorhanden |
Knotenereignisse
CycleCloud sendet Ereignisse, wenn Knoten den Zustand ändern. Knotenereignisse enthalten zusätzliche Informationen in der data
-Eigenschaft:
Eigenschaft | Typ | BESCHREIBUNG |
---|---|---|
status | Status (Zeichenfolge) | Ob dieses Ereignis erfolgreich war oder nicht |
clusterName | String | Der Name des Clusters, in dem sich dieser Knoten befindet. Namen sind im Laufe der Zeit nicht eindeutig. |
nodeName | String | Der Name des knotens, der betroffen ist. Namen sind im Laufe der Zeit nicht eindeutig. |
nodeId | String | Die ID dieses Knotens. Knoten-IDs sind im Laufe der Zeit eindeutig, und sobald ein Knoten gelöscht wurde, wird die ID nicht wiederverwendet. |
nodeArray | String | Der Name des Knotenarrays, aus dem dieser Knoten erstellt wurde |
resourceId | String | Die Azure-Ressource für den virtuellen Computer, falls eine erstellt wurde |
subscriptionId | String | Die Abonnement-ID für die Ressourcen dieses Knotens |
region | String | Der Speicherort dieses Knotens |
vmSku | String | Die SKU (d.h. Computertyp) für den virtuellen Computer |
priority | String | Das vm-Preismodell in Kraft (entweder "normal" oder "spot") |
placementGroupId | String | Die Platzierungsgruppe, in der sich dieser Knoten befindet, falls vorhanden |
retryCount | Integer | Wie oft diese spezifische Aktion zuvor versucht wurde (siehe Wiederholungsanzahl) |
Planen | (Objekt) | Eine Karte der Phasen in diesem Ereignis und ihrer Dauer (siehe Timing) |
Microsoft.CycleCloud.NodeAdded
Dieses Ereignis wird für jeden Knoten ausgelöst, der einem Cluster hinzugefügt wird. (Informationen zum Abrufen eines Ereignisses für eine Gruppe von Knoten, die gleichzeitig hinzugefügt wurden, finden Sie unter ClusterSizeIncreased.) Dies wird gesendet, wenn der Knoten zum ersten Mal auf der Benutzeroberfläche angezeigt wird, sodass er keine Zeitsteuerungsinformationen enthält.
Microsoft.CycleCloud.NodeCreated
Dieses Ereignis wird jedes Mal ausgelöst, wenn ein Knoten zum ersten Mal gestartet wird (d. h. eine VM wird dafür erstellt). Dieses Ereignis enthält die folgenden Zeitinformationen:
-
Create
: Die Gesamtzeit zum Erstellen des Knotens. Dazu gehören das Erstellen des virtuellen Computers und das Konfigurieren des virtuellen Computers. -
CreateVM
: Wie lange es gedauert hat, den virtuellen Computer zu erstellen. -
Configure
: Wie lange es gedauert hat, Software zu installieren und den Knoten zu konfigurieren.
Microsoft.CycleCloud.NodeDeallocated
Dieses Ereignis wird jedes Mal ausgelöst, wenn die Zuordnung eines Knotens aufgehoben wird. Dieses Ereignis enthält die folgenden Zeitinformationen:
-
Deallocate
: Die Gesamtzeit zum Aufheben der Zuordnung des Knotens. -
DeallocateVM
: Wie lange es gedauert hat, die Zuordnung des virtuellen Computers aufgehoben zu haben.
Microsoft.CycleCloud.NodeStarted
Dieses Ereignis wird jedes Mal ausgelöst, wenn ein Knoten aus dem Status "Zuordnung aufgehoben" neu gestartet wird. Dieses Ereignis enthält die folgenden Zeitinformationen:
-
Start
: Die Gesamtzeit, die zum Neustarten des freigegebenen Knotens benötigt wurde. -
StartVM
: Wie lange es gedauert hat, die freigegebene VM zu starten.
Microsoft.CycleCloud.NodeTerminated
Dieses Ereignis wird jedes Mal ausgelöst, wenn ein Knoten beendet und der virtuelle Computer gelöscht wird. Dieses Ereignis enthält die folgenden Zeitinformationen:
-
Terminate
: Die Gesamtdauer, die zum Beenden des Knotens benötigt wurde. -
DeleteVM
: Wie lange es gedauert hat, den virtuellen Computer zu löschen.
Subject
Jedes Ereignis verfügt über einen "Betreff", der zum Filtern in Event Grid verwendet werden kann. Ereignisse in CycleCloud weisen Themen im folgenden Muster auf:
-
/sites/SITENAME
: für Ereignisse, die für eine bestimmte CycleCloud-Installation spezifisch sind -
/sites/SITENAME/clusters/CLUSTERNAME
: für Ereignisse auf Clusterebene -
/sites/SITENAME/clusters/CLUSTERNAME/nodes/NODENAME
: für Ereignisse auf Knotenebene
Dies ermöglicht das "Eingrenzen" eines Event Grid-Abonnements auf ein bestimmtes Präfix, um eine Teilmenge von Ereignissen zu sammeln. Dies kann in Verbindung mit der Ereignistypfilterung verwendet werden.
Status
-
Succeeded
: Der Vorgang war erfolgreich. -
Failed
: Der Vorgang war nicht erfolgreich. Es gibt häufig einereason
und/odererrorCode
eine Gruppe. -
Canceled
: Der Vorgang wurde abgebrochen.
`Reason`
Einige Ereignisse haben einen Grund dafür, dass sie initiiert wurden. Sofern nicht anders angegeben, werden diese für die ClusterSizeIncreased
Ereignisse , , NodeCreated
NodeAdded
, NodeDeallocated
, NodeStarted
und NodeTerminated
festgelegt.
-
Autoscaled
: Der Knoten wurde als Reaktion auf eine Anforderung zur automatischen Skalierung über die API geändert. -
UserInitiated
: Der Vorgang wurde direkt über die Benutzeroberfläche oder CLI ausgeführt. -
System
: Der Vorgang wurde von CycleCloud initiiert (z. B. werden Ausführungsknoten standardmäßig automatisch aus dem Cluster entfernt, wenn sie beendet werden). -
SpotEvicted
: Das Ereignis wurde ausgelöst, weil eine Spot-VM entfernt wurde (nur NodeTerminated-Ereignisse). -
VMDisappeared
: Das Ereignis wurde ausgelöst, weil eine Nicht-Spot-VM verschwunden ist (nur NodeTerminated-Ereignisse) -
AllocationFailed
: Der virtuelle Computer konnte aufgrund von Platzierungs- oder Kapazitätseinschränkungen nicht zugeordnet werden (nur NodeTerminated/NodeDeallocated-Ereignisse, wobei der status das Ergebnis des Vorgangs zum Beenden/Aufheben der Zuordnung angibt).
Hinweis
Wird reason
für NodeTerminated-Ereignisse festgelegt, um anzugeben, warum der Knoten beendet wurde.
Wenn ein Knoten aufgrund der Kapazität nicht erstellt werden kann, schlägt er mit dem spezifischen Fehlercode aus Azure (von dem mehrere vorhanden sind) fehl.
Der Knoten wird dann automatisch beendet, und der Grund für die Beendigung ist AllocationFailed
.
Wenn eine ausgeführte Spot-VM entfernt wird, war der Erstellungsvorgang bereits erfolgreich.
Der Knoten wird dann automatisch beendet, und der Grund für das Beendigungsereignis ist SpotEvicted
.
Zeitliche Steuerung
Einige Ereignisse enthalten Zeitinformationen. Der timing
Eintrag in data
ist ein Objekt mit Schlüsseln, die den Phasen des Ereignisses entsprechen, und Werten als Gesamtsekunden. Jedem Ereignis können mehrere Zeitsteuerungsphasen zugeordnet sein. Angenommen, für instance wird einem Cluster ein Knoten hinzugefügt, gestartet und beendet:
! Event Grid-Zeitsteuerungsdiagramm
- T1: Der Benutzer fügt einen Knoten hinzu. Ein
NodeAdded
Ereignis wird ohne Zeitpunkt gesendet. - T2: Der Create-VM-Vorgang schlägt fehl, daher
NodeCreated
wird mit dem status Failed und den folgenden Zeitinformationen gesendet:-
Create
: T2-T1 -
CreateVM
: T2-T1
-
- T3: Benutzer klickt auf Wiederholen
- T4: Der Vorgang Create-VM ist erfolgreich, sodass der Knoten mit der Installation der Software beginnt.
- T5. Die Software wird erfolgreich installiert, sodass
NodeCreated
die status Erfolgreich und die folgenden Zeitsteuerungsinformationen gesendet werden:-
Create
: (T5-T3) -
CreateVM
: (T4-T3) -
Configure
: (T5-T4)
-
- T6: Der Benutzer klickt auf Beenden.
- T7: Der Delete-VM-Vorgang ist erfolgreich, daher
NodeTerminated
wird mit dem Status Erfolgreich und den folgenden Zeitinformationen gesendet:-
Started
: T6-T5 -
Terminate
: T7-T6 -
DeleteVM
: T7-T6
-
Vorherige Zustandssteuerung
Wenn ein Knoten zum ersten Mal in einen Zustand wechselt (ob erfolgreich oder nicht), hat er keinen vorherigen Zustand. Wenn der Zielzustand nach diesem Zeitpunkt geändert wird, wird die im vorherigen Zustand verbrachte Zeit in das Ereignis für den neuen Zielzustand eingeschlossen. Beachten Sie, dass dies nur enthalten ist, wenn der vorherige Zustand erfolgreich erreicht wurde. Daher messen diese Zeiteinträge die Dauer für Folgendes:
-
Started
: Vor diesem Ereignis wurde der Knoten ausgeführt (d. h. grün). -
Deallocated
: Vor diesem Ereignis wurde die Zuordnung des Knotens aufgehoben. -
Terminated
: Vor diesem Ereignis war der Knoten deaktiviert.
Dies kann für instance verwendet werden, um nachzuverfolgen, wie lange eine Spot-VM ausgeführt wurde, bevor sie entfernt wurde.
Wiederholungszähler
Einige Vorgänge können in CycleCloud wiederholt werden, wenn sie fehlschlagen. Diese Vorgänge spiegeln sich in den NodeCreated
Ereignissen , NodeDeallocated
, NodeStarted
und NodeTerminated
wider. Diese Ereignisse enthalten eine optionale retryCount
Eigenschaft für die -Eigenschaft des Ereignisses data
, die angibt, wie oft der Vorgang zuvor versucht wurde. Diese Eigenschaft ist in nachfolgenden Wiederholungsversuchen enthalten, unabhängig davon, ob diese Versuche erfolgreich oder fehlgeschlagen sind.