Omówienie bazy danych EventStore

Uwaga

Od wersji 6.4 usługi Service Fabric. Interfejsy API magazynu zdarzeń są dostępne tylko dla klastrów systemu Windows działających tylko na platformie Azure. Pracujemy nad przenoszeniem tej funkcji do systemu Linux, a także naszych klastrów autonomicznych.

Omówienie

Wprowadzona w wersji 6.2 usługa EventStore jest opcją monitorowania w usłudze Service Fabric. Magazyn zdarzeń umożliwia zrozumienie stanu klastra lub obciążeń w danym momencie. Magazyn zdarzeń to stanowa usługa Service Fabric, która obsługuje zdarzenia z klastra. Zdarzenie jest udostępniane za pośrednictwem narzędzia Service Fabric Explorer, interfejsów API i REST. Magazyn zdarzeń wysyła zapytanie do klastra bezpośrednio, aby uzyskać dane diagnostyczne dla dowolnej jednostki w klastrze i powinny być używane do pomocy:

  • Diagnozowanie problemów z programowaniem lub testowaniem lub używanie potoku monitorowania
  • Upewnij się, że akcje zarządzania wykonywane w klastrze są przetwarzane prawidłowo
  • Pobieranie "migawki" sposobu interakcji usługi Service Fabric z określoną jednostką

Zrzut ekranu przedstawiający kartę ZDARZENIA w okienku Węzły z kilkoma zdarzeniami, w tym zdarzenie NodeDown.

Aby wyświetlić pełną listę zdarzeń dostępnych w magazynie zdarzeń, zobacz Zdarzenia usługi Service Fabric.

Uwaga

Od wersji 6.4 usługi Service Fabric. Interfejsy API i środowisko użytkownika magazynu zdarzeń są ogólnie dostępne dla klastrów systemu Windows platformy Azure. Pracujemy nad przenoszeniem tej funkcji do systemu Linux, a także naszych klastrów autonomicznych.

Usługa EventStore może być odpytywane pod kątem zdarzeń, które są dostępne dla każdej jednostki i typu jednostki w klastrze. Oznacza to, że można wykonywać zapytania dotyczące zdarzeń na następujących poziomach:

  • Klaster: zdarzenia specyficzne dla samego klastra (np. uaktualnienie klastra)
  • Węzły: wszystkie zdarzenia na poziomie węzła
  • Węzeł: zdarzenia specyficzne dla jednego węzła identyfikowane przez nodeName
  • Aplikacje: wszystkie zdarzenia na poziomie aplikacji
  • Aplikacja: zdarzenia specyficzne dla jednej aplikacji zidentyfikowanej przez applicationId
  • Usługi: zdarzenia ze wszystkich usług w klastrach
  • Usługa: zdarzenia z określonej usługi zidentyfikowane przez serviceId
  • Partycje: zdarzenia ze wszystkich partycji
  • Partycja: zdarzenia z określonej partycji zidentyfikowane przez partitionId
  • Repliki partycji: zdarzenia ze wszystkich replik/wystąpień w określonej partycji zidentyfikowanej przez partitionId
  • Replika partycji: zdarzenia z określonej repliki/wystąpienia zidentyfikowane przez replicaId i partitionId

Aby dowiedzieć się więcej na temat interfejsu API, zobacz dokumentację interfejsu API magazynu zdarzeń.

Usługa EventStore ma również możliwość korelowania zdarzeń w klastrze. Patrząc na zdarzenia, które zostały zapisane w tym samym czasie z różnych jednostek, które mogły mieć na siebie wpływ, usługa EventStore może połączyć te zdarzenia, aby ułatwić identyfikowanie przyczyn działań w klastrze. Jeśli na przykład jedna z aplikacji stanie się w złej kondycji bez żadnych wprowadzonych zmian, magazyn zdarzeń będzie również przeglądać inne zdarzenia uwidocznione przez platformę i może skorelować je z zdarzeniem Error lub Warning . Pomaga to w szybszym wykrywaniu błędów i analizie głównych przyczyn.

Włączanie magazynu zdarzeń w klastrze

Klaster lokalny

W fabricSettings.json w klastrze dodaj funkcję EventStoreService jako funkcję addOn i przeprowadź uaktualnienie klastra.

    "addOnFeatures": [
        "EventStoreService"
    ],

Klaster platformy Azure w wersji 6.5 lub nowszej

Jeśli klaster platformy Azure zostanie uaktualniony do wersji 6.5 lub nowszej, magazyn zdarzeń zostanie automatycznie włączony w klastrze. Aby zrezygnować, należy zaktualizować szablon klastra przy użyciu następujących elementów:

  • Korzystanie z wersji interfejsu API lub nowszej 2019-03-01
  • Dodaj następujący kod do sekcji właściwości w klastrze
      "fabricSettings": [
        …
      ],
      "eventStoreServiceEnabled": false
    

Klaster platformy Azure w wersji 6.4

Jeśli używasz wersji 6.4, możesz edytować szablon usługi Azure Resource Manager, aby włączyć usługę EventStore. W tym celu należy przeprowadzić uaktualnienie konfiguracji klastra i dodać następujący kod. Można użyć ograniczeń umieszczania, aby umieścić repliki usługi EventStore w określonym węźle NodeType, na przykład nodeType dedykowanym dla usług systemowych. Sekcja upgradeDescription umożliwia skonfigurowanie uaktualnienia konfiguracji w celu wyzwolenia ponownego uruchomienia w węzłach. Sekcję można usunąć w innej aktualizacji.

    "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
          }
        }

Następne kroki