События
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
, указывающее, сколько раз до этого пытались выполнить операцию. Это свойство включается при последующих повторных попытках, будь то успешные или неудачные.