共用方式為


事件

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:作業已取消。

原因

某些事件有起始的原因。 除非另有指示,否則這些原因會在ClusterSizeIncreasedNodeAddedNodeCreatedNodeDeallocatedNodeStartedNodeTerminated 事件上設定。

  • 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 中,如果作業失敗,您可以重試一些作業。 這些作業會反映在NodeCreatedNodeDeallocatedNodeStartedNodeTerminated事件中。 這些事件包含該事件的 data 屬性上的選擇性 retryCount 屬性,指出在此事件之前嘗試操作的次數。 不論嘗試成功還是失敗,後續重試都包含此屬性。