CycleCloud 8.0 會在發生特定變更時產生 事件 (例如,建立節點或刪除叢集時)。 有些事件是即時的(例如刪除叢集),有些事件代表轉換(例如,建立表示建立 VM 的節點)。 在這些案例中,無論是否成功,事件都會在轉換結束時傳送。
您可以在 CycleCloud 設定 頁面中,將 CycleCloud 設定為連接並發佈至事件網格 主題 。 若要將事件路由傳送至目的地,例如儲存體佇列,請將 Event Grid 事件訂閱 附加到主題。 程式可以接收事件並加以處理。
事件物件
這些事件會遵循標準 Event Grid 架構,其中包含 屬性內 data 含的所有 CycleCloud 特定詳細數據。
| 名稱 | 類型 | 說明 |
|---|---|---|
| eventId | 繩子 | 唯一識別該事件 |
| eventTime | 繩子 | 此事件的時間 (yyyy-MM-ddTHH:mm:ss.SSSZZ) |
| 事件類型 | 繩子 | 發生的狀態轉換類型(例如 Microsoft.CycleCloud.NodeCreated) |
| 主旨 | 繩子 | 受影響的資源(請參閱 事件主旨) |
| dataVersion | 繩子 | 用於 data 的架構(目前為 “1”) |
幾乎所有事件都有數個自定義屬性存在於 data。
| 房產 | 類型 | 說明 |
|---|---|---|
| 狀態 | 狀態 (字串) | 此轉換是否成功 |
| 原因 | 原因 (字串) | 為何起始此事件 |
| 訊息 | 繩子 | 此事件的人類可讀摘要 |
| 錯誤代碼 | 繩子 | 如果作業失敗或無法使用時的程式碼。 請注意,此程式碼可能直接來自 Azure 呼叫,且並非所有錯誤都會出現。 |
叢集事件
CycleCloud 會在修改叢集時傳送事件。 叢集事件在data中包含下列常見屬性:
| 房產 | 類型 | 說明 |
|---|---|---|
| 叢集名稱 (clusterName) | 繩子 | 叢集的名稱 |
Microsoft.CycleCloud.ClusterStarted
叢集被啟動時會觸發此事件。
Microsoft.CycleCloud.ClusterTerminated
叢集被終止時會觸發此事件。
Microsoft.CycleCloud.叢集已刪除
刪除叢集時會引發此事件。
Microsoft.CycleCloud.ClusterSizeIncreased
當節點新增至叢集時,就會引發此事件。 每個新增的節點集都有一個事件。 (集合中的節點都有相同的定義。
| 房產 | 類型 | 說明 |
|---|---|---|
| nodesRequested | 整數 | 此集合要求了多少個節點 |
| nodesAdded | 整數 | 已將多少個節點新增至叢集 |
| nodeArray | 繩子 | 建立這些節點所使用的 nodearray |
| subscriptionId (訂閱ID) | 繩子 | 此節點資源的訂用帳戶標識碼 |
| 區域 | 繩子 | 此節點的位置 |
| vmSku | 繩子 | VM 的 SKU (也就是電腦類型) |
| 優先權 | 繩子 | 有效的 VM 定價模式 (「一般」或「現成品」) |
| placementGroupId | 繩子 | 這些節點所在的部署群組(如果有的話) |
節點事件
CycleCloud 會在節點在狀態之間轉換時傳送事件。 這些節點事件包含data屬性中的額外內容。
| 房產 | 類型 | 說明 |
|---|---|---|
| 狀態 | 狀態 (字串) | 此事件是否成功 |
| 叢集名稱 (clusterName) | 繩子 | 此節點位於的叢集名稱。 名稱隨著時間推移並不唯一 |
| nodeName | 繩子 | 受影響的節點名稱。 名稱隨著時間推移並不唯一 |
| nodeId | 繩子 | 節點的識別碼。 節點標識碼 是唯一 的。 刪除節點時,無法重複使用識別碼。 |
| nodeArray | 繩子 | 建立此節點所使用的 nodearray 名稱 |
| 資源ID | 繩子 | 若已建立該 VM 的 Azure 資源 |
| subscriptionId (訂閱ID) | 繩子 | 此節點資源的訂用帳戶標識碼 |
| 區域 | 繩子 | 此節點的位置 |
| vmSku | 繩子 | VM 的 SKU (也就是電腦類型) |
| 優先權 | 繩子 | 有效的 VM 定價模式 (「一般」或「現成品」) |
| placementGroupId | 繩子 | 此節點所屬的放置群組 (若有的話) |
| retryCount | 整數 | 先前嘗試此特定動作的次數(請參閱 重試計數) |
| 時機 | (物件) | 此事件中的階段及其持續時間的地圖(請參閱 計時) |
Microsoft.CycleCloud.NodeAdded
每個新增至叢集的節點都會觸發此事件。 要接收因同時新增多個節點而產生的單一事件,請參閱 ClusterSizeIncreased。 當節點第一次出現在UI中時,就會傳送此事件,因此沒有任何計時資訊。
Microsoft.CycleCloud.NodeCreated
每次節點第一次啟動時都會觸發此事件(也就是為節點建立 VM 時)。 其中包含下列計時詳細資料:
-
Create:建立節點的總時間。 這次包括建立 VM 和設定 VM。 -
CreateVM:建立 VM 所花費的時間。 -
Configure:安裝軟體並設定節點所花費的時間。
Microsoft.CycleCloud.NodeDeallocated
每次解除分配節點時,都會觸發此事件。 其中包含下列計時詳細資料:
-
Deallocate:解除分配節點的總時間。 -
DeallocateVM:解除配置 VM 所花費的時間。
Microsoft.CycleCloud.NodeStarted
每次節點從解除分配狀態重新啟動時,都會觸發此事件。 其中包含下列計時詳細資料:
-
Start:重新啟動已解除分配節點所花費的總時間。 -
StartVM:啟動已解除分配的 VM 所花費的時間。
Microsoft.CycleCloud.NodeTerminated
每當節點終止並刪除其 VM 時,就會觸發此事件。 其中包含下列計時詳細資料:
-
Terminate:終止節點所花費的總時間。 -
DeleteVM:刪除 VM 所花費的時間。
主旨
每個事件都有一個主旨,您可以在事件方格中用於篩選。 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:作業是透過UI或 CLI 直接完成的 -
System:CycleCloud 起始作業(例如,根據預設,執行節點會在終止時自動從叢集移除) -
SpotEvicted:該事件是由現成 VM 收回觸發的 (僅限 NodeTerminated 事件) -
VMDisappeared:非現成 VM 消失時觸發事件 (僅限 NodeTerminated 事件) -
AllocationFailed:由於放置或容量限制而無法分配 VM (僅限 NodeTerminated/NodeDeallocated 事件,狀態會顯示終止/解除配置作業的結果)
備註
reason會在 NodeTerminated 事件上設定 ,以指出節點終止的原因。
當節點因容量不足而無法建立時,操作會失敗,並回傳來自 Azure 的特定錯誤碼 (可能有多種錯誤碼)。
節點接著會自動終止,而終止的原因為 AllocationFailed。
當執行中的現成 VM 被收回時,建立作業已經成功。
節點接著會自動終止,而終止事件的原因為 SpotEvicted。
時機
某些事件包含計時資訊。
timing 中的 data 條目是物件,其鍵對應到事件的各個階段,值則代表總秒數。 每個事件可以有多個與其相關聯的計時階段。 例如,假設節點已新增至叢集、啟動和終止:
- T1:使用者新增節點。 傳送
NodeAdded事件,沒有指定時間。 - T2:create-VM 作業失敗,因此
NodeCreated會傳送狀態為 [失敗] 和下列計時資訊:-
Create: T2-T1 -
CreateVM: T2-T1
-
- T3:用戶按一下重試
- T4:Create-VM 作業成功,因此節點會開始安裝軟體。
- T5。 軟體會成功安裝,因此
NodeCreated會傳送狀態為 [成功] 和下列計時資訊:-
Create: (T5-T3) -
CreateVM: (T4-T3) -
Configure: (T5-T4)
-
- T6:用戶按兩下 [終止]。
- T7:delete-VM 作業成功,因此
NodeTerminated會以成功狀態和下列計時資訊傳送:-
Started: T6-T5 -
Terminate: T7-T6 -
DeleteVM: T7-T6
-
先前的狀態計時
節點第一次轉換成狀態時,它沒有任何先前的狀態。 當目標狀態在該時間點之後變更時,新目標狀態的事件中會包含上一個狀態所花費的時間。 只有當節點成功達到上一個狀態時,才會包含此時間。 這些計時項目會測量下列狀態的時間長度:
-
Started:在此事件之前,節點正在運行(也就是說是綠色的狀態) -
Deallocated:在此事件之前,節點已解除分配 -
Terminated:在此事件之前,節點已關閉
您可以使用此時間來追蹤現成 VM 被收回之前執行的時間長度。
重試計數
在 CycleCloud 中,如果作業失敗,您可以重試一些作業。 這些作業會反映在NodeCreated、NodeDeallocated、NodeStarted和NodeTerminated事件中。 這些事件包含該事件的 data 屬性上的選擇性 retryCount 屬性,指出在此事件之前嘗試操作的次數。 不論嘗試成功還是失敗,後續重試都包含此屬性。