다음을 통해 공유


이벤트

CycleCloud 8.0은 특정 변경이 발생할 때(예: 노드가 만들어지거나 클러스터가 삭제된 경우) 이벤트를 생성합니다. 일부 이벤트는 즉시(예: 클러스터 삭제) 일부 이벤트는 전환을 나타냅니다(예: VM 만들기를 의미하는 노드 만들기). 이러한 경우 이벤트는 전환이 끝날 때 성공 여부에 관계없이 전송됩니다.

CycleCloud의 CycleCloud 설정 페이지에서 연결하여 Event Grid 토픽에 게시하도록 CycleCloud를 구성할 수 있습니다. Event Grid 이벤트 구독을 토픽에 연결하여 프로그램이 이벤트를 사용하고 처리할 수 있는 스토리지 큐와 같은 대상으로 이벤트를 라우팅할 수 있습니다.

이벤트 개체

이벤트는 표준 Event Grid 스키마에 있습니다. 모든 CycleCloud 관련 요소는 이벤트의 속성에 있습니다 data .

Name 형식 Description
Eventid 문자열 이벤트를 고유하게 식별합니다.
eventTime 문자열 이 이벤트의 시간(yyyy-MM-ddTHH:mm:ss. SSSZZ)
eventType 문자열 발생한 상태 전환의 종류(예: Microsoft.CycleCloud.NodeCreated)
subject 문자열 영향을 받는 리소스( 이벤트 주체 참조)
dataVersion 문자열 에 사용 data 중인 스키마(현재 "1")

또한 거의 모든 이벤트에 대한 몇 가지 사용자 지정 속성이 있습니다 data .

속성 형식 Description
상태 상태 (문자열) 이 전환이 성공했는지 여부
reason 이유 (문자열) 이 이벤트가 시작된 이유
message String 이 이벤트에 대한 사람이 읽을 수 있는 요약
errorCode 문자열 실패했거나 사용할 수 없는 경우 이 작업에 대한 코드입니다. 이는 Azure 호출에서 직접 발생할 수 있으며 모든 오류에 대해 존재하지 않을 수 있습니다.

클러스터 이벤트

CycleCloud는 클러스터가 수정되면 이벤트를 보냅니다. 클러스터 이벤트에는 의 다음과 같은 일반적인 속성이 포함됩니다.data

속성 형식 설명
clusterName 문자열 클러스터의 이름

Microsoft.CycleCloud.ClusterStarted

이 이벤트는 클러스터가 시작될 때 발생합니다.

Microsoft.CycleCloud.ClusterTerminated

이 이벤트는 클러스터가 종료될 때 발생합니다.

Microsoft.CycleCloud.ClusterDeleted

이 이벤트는 클러스터가 삭제되면 발생합니다.

Microsoft.CycleCloud.ClusterSizeIncreased

이 이벤트는 노드가 클러스터에 추가되면 발생합니다. 추가된 각 노드 집합에 대해 하나의 이벤트가 있습니다. (집합의 노드는 모두 동일한 정의를 갖습니다.)

속성 형식 Description
nodesRequested 정수 이 집합에 대해 요청된 노드 수
nodes추가됨 정수 실제로 클러스터에 추가된 노드 수
nodeArray 문자열 이러한 노드가 생성된 nodearray
subscriptionId 문자열 이 노드의 리소스에 대한 구독 ID
region 문자열 이 노드의 위치
vmSku 문자열 VM에 대한 SKU(즉, 컴퓨터 유형)
priority 문자열 적용 중인 VM 가격 책정 모델("일반" 또는 "스폿")
placementGroupId 문자열 이러한 노드가 있는 배치 그룹(있는 경우)

노드 이벤트

CycleCloud는 노드가 상태를 변경할 때 이벤트를 보냅니다. 노드 이벤트에는 속성에 data 추가 정보가 포함됩니다.

속성 형식 Description
상태 상태 (문자열) 이 이벤트가 성공했는지 여부
clusterName 문자열 이 노드가 있는 클러스터의 이름입니다. 이름은 시간이 지남에 따라 고유하지 않습니다.
nodeName 문자열 영향을 받는 노드의 이름입니다. 이름은 시간이 지남에 따라 고유하지 않습니다.
nodeId 문자열 이 노드의 ID입니다. 노드 ID 시간이 지남에 따라 고유하며 노드가 삭제되면 ID가 다시 사용되지 않습니다.
nodeArray 문자열 이 노드가 만들어진 nodearray의 이름입니다.
resourceId String VM에 대한 Azure 리소스(생성된 리소스가 있는 경우)
subscriptionId 문자열 이 노드의 리소스에 대한 구독 ID
region 문자열 이 노드의 위치
vmSku 문자열 VM에 대한 SKU(즉, 컴퓨터 유형)
priority 문자열 적용 중인 VM 가격 책정 모델("일반" 또는 "스폿")
placementGroupId 문자열 이 노드가 있는 배치 그룹(있는 경우)
retryCount 정수 이전에 이 특정 작업을 시도한 횟 수(재시도 횟수 참조)
타이밍 (개체) 이 이벤트의 스테이지와 해당 기간의 맵( 타이밍 참조)

Microsoft.CycleCloud.Node추가됨

