Dela via


EventStore – översikt

Kommentar

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å tillståndet för klustret eller arbetsbelastningarna 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å en entitet i klustret och bör användas för att:

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

Skärmbild som visar fliken HÄNDELSER i fönstret Noder flera händelser, inklusive en NodeDown-händelse.

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

Kommentar

Från och med Service Fabric version 6.4. EventStore-API:er 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, identifierade 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 referensen för EventStore API.

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 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 eller Warning -Errorhändelse. 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 avsnittet egenskaper 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 klusterkonfigurationsuppgradering och lägga till följande kod. Du kan använda PlacementConstraints för att placera replikerna av EventStore-tjänsten på en specifik NodeType, till exempel en NodeType-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