Поделиться через


События

CycleCloud 8.0 создает события при определенных изменениях (например, при создании узла или удалении кластера). Некоторые события являются мгновенными (например, удаление кластера), а некоторые события представляют собой переходы (например, создание узла, который подразумевает создание виртуальной машины). В таких случаях событие отправляется в конце перехода, будь то успешное или нет.

CycleCloud можно настроить для публикации в разделе Сетки событий, подключив его на странице параметров CycleCloud в CycleCloud. Подписки на события Сетки событий можно присоединить к разделу для маршрутизации событий в место назначения, например в очередь хранилища, где программа может использовать события и обрабатывать их.

Объекты событий

События находятся в стандартной схеме Сетки событий. Все элементы, относящиеся к CycleCloud, находятся в свойстве data события .

Имя Тип Описание
Eventid Строка Уникально идентифицирует событие
eventTime Строка Время этого события (гггг-ММ-ддTHЧ:мм:сс. SSSZZ)
eventType Строка Тип перехода состояния, который произошел (например, Microsoft.CycleCloud.NodeCreated).
subject Строка Затронутый ресурс (см. раздел "Тема события")
dataVersion Строка Схема, используемая для data (в настоящее время "1")

Кроме того, есть несколько настраиваемых свойств в для data почти всех событий:

Свойство Тип Описание
status Status (String) Был ли этот переход успешным или нет
reason Reason (String) Почему было инициировано это событие
message Строка Удобочитаемая сводка по этому событию
errorCode Строка Код для этой операции, если она завершилась сбоем или была недоступна. Обратите внимание, что это может поступать непосредственно из вызовов Azure и может присутствовать не для всех сбоев.

События кластера

CycleCloud отправляет события при изменении кластеров. События кластера содержат следующие общие свойства в data:

Свойство Тип Описание
clusterName Строка Имя кластера

Microsoft.CycleCloud.ClusterStarted

Это событие возникает при запуске кластера.

Microsoft.CycleCloud.ClusterTerminated

Это событие возникает при завершении работы кластера.

Microsoft.CycleCloud.ClusterDeleted

Это событие возникает при удалении кластера.

Microsoft.CycleCloud.ClusterSizeIncreased

Это событие возникает при добавлении узлов в кластер. Существует одно событие для каждого добавленного набора узлов. (Узлы в наборе имеют одинаковое определение.)

Свойство Тип Описание
nodesRequested Целое число Сколько узлов было запрошено для этого набора
nodesAdded Целое число Сколько узлов было добавлено в кластер
nodeArray Строка Узелarray этих узлов были созданы из
subscriptionId Строка Идентификатор подписки для ресурсов этого узла
region Строка Расположение этого узла
vmSku Строка Номер SKU (т. е. тип компьютера) для виртуальной машины
priority Строка Действует модель ценообразования виртуальных машин (обычная или спотовая)
placementGroupId Строка Группа размещения, в которых находятся эти узлы, если таковые имеются

События узла

CycleCloud отправляет события при изменении состояния узлов. События узла содержат дополнительные сведения в свойстве data :

Свойство Тип Описание
status Status (String) Было ли это событие успешным или нет
clusterName Строка Имя кластера, в который входит этот узел. Имена не являются уникальными с течением времени
nodeName Строка Имя затронутого узла. Имена не являются уникальными с течением времени
nodeId Строка Идентификатор этого узла. Идентификаторы узлов со временем уникальны, и после удаления узла идентификатор не будет использоваться повторно
nodeArray Строка Имя узлаarray, из который был создан этот узел
resourceId Строка Ресурс Azure для виртуальной машины, если он был создан.
subscriptionId Строка Идентификатор подписки для ресурсов этого узла
region Строка Расположение этого узла
vmSku Строка Номер SKU (т. е. тип компьютера) для виртуальной машины
priority Строка Действует модель ценообразования виртуальных машин (обычная или спотовая)
placementGroupId Строка Группа размещения этого узла, если она имеется
retryCount Целое число Сколько раз ранее предпринималось определенное действие (см . число повторных попыток)
учет времени (Объект) Карта этапов в этом событии и их длительности (см. раздел Time)

Microsoft.CycleCloud.NodeAdded

Это событие срабатывает для каждого узла, добавляемого в кластер. (Сведения о том, как получить событие для набора узлов, добавленных одновременно, см. в разделе ClusterSizeIncreased.) Он отправляется при первом появлении узла в пользовательском интерфейсе, поэтому у него нет сведений о времени.

Microsoft.CycleCloud.NodeCreated

Это событие возникает при каждом запуске узла в первый раз (т. е. для него создается виртуальная машина). Это событие содержит следующие сведения о времени:

  • Create: общее время создания узла. Сюда входит создание виртуальной машины и ее настройка.
  • CreateVM: сколько времени потребовалось для создания виртуальной машины.
  • Configure: сколько времени потребовалось для установки программного обеспечения и настройки узла.

Microsoft.CycleCloud.NodeDeallocated

Это событие возникает при каждом освобождении узла. Это событие содержит следующие сведения о времени:

  • Deallocate: общее время освобождения узла.
  • DeallocateVM: сколько времени потребовалось для освобождения виртуальной машины.

Microsoft.CycleCloud.NodeStarted

