Evento

O CycleCloud 8.0 gera eventos quando determinadas alterações ocorrem (por exemplo, quando um nó é criado ou um cluster é eliminado). Alguns eventos são instantâneos (por exemplo, eliminar um cluster) e alguns eventos representam transições (por exemplo, criar um nó que implica criar uma VM). Nestes casos, o evento é enviado no final da transição, quer seja ou não bem-sucedido.

O CycleCloud pode ser configurado para publicar num tópico do Event Grid ao ligá-lo na página Definições do CycleCloud no CycleCloud. As subscrições de eventos do Event Grid podem ser anexadas ao tópico para encaminhar os eventos para um destino, como uma Fila de Armazenamento, onde um programa pode consumir eventos e processá-los.

Objetos de eventos

Os eventos estão no esquema padrão do Event Grid. Todos os elementos específicos do CycleCloud estão na data propriedade no evento.

Nome Tipo Description
eventId String Identifica exclusivamente o evento
eventTime String A hora deste evento (aaaa-MM-ddTHH:mm:ss. SSSZZ)
eventType String O tipo de transição de estado que ocorreu (por exemplo, Microsoft.CycleCloud.NodeCreated)
subject String O recurso afetado (veja Assunto do Evento)
dataVersion String O esquema em utilização para data (atualmente "1")

Além disso, existem várias propriedades personalizadas em data para quase todos os eventos:

Propriedade Tipo Description
status Estado (Cadeia) Se esta transição foi ou não bem-sucedida
reason Motivo (Cadeia) Por que motivo este evento foi iniciado
message String Um resumo legível por humanos deste evento
errorCode String O código para esta operação se tiver falhado ou estiver indisponível. Tenha em atenção que isto pode ser proveniente diretamente de chamadas do Azure e pode não estar presente para todas as falhas

Eventos de cluster

O CycleCloud envia eventos quando os clusters são modificados. Os eventos de cluster contêm as seguintes propriedades comuns em data:

Propriedade Tipo Description
clusterName String O nome do cluster

Microsoft.CycleCloud.ClusterStarted

Este evento é acionado quando um cluster é iniciado.

Microsoft.CycleCloud.ClusterTerminated

Este evento é acionado quando um cluster é terminado.

Microsoft.CycleCloud.ClusterDeleted

Este evento é acionado quando um cluster é eliminado.

Microsoft.CycleCloud.ClusterSizeIncreased

Este evento é acionado quando os nós são adicionados ao cluster. Existe um evento para cada conjunto de nós adicionados. (Todos os nós num conjunto têm a mesma definição.)

Propriedade Tipo Description
nósRequested Número inteiro Quantos nós foram pedidos para este conjunto
nósAdded Número inteiro Quantos nós foram realmente adicionados ao cluster
nodeArray String A nodearray a partir da quais estes nós foram criados
subscriptionId String O ID da subscrição para os recursos deste nó
region String A localização deste nó
vmSku String O SKU (ou seja, tipo de máquina) para a VM
prioridade String O modelo de preços da VM em vigor ("regular" ou "spot")
placementGroupId String O grupo de colocação em que estes nós se encontram, se existirem

Eventos de nós

O CycleCloud envia eventos quando os nós mudam de estado. Os eventos de nós contêm informações adicionais na data propriedade:

Propriedade Tipo Description
status Estado (Cadeia) Se este evento foi ou não bem-sucedido
clusterName String O nome do cluster em que este nó se encontra. Os nomes não são exclusivos ao longo do tempo
nodeName String O nome do nó afetado. Os nomes não são exclusivos ao longo do tempo
nodeId String O ID deste nó. Os IDs dos nós são exclusivos ao longo do tempo e, depois de um nó ser eliminado, o ID não será reutilizado
nodeArray String O nome da nodearray a partir da
resourceId String O recurso do Azure para a VM, se tiver sido criado um
subscriptionId String O ID da subscrição para os recursos deste nó
region String A localização deste nó
vmSku String O SKU (ou seja, Tipo de Máquina) para a VM
prioridade String O modelo de preços da VM em vigor ("regular" ou "spot")
placementGroupId String O grupo de colocação em que este nó se encontra, se existir
retryCount Número inteiro Quantas vezes esta ação específica foi tentada anteriormente (veja Contagem de Repetições)
temporização (Objeto) Um mapa das fases deste evento e respetivas durações (veja Temporização)

Microsoft.CycleCloud.NodeAdded

Este evento é acionado para cada nó que é adicionado a um cluster. (Para obter um evento para um conjunto de nós adicionados ao mesmo tempo, veja ClusterSizeIncreased.) Isto é enviado quando o nó aparece pela primeira vez na IU, pelo que não tem quaisquer informações de temporização.

Microsoft.CycleCloud.NodeCreated

Este evento é acionado sempre que um nó é iniciado pela primeira vez (ou seja, é criada uma VM para o mesmo). Este evento contém as seguintes informações de temporização:

  • Create: o tempo total para criar o nó. Isto inclui criar a VM e configurar a VM.
  • CreateVM: quanto tempo demorou a criar a VM.
  • Configure: quanto tempo demorou a instalar o software e a configurar o nó.

Microsoft.CycleCloud.NodeDeallocated

Este evento é acionado sempre que um nó é desalocado. Este evento contém as seguintes informações de temporização:

  • Deallocate: o tempo total para desalocar o nó.
  • DeallocateVM: quanto tempo demorou a desalocar a VM.

Microsoft.CycleCloud.NodeStarted

