Поделиться через


Общие сведения об EventStore

Примечание.

Начиная с версии Service Fabric 6.4 интерфейсы API EventStore доступны только для кластеров Windows, работающих в Azure. Мы работаем над переносом этих функциональных возможностей в 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.На снимке экрана показана вкладка "События" в панели "Узлы" с несколькими событиями, включая событие "NodeDown".

Полный список событий, доступных в EventStore, см. в разделе "События Service Fabric".

Примечание.

Начиная с версии Service Fabric 6.4 Программные и пользовательские интерфейсы EventStore предоставляются в общедоступной версии для кластеров Azure Windows. Мы работаем над переносом этих функциональных возможностей в Linux, а также в изолированные кластеры.

Службу EventStore можно запрашивать для событий, доступных для каждой сущности и типа сущности в кластере. Это означает, что вы можете запрашивать события на следующих уровнях:

  • Кластер. События, относящиеся к кластеру (например, обновление кластера).
  • Узлы. Все события уровня узла.
  • Узел. События, относящиеся к одному узлу, которые идентифицируются на основе nodeName.
  • Приложения. Все события уровня приложения.
  • Приложение: события для одного приложения, идентифицированные с помощью applicationId.
  • Службы: события из всех служб в ваших кластерах.
  • Служба: события от определенной службы, идентифицируемые на основе serviceId.
  • Разделы. События из всех разделов.
  • Партиция: события из определенной партиции, идентифицируемые по partitionId.
  • Реплики раздела: события из всех реплик или экземпляров в определенном разделе, идентифицируемых на основе partitionId.
  • Реплика раздела: события из конкретной реплики или экземпляра, идентифицированные по replicaId и partitionId.

Дополнительные сведения об API см. в ссылке на API EventStore.

Служба EventStore также имеет возможность корреляции событий в кластере. Анализ событий, написанных одновременно различными сущностями, которые могли повлиять друг на друга, позволяет службе EventStore связать события для выявления причин действий в вашем кластере. Например, если одно из приложений становится неработоспособным без принудительных изменений, EventStore будет также рассматривать другие события, предоставляемые платформой, и сопоставлять их с событием Error или Warning. Это позволяет быстрее обнаружить сбой и выполнить анализ первопричин.

Включите EventStore в вашем кластере

Локальный кластер

В файл fabricSettings.json в своем кластере добавьте EventStoreService в качестве дополнительной функции и выполните обновление кластера.

    "addOnFeatures": [
        "EventStoreService"
    ],

Версия кластера Azure 6.5 и выше

Если кластер Azure обновляется до версии 6.5 или выше, EventStore автоматически включается в кластере. Чтобы отказаться от ее использования, обновите шаблон кластера, изменив в нем следующее:

  • укажите версию API 2019-03-01 или более новую;
  • Добавьте следующий код в раздел свойств в кластере
      "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
          }
        }

Дальнейшие действия