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


Общие сведения об 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 с конкретной сущностью.

На снимке экрана показана вкладка

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

Примечание.

Начиная с версии 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
          }
        }

Следующие шаги