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 o reasonerrorCode 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 ClusterSizeIncreasedeventos , NodeCreatedNodeAdded, NodeDeallocated, , NodeStartedy 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 NodeCreatedeventos , NodeDeallocated, NodeStartedy 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.