Это событие возникает при каждом повторном запуске узла из освобожденного состояния. Это событие содержит следующие сведения о времени:

  • Start: общее время, необходимое для перезапуска освобожденного узла.
  • StartVM: сколько времени потребовалось для запуска освобожденной виртуальной машины.

Microsoft.CycleCloud.NodeTerminated

Это событие возникает при каждом завершении работы узла и удалении его виртуальной машины. Это событие содержит следующие сведения о времени:

  • Terminate: общее время, необходимое для завершения работы узла.
  • DeleteVM: сколько времени потребовалось для удаления виртуальной машины.

Тема

Каждое событие имеет "тему", которую можно использовать для фильтрации в Сетке событий. События в CycleCloud имеют темы в следующем формате:

  • /sites/SITENAME: для событий, относящихся к заданной установке CycleCloud.
  • /sites/SITENAME/clusters/CLUSTERNAME: для событий на уровне кластера.
  • /sites/SITENAME/clusters/CLUSTERNAME/nodes/NODENAME: для событий на уровне узла.

Это позволяет "определить" подписку сетки событий до определенного префикса для сбора подмножества событий. Его можно использовать в сочетании с фильтрацией типов событий.

Состояние

  • Succeeded: операция выполнена успешно.
  • Failed: операция не была выполнена успешно. Часто reason имеется набор и .errorCode
  • Canceled: операция отменена.

Причина

Некоторые события имеют причину, что они были инициированы. Если не указано иное, они задаются для ClusterSizeIncreasedсобытий , NodeAdded, NodeCreated, NodeDeallocated, NodeStartedи NodeTerminated .

  • Autoscaled: узел был изменен в ответ на запрос автомасштабирования, выполненный через API.
  • UserInitiated: операция была выполнена непосредственно через пользовательский интерфейс или CLI.
  • System: операция была инициирована CycleCloud (например, по умолчанию узлы выполнения автоматически удаляются из кластера при завершении).
  • SpotEvicted: событие было активировано из-за вытеснения точечных виртуальных машин (только события NodeTerminated).
  • VMDisappeared: событие было активировано из-за исчезновения непотовой виртуальной машины (только события NodeTerminated).
  • AllocationFailed: не удалось выделить виртуальную машину из-за ограничений размещения или емкости (только события NodeTerminated/NodeDeallocated, состояние которой указывает на результат операции завершения или освобождения).

Примечание

Параметр reason задается для событий NodeTerminated, чтобы указать причину завершения работы узла. Если не удается создать узел из-за емкости, он завершается сбоем с конкретным кодом ошибки из Azure (которых несколько). Затем узел автоматически завершает работу, и причиной завершения является AllocationFailed. При удалении работающей точечных виртуальных машин операция создания уже выполнена успешно. Затем узел автоматически завершает работу, и причиной события завершения является SpotEvicted.

Временные свойства

Некоторые события содержат сведения о времени. Запись timing в data представляет собой объект с ключами, соответствующими этапам события, и значениями в качестве общего количества секунд. С каждым событием может быть связано несколько этапов синхронизации. Например, предположим, что узел добавлен в кластер, запущен и завершен:

! Диаграмма времени сетки событий

  • T1. Пользователь добавляет узел. Отправляется NodeAdded событие без времени.
  • T2. Операция создания виртуальной машины завершается сбоем, поэтому NodeCreated отправляется с состоянием Сбой и следующими сведениями о времени:
    • Create: T2-T1
    • CreateVM: T2-T1
  • T3: пользователь щелкает кнопку "Повторить"
  • T4. Операция создания виртуальной машины завершается успешно, поэтому узел начинает установку программного обеспечения.
  • T5. Программное обеспечение успешно устанавливается, поэтому NodeCreated отправляется с состоянием Успешно и со следующими сведениями о времени:
    • Create: (T5–T3)
    • CreateVM: (T4-T3)
    • Configure: (T5-T4)
  • T6: пользователь нажимает кнопку Завершить.
  • T7. Операция удаления виртуальной машины завершается успешно, поэтому NodeTerminated отправляется с состоянием Succeeded и следующими сведениями о времени:
    • Started: T6-T5
    • Terminate: T7-T6
    • DeleteVM: T7-T6

Время предыдущего состояния

При первом переходе узла в состояние (успешно или нет) он не имеет предыдущего состояния. При изменении целевого состояния после этого момента время, затраченное на предыдущее состояние, включается в событие для нового целевого состояния. Обратите внимание, что эта функция включается только в том случае, если она успешно достигла предыдущего состояния. Таким образом, эти записи времени измеряют продолжительность следующего:

  • Started: до этого события узел был запущен (т. е. зеленый)
  • Deallocated: до этого события узел был освобожден.
  • Terminated: до этого события узел был отключен.

Его можно использовать, например, для отслеживания времени работы точечных виртуальных машин до ее вытеснения.

Число повторных попыток

В случае сбоя некоторые операции можно повторить в CycleCloud. Эти операции отражаются в событиях NodeCreated, NodeDeallocated, NodeStartedи NodeTerminated . Эти события содержат необязательное retryCount свойство свойства события data , указывающее, сколько раз до этого пытались выполнить операцию. Это свойство включается при последующих повторных попытках, будь то успешные или неудачные.