Eventos
CycleCloud 8.0 genera eventos cuando se producen determinados cambios (por ejemplo, cuando se crea un nodo o se elimina un clúster). Algunos eventos son instantáneos (por ejemplo, eliminar un clúster) y algunos eventos representan transiciones (por ejemplo, la creación de un nodo que implica la creación de una máquina virtual). En estos casos, el evento se envía al final de la transición, ya sea correcto o no.
CycleCloud se puede configurar para publicar en un tema de Event Grid conectándolo en la página Configuración de CycleCloud de CycleCloud . Las suscripciones de eventos de Event Grid se pueden adjuntar al tema para enrutar los eventos a un destino, como una cola de almacenamiento, donde un programa puede consumir eventos y procesarlos.
Objetos de evento
Los eventos están en el esquema estándar de Event Grid. Todos los elementos específicos de CycleCloud están en la data
propiedad del evento.
Nombre | Tipo | Descripción |
---|---|---|
Eventid | String | Identifica de forma única el evento. |
eventTime | String | Hora de este evento (aaaa-MM-ddTHH:mm:ss. SSSZZ) |
eventType | String | El tipo de transición de estado que se produjo (por ejemplo, Microsoft.CycleCloud.NodeCreated ) |
subject | String | El recurso afectado (consulte El asunto del evento) |
dataVersion | String | Esquema en uso para data (actualmente "1") |
Además, hay varias propiedades personalizadas en data
para casi todos los eventos:
Propiedad | Tipo | Descripción |
---|---|---|
status | Estado (cadena) | Si esta transición se realizó correctamente o no |
reason | Motivo (cadena) | Por qué se inició este evento |
message | String | Un resumen legible de este evento |
errorCode | String | Código de esta operación si se produjo un error o no estaba disponible. Tenga en cuenta que esto puede provenir directamente de llamadas de Azure y es posible que no esté presente para todos los errores. |
Eventos de clúster
CycleCloud envía eventos cuando se modifican los clústeres. Los eventos de clúster contienen las siguientes propiedades comunes en data
:
Propiedad | Tipo | Descripción |
---|---|---|
clusterName | String | Nombre del clúster |
Microsoft.CycleCloud.ClusterStarted
Este evento se desencadena cuando se inicia un clúster.
Microsoft.CycleCloud.ClusterTerminated
Este evento se desencadena cuando finaliza un clúster.
Microsoft.CycleCloud.ClusterDeleted
Este evento se desencadena cuando se elimina un clúster.
Microsoft.CycleCloud.ClusterSizeIncreased
Este evento se desencadena cuando se agregan nodos al clúster. Hay un evento para cada conjunto de nodos agregados. (Los nodos de un conjunto tienen la misma definición).
Propiedad | Tipo | Descripción |
---|---|---|
nodesRequested | Entero | Número de nodos solicitados para este conjunto |
nodesAdded | Entero | Número de nodos que se agregaron realmente al clúster |
nodeArray | String | El elemento nodearray a partir de los cuales se crearon estos nodos |
subscriptionId | String | Identificador de suscripción para los recursos de este nodo |
region | String | Ubicación de este nodo |
vmSku | String | SKU (es decir, tipo de máquina) para la máquina virtual |
priority | String | El modelo de precios de máquina virtual en vigor (ya sea "normal" o "spot") |
placementGroupId | String | El grupo de selección de ubicación en el que se encuentran estos nodos, si hay alguno |
Eventos de nodos
CycleCloud envía eventos cuando los nodos cambian de estado. Los eventos de nodo contienen información adicional en la data
propiedad :
Propiedad | Tipo | Descripción |
---|---|---|
status | Estado (cadena) | Si este evento se realizó correctamente o no |
clusterName | String | Nombre del clúster en el que se encuentra este nodo. Los nombres no son únicos a lo largo del tiempo |
nodeName | String | Nombre del nodo que se ve afectado. Los nombres no son únicos a lo largo del tiempo |
nodeId | String | Identificador de este nodo. Los identificadores de nodo son únicos con el tiempo y, una vez que se elimina un nodo, el identificador no se volverá a usar. |
nodeArray | String | Nombre de la matriz nodearray a partir de la que se creó este nodo |
resourceId | String | Recurso de Azure para la máquina virtual, si se ha creado uno. |
subscriptionId | String | Identificador de suscripción para los recursos de este nodo |
region | String | Ubicación de este nodo |
vmSku | String | La SKU (es decir, tipo de máquina) para la máquina virtual |
priority | String | El modelo de precios de la máquina virtual en vigor (ya sea "normal" o "spot") |
placementGroupId | String | El grupo de selección de ubicación en el que se encuentra este nodo, si existe |
retryCount | Entero | Cuántas veces se intentó esta acción específica anteriormente (consulte Número de reintentos) |
control de tiempo | (Objeto) | Un mapa de las fases de este evento y sus duraciones (consulte Tiempo) |
Microsoft.CycleCloud.NodeAdded
Este evento se desencadena para cada nodo que se agrega a un clúster. (Para obtener un evento para un conjunto de nodos agregados a la vez, consulte ClusterSizeIncreased). Esto se envía cuando el nodo aparece por primera vez en la interfaz de usuario, por lo que no tiene ninguna información de tiempo.
Microsoft.CycleCloud.NodeCreated
Este evento se desencadena cada vez que se inicia un nodo por primera vez (es decir, se crea una máquina virtual para él). Este evento contiene la siguiente información de control de tiempo:
-
Create
: tiempo total para crear el nodo. Esto incluye la creación de la máquina virtual y la configuración de la máquina virtual. -
CreateVM
: cuánto tiempo se tarda en crear la máquina virtual. -
Configure
: cuánto tiempo se tarda en instalar el software y configurar el nodo.
Microsoft.CycleCloud.NodeDeallocated
Este evento se desencadena cada vez que se desasigna un nodo. Este evento contiene la siguiente información de control de tiempo:
-
Deallocate
: tiempo total para desasignar el nodo. -
DeallocateVM
: cuánto tiempo se tarda en desasignar la máquina virtual.
Microsoft.CycleCloud.NodeStarted
Este evento se desencadena cada vez que se vuelve a iniciar un nodo desde un estado desasignado. Este evento contiene la siguiente información de control de tiempo:
-
Start
: el tiempo total necesario para reiniciar el nodo desasignado. -
StartVM
: cuánto tiempo se tarda en iniciar la máquina virtual desasignada.
Microsoft.CycleCloud.NodeTerminated
Este evento se desencadena cada vez que finaliza un nodo y se elimina su máquina virtual. Este evento contiene la siguiente información de control de tiempo:
-
Terminate
: tiempo total que tardó en finalizar el nodo. -
DeleteVM
: cuánto tiempo se tarda en eliminar la máquina virtual.
Asunto
Cada evento tiene un "asunto" que se puede usar para filtrar en Event Grid. Los eventos de CycleCloud tienen temas en el siguiente patrón:
-
/sites/SITENAME
: para eventos específicos de una instalación de CycleCloud determinada -
/sites/SITENAME/clusters/CLUSTERNAME
: para eventos de nivel de clúster -
/sites/SITENAME/clusters/CLUSTERNAME/nodes/NODENAME
: para eventos de nivel de nodo
Esto permite "determinar el ámbito" de una suscripción de Event Grid a un prefijo específico para recopilar un subconjunto de eventos. Esto se puede usar junto con el filtrado de tipo de evento.
Estado
-
Succeeded
: la operación se realizó correctamente. -
Failed
: la operación no se realizó correctamente. A menudo hay oreason
errorCode
un conjunto. -
Canceled
: se canceló la operación.
Motivo
Algunos eventos tienen un motivo por el que se iniciaron. A menos que se indique lo contrario, se establecen en los ClusterSizeIncreased
eventos , NodeCreated
NodeAdded
, NodeDeallocated
, , NodeStarted
y NodeTerminated
.
-
Autoscaled
: el nodo se modificó en respuesta a una solicitud de escalado automático realizada a través de la API. -
UserInitiated
: la operación se realizó directamente a través de la interfaz de usuario o la CLI. -
System
: la operación se inició mediante CycleCloud (por ejemplo, de forma predeterminada, los nodos de ejecución se quitan automáticamente del clúster cuando finalizan). -
SpotEvicted
: el evento se desencadenó porque se desalojado una máquina virtual de acceso puntual (solo eventos NodeTerminated). -
VMDisappeared
: el evento se desencadenó porque una máquina virtual no puntual desapareció (solo eventos NodeTerminated). -
AllocationFailed
: no se pudo asignar la máquina virtual debido a restricciones de ubicación o capacidad (solo eventos NodeTerminated/NodeDeallocated, con el estado que indica el resultado de la operación de finalización o desasignación).
Nota
reason
se establece en eventos NodeTerminated para indicar por qué se finalizó el nodo.
Cuando no se puede crear un nodo debido a la capacidad, se produce un error con el código de error específico de Azure (del que hay varios).
A continuación, el nodo finaliza automáticamente y el motivo de la terminación es AllocationFailed
.
Cuando se expulsa una máquina virtual de acceso puntual en ejecución, la operación de creación ya se ha realizado correctamente.
A continuación, el nodo finaliza automáticamente y el motivo dado para el evento de terminación es SpotEvicted
.
Control de tiempo
Algunos eventos contienen información de tiempo. La timing
entrada de data
es un objeto con claves correspondientes a las fases del evento y valores como segundos totales. Cada evento puede tener varias fases de tiempo asociadas. Por ejemplo, supongamos que se agrega un nodo a un clúster, se inicia y finaliza:
! Diagrama de control de tiempo de Event Grid
- T1: el usuario agrega un nodo. Se envía un
NodeAdded
evento, sin tiempo. - T2: Se produce un error en la operación create-VM, por lo que
NodeCreated
se envía con el estado Error y la siguiente información de tiempo:-
Create
: T2-T1 -
CreateVM
: T2-T1
-
- T3: El usuario hace clic en Reintentar
- T4: la operación Create-VM se realiza correctamente, por lo que el nodo comienza a instalar software.
- T5. El software se instala correctamente, por lo que
NodeCreated
se envía con el estado Correcto y la siguiente información de tiempo:-
Create
: (T5-T3) -
CreateVM
: (T4-T3) -
Configure
: (T5-T4)
-
- T6: El usuario hace clic en Finalizar.
- T7: la operación delete-VM se realiza correctamente, por lo que
NodeTerminated
se envía con un estado correcto y la siguiente información de tiempo:-
Started
: T6-T5 -
Terminate
: T7-T6 -
DeleteVM
: T7-T6
-
Tiempo de estado anterior
La primera vez que un nodo realiza una transición a un estado (ya sea correctamente o no), no tiene ningún estado anterior. Cuando el estado de destino cambia después de ese momento, el tiempo empleado en el estado anterior se incluye en el evento para el nuevo estado de destino. Tenga en cuenta que esto solo se incluye si alcanzó correctamente el estado anterior. Por lo tanto, estas entradas de tiempo miden el tiempo durante lo siguiente:
-
Started
: antes de este evento, el nodo se había estado ejecutando (es decir, verde) -
Deallocated
: antes de este evento, el nodo se había desasignado. -
Terminated
: antes de este evento, el nodo se había desactivado.
Esto se puede usar, por ejemplo, para realizar un seguimiento de cuánto tiempo se estaba ejecutando una máquina virtual de acceso puntual antes de expulsarla.
Número de reintentos
Algunas operaciones se pueden reintentar en CycleCloud si producen un error. Estas operaciones se reflejan en los NodeCreated
eventos , NodeDeallocated
, NodeStarted
y NodeTerminated
. Estos eventos contienen una propiedad opcional retryCount
en la propiedad del data
evento que indica cuántas veces antes de esta operación se intentó realizar. Esta propiedad se incluye en los reintentos posteriores, tanto si esos intentos se realizaron correctamente como si no.