Este evento é acionado sempre que um nó é reiniciado a partir de um estado desalocado. Este evento contém as seguintes informações de temporização:

  • Start: o tempo total necessário para reiniciar o nó desalocado.
  • StartVM: quanto tempo demorou a iniciar a VM desalocada.

Microsoft.CycleCloud.NodeTerminated

Este evento é acionado sempre que um nó é terminado e a VM é eliminada. Este evento contém as seguintes informações de temporização:

  • Terminate: o tempo total necessário para terminar o nó.
  • DeleteVM: quanto tempo demorou a eliminar a VM.

Assunto

Cada evento tem um "assunto" que pode ser utilizado para filtragem no Event Grid. Os eventos no CycleCloud têm assuntos no seguinte padrão:

  • /sites/SITENAME: para eventos específicos de uma determinada instalação do CycleCloud
  • /sites/SITENAME/clusters/CLUSTERNAME: para eventos ao nível do cluster
  • /sites/SITENAME/clusters/CLUSTERNAME/nodes/NODENAME: para eventos ao nível do nó

Isto permite "definir o âmbito" de uma subscrição do Event Grid para um prefixo específico para recolher um subconjunto de eventos. Isto pode ser utilizado em conjunto com a filtragem de Tipo de Evento.

Estado

  • Succeeded: a operação foi efetuada com êxito.
  • Failed: a operação não foi bem-sucedida. Muitas vezes, existe um reason e/ou errorCode conjunto.
  • Canceled: a operação foi cancelada.

Razão

Alguns eventos têm uma razão para terem sido iniciados. Salvo indicação em contrário, estes estão definidos nos ClusterSizeIncreasedeventos , NodeAdded, NodeCreated, NodeDeallocated, NodeStartede NodeTerminated .

  • Autoscaled: o nó foi modificado em resposta a um pedido de dimensionamento automático feito através da API
  • UserInitiated: a operação foi efetuada diretamente através da IU ou da CLI
  • System: a operação foi iniciada pelo CycleCloud (por exemplo, por predefinição, os nós de execução são removidos automaticamente do cluster quando terminados)
  • SpotEvicted: o evento foi acionado porque uma VM spot foi expulsa (apenas eventos NodeTerminated)
  • VMDisappeared: o evento foi acionado porque uma VM não spot desapareceu (apenas eventos NodeTerminated)
  • AllocationFailed: não foi possível alocar a VM devido a restrições de posicionamento ou capacidade (apenas eventos NodeTerminated/NodeDeallocated, com o estado a indicar o resultado da operação de terminação/desalocar)

Nota

O reason é definido em eventos NodeTerminated para indicar o motivo pelo qual o nó foi terminado. Quando um nó não é criado devido à capacidade, falha com o código de erro específico do Azure (do qual existem vários). Em seguida, o nó é terminado automaticamente e o motivo da cessação é AllocationFailed. Quando uma VM spot em execução é expulsa, a operação de criação já tinha sido bem-sucedida. Em seguida, o nó é terminado automaticamente e o motivo indicado para o evento de cessação é SpotEvicted.

Temporização

Alguns eventos contêm informações de temporização. A timing entrada em data é um objeto com chaves correspondentes às fases do evento e valores como segundos totais. Cada evento pode ter várias fases de tempo associadas. Por exemplo, suponha que um nó é adicionado a um cluster, iniciado e terminado:

! Diagrama de Temporização do Event Grid

  • T1: o utilizador adiciona um nó. É NodeAdded enviado um evento, sem temporização.
  • T2: a operação create-VM falha, pelo NodeCreated que é enviada com o estado Falha e as seguintes informações de temporização:
    • Create: T2-T1
    • CreateVM: T2-T1
  • T3: O utilizador clica em Repetir
  • T4: a operação Create-VM é bem-sucedida, pelo que o nó começa a instalar software.
  • T5. O software é instalado com êxito, pelo NodeCreated que é enviado com o estado Com êxito e as seguintes informações de temporização:
    • Create: (T5-T3)
    • CreateVM: (T4-T3)
    • Configure: (T5-T4)
  • T6: O utilizador clica em Terminar.
  • T7: a operação delete-VM é bem-sucedida, pelo NodeTerminated que é enviada com o estado Com êxito e as seguintes informações de temporização:
    • Started: T6-T5
    • Terminate: T7-T6
    • DeleteVM: T7-T6

Temporização do Estado Anterior

A primeira vez que um nó transita para um estado (com êxito ou não), não tem nenhum estado anterior. Quando o estado de destino for alterado após esse ponto, o tempo gasto no estado anterior é incluído no evento para o novo estado de destino. Tenha em atenção que isto só está incluído se atingir o estado anterior com êxito. Desta forma, estas entradas de tempo medem o período de tempo para o seguinte:

  • Started: antes deste evento, o nó estava em execução (ou seja, verde)
  • Deallocated: antes deste evento, o nó tinha sido desalocado
  • Terminated: antes deste evento, o nó tinha sido desligado

Isto pode ser utilizado, por exemplo, para controlar quanto tempo uma VM spot estava em execução antes de ser expulsa.

Contagem de Tentativas

Algumas operações podem ser repetidas no CycleCloud se falharem. Estas operações refletem-se nos NodeCreatedeventos , NodeDeallocated, NodeStartede NodeTerminated . Estes eventos contêm uma propriedade opcional retryCount na propriedade do data evento que indica quantas vezes antes da operação foi tentada. Esta propriedade está incluída em tentativas subsequentes, quer essas tentativas foram bem-sucedidas ou falharam.