Översikt över EventStore

Anteckning

Från och med Service Fabric version 6.4. EventStore-API:erna är endast tillgängliga för Windows-kluster som körs på Azure. Vi arbetar med att portera den här funktionen till Linux och våra fristående kluster.

Översikt

EventStore-tjänsten introducerades i version 6.2 och är ett övervakningsalternativ i Service Fabric. EventStore är ett sätt att förstå klustrets eller arbetsbelastningarnas tillstånd vid en viss tidpunkt. EventStore är en tillståndskänslig Service Fabric-tjänst som underhåller händelser från klustret. Händelsen exponeras via Service Fabric Explorer, REST och API:er. EventStore frågar klustret direkt för att hämta diagnostikdata på valfri entitet i klustret och bör användas för att:

  • Diagnostisera problem med utveckling eller testning, eller var du kanske använder en övervakningspipeline
  • Bekräfta att hanteringsåtgärder som du vidtar på klustret bearbetas korrekt
  • Hämta en "ögonblicksbild" av hur Service Fabric interagerar med en viss entitet

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

En fullständig lista över händelser som är tillgängliga i EventStore finns i Service Fabric-händelser.

Anteckning

Från och med Service Fabric version 6.4. EventStore-API:erna och UX är allmänt tillgängliga för Azure Windows-kluster. Vi arbetar med att portera den här funktionen till Linux och våra fristående kluster.

EventStore-tjänsten kan frågas efter händelser som är tillgängliga för varje entitets- och entitetstyp i klustret. Det innebär att du kan fråga efter händelser på följande nivåer:

  • Kluster: händelser som är specifika för själva klustret (t.ex. klusteruppgradering)
  • Noder: alla nodnivåhändelser
  • Nod: händelser som är specifika för en nod, som identifieras av nodeName
  • Program: alla händelser på programnivå
  • Program: händelser som är specifika för ett program som identifieras av applicationId
  • Tjänster: händelser från alla tjänster i dina kluster
  • Tjänst: händelser från en specifik tjänst som identifieras av serviceId
  • Partitioner: händelser från alla partitioner
  • Partition: händelser från en specifik partition som identifieras av partitionId
  • Partitionsrepliker: händelser från alla repliker/instanser inom en specifik partition som identifieras av partitionId
  • Partitionsreplik: händelser från en specifik replik/instans som identifieras av replicaId och partitionId

Mer information om API:et finns i EventStore API-referensen.

EventStore-tjänsten har också möjlighet att korrelera händelser i klustret. Genom att titta på händelser som skrevs samtidigt från olika entiteter som kan ha påverkat varandra kan EventStore-tjänsten länka dessa händelser för att hjälpa till med att identifiera orsaker till aktiviteter i klustret. Om ett av dina program till exempel råkar bli felfritt utan några inducerade ändringar, tittar EventStore också på andra händelser som exponeras av plattformen och kan korrelera detta med en Error eller-händelse Warning . Detta hjälper till med snabbare felidentifiering och rotorsaksanalys.

Aktivera EventStore i klustret

Lokalt kluster

I fabricSettings.json i klustret lägger du till EventStoreService som en addOn-funktion och utför en klusteruppgradering.

    "addOnFeatures": [
        "EventStoreService"
    ],

Azure-klusterversion 6.5+

Om ditt Azure-kluster uppgraderas till version 6.5 eller senare aktiveras EventStore automatiskt i klustret. Om du vill avregistrera dig måste du uppdatera klustermallen med följande:

  • Använda en API-version av 2019-03-01 eller senare
  • Lägg till följande kod i egenskapsavsnittet i klustret
      "fabricSettings": [
        …
      ],
      "eventStoreServiceEnabled": false
    

Azure-klusterversion 6.4

Om du använder version 6.4 kan du redigera Azure Resource Manager-mallen för att aktivera EventStore-tjänsten. Detta görs genom att utföra en uppgradering av klusterkonfigurationen och lägga till följande kod. Du kan använda PlacementConstraints för att placera replikerna för EventStore-tjänsten på en specifik NodeType, t.ex. en NodeType som är dedikerad för systemtjänsterna. Avsnittet upgradeDescription konfigurerar konfigurationsuppgradningen för att utlösa en omstart på noderna. Du kan ta bort avsnittet i en annan uppdatering.

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

Nästa steg