EventStore 개요

참고 항목

Service Fabric 버전 6.4부터 EventStore API는 Azure에서만 실행되는 Windows 클러스터에 제공됩니다. 이 기능을 Linux 및 독립 실행형 클러스터에도 이식하려고 노력하고 있습니다.

개요

6.2 버전에 도입된 EventStore 서비스는 Service Fabric의 모니터링 옵션입니다. EventStore는 일정한 시기에 클러스터 또는 워크로드의 상태를 파악할 수 있는 방법을 제공합니다. EventStore는 클러스터에서 이벤트를 유지 관리하는 상태 저장 Service Fabric 서비스입니다. 이벤트는 Service Fabric Explorer, REST 및 API를 통해 노출됩니다. EventStore는 클러스터를 직접 쿼리하여 클러스터의 모든 엔터티에 대한 진단 데이터를 획득하고 다음 용도로 사용할 수 있습니다.

  • 개발 또는 테스트의 문제 또는 모니터링 파이프라인을 사용할 위치의 문제 진단
  • 클러스터에 대해 수행하는 관리 작업이 제대로 처리되고 있는지 확인
  • Service Fabric이 특정 엔터티와 상호 작용하는 방법의 "스냅샷" 가져오기

Screenshot shows the EVENTS tab of the Nodes pane several events, including a NodeDown event.

EventStore에서 사용할 수 있는 전체 이벤트 목록은 Service Fabric 이벤트를 참조하세요.

참고 항목

Service Fabric 버전 6.4부터 EventStore API 및 UX는 Azure Windows 클러스터에서 일반 공급됩니다. 이 기능을 Linux 및 독립 실행형 클러스터에도 이식하려고 노력하고 있습니다.

클러스터의 각 엔터티 및 엔터티 형식에 사용할 수 있는 이벤트에 대해 EventStore 서비스를 쿼리할 수 있습니다. 즉, 다음 수준에서 이벤트를 쿼리할 수 있습니다.

  • 클러스터: 클러스터 자체에 한정된 이벤트(예: 클러스터 업그레이드)
  • 노드: 모든 노드 수준 이벤트
  • 노드: nodeName으로 식별되는 한 노드에 한정된 이벤트
  • 애플리케이션: 모든 애플리케이션 수준 이벤트
  • 애플리케이션: applicationId로 식별되는 한 애플리케이션에 한정된 이벤트
  • 서비스: 클러스터에 있는 모든 서비스의 이벤트
  • 서비스: serviceId로 식별되는 특정 서비스의 이벤트
  • 파티션: 모든 파티션의 이벤트
  • 파티션: partitionId로 식별되는 특정 파티션의 이벤트
  • 파티션 복제본: partitionId로 식별되는 특정 파티션 내 복제본/인스턴스의 이벤트
  • 파티션 복제본: replicaIdpartitionId로 식별되는 특정 복제본/인스턴스의 이벤트

API에 대해 자세히 알아보려면 EventStore API 참조를 확인하세요.

EventStore 서비스에는 클러스터의 이벤트 간에 상관 관계를 지정하는 기능도 있습니다. EventStore 서비스는 서로 영향을 미칠 수 있는 서로 다른 엔터티에서 동시에 기록된 이벤트를 살펴보고 이러한 이벤트를 연결하여 클러스터의 작업에 대한 원인을 식별하는 데 도움을 줍니다. 예를 들어 아무런 변경 작업 없이 애플리케이션 중 하나가 비정상 상태가 되면 EventStore는 플랫폼에서 노출되는 다른 이벤트를 살펴보고 Error 또는 Warning 이벤트로 상관 관계를 지정합니다. 이렇게 하면 더 빠르게 오류를 감지하고 근본 원인을 분석할 수 있습니다.

클러스터에서 EventStore를 사용하도록 설정

로컬 클러스터

클러스터의 fabricSettings.json에서 EventStoreService를 추가 기능으로 추가하고 클러스터 업그레이드를 수행합니다.

    "addOnFeatures": [
        "EventStoreService"
    ],

Azure 클러스터 버전 6.5 이상

Azure 클러스터가 버전 6.5 이상으로 업그레이드되면 EventStore가 클러스터에서 자동으로 사용하도록 설정됩니다. 옵트아웃하려면 다음과 같이 클러스터 템플릿을 업데이트해야 합니다.

  • 2019-03-01 이상의 API 버전을 사용합니다.
  • 클러스터의 속성 섹션에 다음 코드를 추가합니다.
      "fabricSettings": [
        …
      ],
      "eventStoreServiceEnabled": false
    

Azure 클러스터 버전 6.4

버전 6.4를 사용하는 경우 Azure Resource Manager 템플릿을 편집하여 EventStore 서비스를 켤 수 있습니다. 이렇게 하려면 클러스터 구성 업그레이드를 수행하고 다음 코드를 추가합니다. PlacementConstraints를 사용하여 EventStore 서비스의 복제본을 특정 NodeType(예: 시스템 서비스 전용 NodeType)에 배치할 수 있습니다. upgradeDescription 섹션은 노드에서 다시 시작을 트리거하도록 구성 업그레이드를 구성합니다. 다른 업데이트에서 섹션을 제거할 수 있습니다.

    "fabricSettings": [
          …
          …
          …,
         {
            "name": "EventStoreService",
            "parameters": [
              {
                "name": "TargetReplicaSetSize",
                "value": "3"
              },
              {
                "name": "MinReplicaSetSize",
                "value": "1"
              },
              {
                "name": "PlacementConstraints",
                "value": "(NodeType==<node_type_name_here>)"
              }
            ]
          }
        ],
        "upgradeDescription": {
          "forceRestart": true,
          "upgradeReplicaSetCheckTimeout": "10675199.02:48:05.4775807",
          "healthCheckWaitDuration": "00:01:00",
          "healthCheckStableDuration": "00:01:00",
          "healthCheckRetryTimeout": "00:5:00",
          "upgradeTimeout": "1:00:00",
          "upgradeDomainTimeout": "00:10:00",
          "healthPolicy": {
            "maxPercentUnhealthyNodes": 100,
            "maxPercentUnhealthyApplications": 100
          },
          "deltaHealthPolicy": {
            "maxPercentDeltaUnhealthyNodes": 0,
            "maxPercentUpgradeDomainDeltaUnhealthyNodes": 0,
            "maxPercentDeltaUnhealthyApplications": 0
          }
        }

다음 단계