다음을 통해 공유


이벤트

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

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

이벤트 개체

이벤트는 속성 내에 포함된 모든 CycleCloud 관련 세부 정보와 함께 표준 Event Grid 스키마를 data 따릅니다.

이름 유형 설명
eventId String 이벤트를 고유하게 식별합니다.
eventTime String 이 이벤트의 시간(yyyy-MM-ddTHH:mm:ss. SSSZZ)
이벤트 유형 String 발생한 상태 전환의 종류(예: Microsoft.CycleCloud.NodeCreated)입니다.
제목 String 영향을 받는 리소스( 이벤트 주체 참조)
데이터버전 String data에 사용 중인 스키마 (현재 "1")

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

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

클러스터 이벤트

CycleCloud는 클러스터가 수정될 때 이벤트를 보냅니다. 클러스터 이벤트에는 다음과 같은 공통 속성이 포함됩니다.data

재산 유형 설명
클러스터 이름 String 클러스터의 이름

Microsoft.CycleCloud.클러스터 시작됨

클러스터가 시작될 때 이 이벤트가 트리거됩니다.

Microsoft.CycleCloud.클러스터종료됨

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

Microsoft.CycleCloud.클러스터삭제됨

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

Microsoft.CycleCloud.ClusterSizeIncreased

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

재산 유형 설명
요청된 노드 정수 이 집합에 대해 요청된 노드 수
노드 추가됨 정수 클러스터에 추가된 노드 수
nodeArray String 이 노드들이 속한 노드 배열
구독ID String 이 노드의 리소스에 대한 구독 ID
지역 String 이 노드의 위치
vmSku String VM에 대한 SKU(즉, 컴퓨터 유형)
우선순위 String 적용되는 VM 가격 책정 모델("일반" 또는 "스폿")
placementGroupId String 이러한 노드가 있는 배치 그룹(있는 경우)

노드 이벤트

CycleCloud는 노드가 상태 간에 전환할 때마다 이벤트를 보냅니다. 이러한 노드 이벤트에는 속성 내의 추가 컨텍스트가 data 포함됩니다.

재산 유형 설명
상태 상태 (문자열) 이 이벤트가 성공했는지 여부
클러스터 이름 String 이 노드가 있는 클러스터의 이름입니다. 이름은 시간이 지남에 따라 고유하지 않습니다.
nodeName String 영향을 받는 노드의 이름입니다. 이름은 시간이 지남에 따라 고유하지 않습니다.
nodeId String 노드의 ID입니다. 노드 ID는 고유 합니다 . 노드가 삭제되면 ID를 다시 사용할 수 없습니다.
nodeArray String 이 노드가 생성된 nodearray의 이름입니다.
리소스ID String VM에 대한 Azure 리소스(생성된 리소스가 있는 경우)
구독ID String 이 노드의 리소스에 대한 구독 ID
지역 String 이 노드의 위치
vmSku String VM에 대한 SKU(즉, 컴퓨터 유형)
우선순위 String 적용되는 VM 가격 책정 모델("일반" 또는 "스폿")
placementGroupId String 이 노드가 있는 배치 그룹(있는 경우)
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.노드 종료됨

이 이벤트는 노드가 종료되고 해당 VM이 삭제될 때마다 트리거됩니다. 여기에는 다음 타이밍 세부 정보가 포함됩니다.

  • Terminate: 노드를 종료하는 데 걸린 총 시간입니다.
  • DeleteVM: VM을 삭제하는 데 걸린 시간입니다.

주제

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

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

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

상태

  • 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.

타이밍

일부 이벤트에는 타이밍 정보가 포함됩니다. timingdata 항목은 이벤트의 단계에 해당하는 키와 총 초로 된 값을 가진 객체입니다. 각 이벤트에는 여러 타이밍 스테이지가 연결되어 있을 수 있습니다. 예를 들어 노드가 클러스터에 추가되고, 시작되고, 종료되었다고 가정합니다.

! Event Grid 타이밍 다이어그램

  • T1: 사용자가 노드를 추가합니다. NodeAdded 타이밍 없이 이벤트가 전송됩니다.
  • T2: 만들기-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: 삭제-VM 작업이 성공하므로 NodeTerminated 성공 상태와 다음 타이밍 정보를 사용하여 전송됩니다.
    • Started: T6-T5
    • Terminate: T7-T6
    • DeleteVM: T7-T6

이전 상태 타이밍

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

  • Started: 이 이벤트 이전에 노드가 실행 중(즉, 녹색)
  • Deallocated: 이 이벤트 이전에 노드가 할당 해제되었습니다.
  • Terminated: 이 이벤트 이전에 노드가 꺼져 있습니다.

이 타이밍을 사용하여 스폿 VM이 제거되기 전에 실행된 시간을 추적할 수 있습니다.

재시도 횟수

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