이 이벤트는 클러스터에 추가되는 각 노드에 대해 발생합니다. (한 번에 추가된 노드 집합에 대한 이벤트를 얻으려면 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을 삭제하는 데 걸린 시간입니다.

제목

각 이벤트에는 Event Grid에서 필터링하는 데 사용할 수 있는 "주체"가 있습니다. CycleCloud의 이벤트에는 다음과 같은 패턴의 주제가 있습니다.

  • /sites/SITENAME: 지정된 CycleCloud 설치와 관련된 이벤트의 경우
  • /sites/SITENAME/clusters/CLUSTERNAME: 클러스터 수준 이벤트의 경우
  • /sites/SITENAME/clusters/CLUSTERNAME/nodes/NODENAME: 노드 수준 이벤트의 경우

이를 통해 Event Grid 구독을 특정 접두사로 "범위 지정"하여 이벤트의 하위 집합을 수집할 수 있습니다. 이벤트 유형 필터링과 함께 사용할 수 있습니다.

상태

  • Succeeded: 작업이 성공했습니다.
  • Failed: 작업이 성공하지 못했습니다. 및/또는 errorCode 집합이 reason 있는 경우가 많습니다.
  • Canceled: 작업이 취소되었습니다.

이유

일부 이벤트에는 이벤트가 시작된 이유가 있습니다. 달리 표시되지 않는 한 , , , NodeAddedNodeDeallocatedNodeCreated, NodeStartedNodeTerminated 이벤트에 설정ClusterSizeIncreased됩니다.

  • Autoscaled: API를 통해 수행된 자동 크기 조정 요청에 대한 응답으로 노드가 수정되었습니다.
  • UserInitiated: 작업이 UI 또는 CLI를 통해 직접 수행되었습니다.
  • System: CycleCloud에서 작업을 시작했습니다(예: 기본적으로 실행 노드는 종료될 때 클러스터에서 자동으로 제거됨).
  • SpotEvicted: 스폿 VM이 제거되었기 때문에 이벤트가 트리거되었습니다(NodeTerminated 이벤트만 해당).
  • VMDisappeared: 스폿이 아닌 VM이 사라졌기 때문에 이벤트가 트리거되었습니다(NodeTerminated 이벤트만 해당).
  • AllocationFailed: 배치 또는 용량 제약 조건으로 인해 VM을 할당할 수 없습니다(NodeTerminated/NodeDeallocated 이벤트만, 종료/할당 취소 작업의 결과를 나타내는 상태 포함)

참고

reason 노드가 종료된 이유를 나타내기 위해 NodeTerminated 이벤트에 설정됩니다. 용량으로 인해 노드를 만들지 못하면 Azure의 특정 오류 코드와 함께 실패합니다(그 중 몇 가지가 있습니다). 그러면 노드가 자동으로 종료되고 종료 이유는 입니다 AllocationFailed. 실행 중인 스폿 VM이 제거되면 만들기 작업이 이미 성공했습니다. 그러면 노드가 자동으로 종료되고 종료 이벤트에 지정된 이유는 입니다 SpotEvicted.

타이밍

일부 이벤트에는 타이밍 정보가 포함됩니다. 의 data 항목은 timing 이벤트의 단계에 해당하는 키와 총 초 값이 있는 개체입니다. 각 이벤트에는 여러 타이밍 단계가 연결되어 있을 수 있습니다. instance 경우 노드가 클러스터에 추가되고 시작되고 종료되었다고 가정합니다.

! Event Grid 타이밍 다이어그램

  • T1: 사용자가 노드를 추가합니다. NodeAdded 이벤트는 타이밍 없이 전송됩니다.
  • T2: 만들기-VM 작업이 실패하므로 NodeCreated 실패 상태 및 다음 타이밍 정보와 함께 전송됩니다.
    • Create: T2-T1
    • CreateVM: T2-T1
  • T3: 사용자가 다시 시도를 클릭합니다.
  • T4: VM 만들기 작업이 성공하므로 노드에서 소프트웨어 설치를 시작합니다.
  • T5. 소프트웨어가 성공적으로 설치되므로 NodeCreated 성공 상태 및 다음 타이밍 정보와 함께 전송됩니다.
    • Create: (T5-T3)
    • CreateVM: (T4-T3)
    • Configure: (T5-T4)
  • T6: 사용자가 종료를 클릭합니다.
  • T7: 삭제-VM 작업이 성공하므로 NodeTerminated 성공 상태와 다음 타이밍 정보를 사용하여 전송됩니다.
    • Started: T6-T5
    • Terminate: T7-T6
    • DeleteVM: T7-T6

이전 상태 타이밍

노드가 성공적으로 상태(성공 여부에 관계없이)로 처음 전환될 때 이전 상태가 없습니다. 그런 다음, 해당 시점 이후에 대상 상태가 변경되면 이전 상태에서 소요된 시간이 새 대상 상태에 대한 이벤트에 포함됩니다. 이는 이전 상태에 성공적으로 도달한 경우에만 포함됩니다. 따라서 이러한 타이밍 항목은 다음 시간 길이를 측정합니다.

  • Started: 이 이벤트 이전에 노드가 실행 중이었습니다(예: 녹색).
  • Deallocated: 이 이벤트 이전에 노드의 할당이 취소되었습니다.
  • Terminated: 이 이벤트 이전에 노드가 꺼져 있었습니다.

instance 스폿 VM이 제거되기 전에 실행된 기간을 추적하는 데 사용할 수 있습니다.

재시도 횟수

일부 작업은 실패할 경우 CycleCloud에서 다시 시도될 수 있습니다. 이러한 작업은 , , NodeDeallocatedNodeStartedNodeTerminated 이벤트에 반영NodeCreated됩니다. 이러한 이벤트에는 이 작업이 시도되기 전의 횟수를 나타내는 이벤트 속성의 data 선택적 retryCount 속성이 포함됩니다. 이 속성은 이러한 시도가 성공했는지 실패했는지 여부에 관계없이 후속 재시도에 포함됩니다.