Diagnosefunktionen für zustandsbehaftete Reliable Services

Die StatefulServiceBase-Klasse der zustandsbehafteten zuverlässigen Dienste in Azure Service Fabric gibt EventSource-Ereignisse aus. Diese können verwendet werden, um den Dienst zu debuggen, Einblicke in den Laufzeitbetrieb zu erhalten und Fehler zu beheben.

EventSource-Ereignisse

Der EventSource-Name für die StatefulServiceBase-Klasse für zustandsbehaftete zuverlässige Dienste ist „Microsoft-ServiceFabric-Services“. Ereignisse aus dieser Ereignisquelle werden im Fenster Diagnoseereignisse angezeigt, wenn der Dienst in Visual Studio debuggt wird.

Beispiele für Tools und Technologien, mit deren Hilfe EventSource-Ereignisse erfasst bzw. angezeigt werden können, sind PerfView, Azure Diagnostics und Microsoft TraceEvent Library.

Events

Ereignisname Ereignis-ID Ebene Ereignisbeschreibung
StatefulRunAsyncInvocation 1 Informational Wird beim Start der RunAsync-Dienstaufgabe ausgegeben
StatefulRunAsyncCancellation 2 Informational Wird beim Abbruch der RunAsync-Dienstaufgabe ausgegeben
StatefulRunAsyncCompletion 3 Informational Wird nach Abschluss der RunAsync-Dienstaufgabe ausgegeben
StatefulRunAsyncSlowCancellation 4 Warnung Wird ausgegeben, wenn das Abbrechen der RunAsync-Dienstaufgabe zu lange dauert
StatefulRunAsyncFailure 5 Fehler Wird bei einer Ausnahme der RunAsync-Dienstaufgabe ausgegeben

Interpretieren von Ereignissen

Die Ereignisse „StatefulRunAsyncInvocation“, „StatefulRunAsyncCompletion“ und „StatefulRunAsyncCancellation“ sind für den Dienstautor nützlich, um den Lebenszyklus eines Diensts sowie die zeitliche Steuerung des Starts, Abbruchs oder Abschlusses eines Diensts zu verstehen. Diese Informationen können hilfreich sein, um Probleme bei Diensten zu debuggen oder den Dienstlebenszyklus zu verstehen.

Dienstautoren sollten unbedingt auf die Ereignisse StatefulRunAsyncSlowCancellation und StatefulRunAsyncFailure achten, da sie auf Probleme mit dem Dienst hinweisen.

StatefulRunAsyncFailure wird ausgegeben, wenn RunAsync() eine Ausnahme ausgibt. In der Regel weist eine Ausnahme auf einen Fehler oder Bug im Dienst hin. Darüber hinaus bewirkt die Ausnahme, dass der Dienst nicht ausgeführt wird, sodass er auf einen anderen Knoten verschoben wird. Dieser Vorgang kann aufwendig sein und eingehende Anforderungen verzögern, während der Dienst verschoben wird. Dienstautoren sollten nach Möglichkeit die Ursache der Ausnahme ermitteln und beheben.

StatefulRunAsyncSlowCancellation wird ausgegeben, wenn eine Abbruchanforderung für RunAsync länger als vier Sekunden dauert. Wenn das Abbrechen eines Diensts zu lange dauert, beeinträchtigt dies seine Fähigkeit, umgehend auf einem anderen Knoten neu gestartet werden zu können. Dieses Szenario kann sich negativ auf die allgemeine Verfügbarkeit des Diensts auswirken.

Leistungsindikatoren

Die Reliable Services-Runtime definiert die folgenden Leistungsindikatorkategorien:

Category BESCHREIBUNG
Service Fabric-Transaktionsreplikator Spezifische Leistungsindikatoren für den Azure Service Fabric-Transaktionsreplikator.
Service Fabric TStore Spezifische Leistungsindikatoren für den Azure Service Fabric TStore

Der Reliable State Manager verwendet den Service Fabric-Transaktionsreplikator zum Replizieren von Transaktionen in einer bestimmten Gruppe von Replikaten.

Der Service Fabric TStore ist eine Komponente, die in zuverlässigen Sammlungen zum Speichern und Abrufen von Schlüssel-Wert-Paaren verwendet wird.

Die Anwendung Windows-Systemmonitor , die standardmäßig im Windows-Betriebssystem verfügbar ist, kann zum Erfassen und Anzeigen von Leistungsindikatordaten verwendet werden. Azure Diagnostics ist eine weitere Option für das Erfassen von Leistungsindikatordaten und Hochladen in Azure-Tabellen.

Namen von Leistungsindikatorinstanzen

Ein Cluster mit einer großen Anzahl von Reliable Services oder Reliable Service-Partitionen weist eine große Anzahl von Transaktionsreplikator-Leistungsindikatorinstanzen auf. Dies gilt auch für TStore-Leistungsindikatoren, wird jedoch auch durch die Anzahl der verwendeten zuverlässigen Wörterbüchern und zuverlässigen Warteschlangen multipliziert. Die Namen der Leistungsindikatorinstanzen können die Identifizierung spezifischer Partitionen, Dienstreplikate und Zustandsanbieter erleichtern, mit denen die Leistungsindikatorinstanz verknüpft ist.

Service Fabric-Transaktionsreplikator-Kategorie

Für die Kategorie Service Fabric Transactional Replicatorhaben die Namen von Leistungsindikatorinstanzen das folgende Format:

ServiceFabricPartitionId:ServiceFabricReplicaId

ServiceFabricPartitionId ist die Zeichenfolgendarstellung der Service Fabric-Partitions-ID, mit der die Leistungsindikatorinstanz verknüpft ist. Die Partitions-ID ist eine GUID. Ihre Zeichenfolgendarstellung wird mithilfe von Guid.ToString mit dem Formatbezeichner „D“ generiert.

ServiceFabricReplicaId die ID, die einem bestimmten Replikat eines Reliable Service zugeordnet ist. Die Replikat-ID wird in den Namen der Leistungsindikatorinstanz eingefügt, um deren Eindeutigkeit sicherzustellen und Konflikte mit anderen, von derselben Partition generierten Leistungsindikatorinstanzen zu vermeiden. Weitere Details zu Replikaten und ihrer Rolle in Reliable Services finden Sie hier.

Der folgende Indikatorinstanzname ist typisch für einen Indikator unter der Service Fabric Transactional Replicator-Kategorie:

00d0126d-3e36-4d68-98da-cc4f7195d85e:131652217797162571

Im vorherigen Beispiel ist 00d0126d-3e36-4d68-98da-cc4f7195d85e die Zeichenfolgendarstellung der Service Fabric-Partitions-ID und 131652217797162571 die Replikat-ID.

Service Fabric TStore-Kategorie

Für die Kategorie Service Fabric TStorehaben die Namen von Leistungsindikatorinstanzen das folgende Format:

ServiceFabricPartitionId:ServiceFabricReplicaId:StateProviderId_PerformanceCounterInstanceDifferentiator_StateProviderName

ServiceFabricPartitionId ist die Zeichenfolgendarstellung der Service Fabric-Partitions-ID, mit der die Leistungsindikatorinstanz verknüpft ist. Die Partitions-ID ist eine GUID. Ihre Zeichenfolgendarstellung wird mithilfe von Guid.ToString mit dem Formatbezeichner „D“ generiert.

ServiceFabricReplicaId die ID, die einem bestimmten Replikat eines Reliable Service zugeordnet ist. Die Replikat-ID wird in den Namen der Leistungsindikatorinstanz eingefügt, um deren Eindeutigkeit sicherzustellen und Konflikte mit anderen, von derselben Partition generierten Leistungsindikatorinstanzen zu vermeiden. Weitere Details zu Replikaten und ihrer Rolle in Reliable Services finden Sie hier.

StateProviderId ist die einem Zustandsanbieter zugeordnete ID innerhalb eines zuverlässigen Diensts. Die Zustandsanbieter-ID ist im Namen der Leistungsindikatorinstanz enthalten, damit TStores voneinander unterschieden werden können.

PerformanceCounterInstanceDifferentiator ist eine als Unterscheidungsmerkmal dienende ID, die einer Leistungsindikatorinstanz in einem Zustandsanbieter zugeordnet ist. Das Unterscheidungsmerkmal wird in den Namen der Leistungsindikatorinstanz eingefügt, um deren Eindeutigkeit sicherzustellen und Konflikte mit anderen, von demselben Zustandsanbieter generierten Leistungsindikatorinstanzen zu vermeiden.

StateProviderName ist der einem Zustandsanbieter zugeordnete Name innerhalb eines zuverlässigen Diensts. Der Name des Zustandsanbieters ist in die Namen der Leistungsindikatorinstanz eingeschlossen, sodass Benutzer den angegebenen Zustand leicht erkennen können.

Der folgende Indikatorinstanzname ist typisch für einen Indikator unter der Service Fabric TStore-Kategorie:

00d0126d-3e36-4d68-98da-cc4f7195d85e:131652217797162571:142652217797162571_1337_urn:MyReliableDictionary/dataStore

Im vorherigen Beispiel ist 00d0126d-3e36-4d68-98da-cc4f7195d85e die Zeichenfolgendarstellung der Service Fabric-Partitions-ID, 131652217797162571 die Replikat-ID, 142652217797162571 die Zustandsanbieter-ID und 1337 das Unterscheidungsmerkmal der Leistungsindikatorinstanz. urn:MyReliableDictionary/dataStore ist der Name des Zustandsanbieters, in dem Daten für die Sammlung mit dem Namen urn:MyReliableDictionary gespeichert sind.

Transaktionsreplikator-Leistungsindikatoren

Die Reliable Services-Runtime gibt die folgenden Ereignisse unter der Service Fabric Transactional Replicator-Kategorie aus.

Name des Leistungsindikators BESCHREIBUNG
Gestartete Transaktionsvorgänge/Sek Die Anzahl der neuen Schreibtransaktionen, die pro Sekunde erstellt werden.
Transaktionsvorgänge/Sek Die Anzahl der pro Sekunde für zuverlässige Sammlungen durchgeführten Hinzufügungs-/Aktualisierungs-/Löschvorgänge.
Protokollleerung in Bytes/Sek Die Anzahl von Bytes, die pro Sekunde vom Transaktionsreplikator auf den Datenträger geleert werden
Gedrosselte Vorgänge/Sek Die Anzahl der Vorgänge, die pro Sekunde vom Transaktionsreplikator aufgrund von Drosselung abgelehnt werden.
Durchschn. Transaktionsdauer in ms/Commit Durchschnittliche Commitlatenz pro Transaktion in Millisekunden
Durchschn. Wartezeit beim Leeren (ms) Durchschnittliche Dauer der Vorgänge des Leerens auf die Festplatte, die vom Transaktionsreplikator gestartet werden, in Millisekunden

TStore-Leistungsindikatoren

Die Reliable Services-Runtime gibt die folgenden Ereignisse unter der Service Fabric TStore-Kategorie aus.

Name des Leistungsindikators BESCHREIBUNG
Anzahl der Elemente Die Anzahl von Elementen im Speicher
Datenträgergröße Gesamtgröße von Prüfpunktdateien für den Speicher auf dem Datenträger in Byte
Für Prüfpunktdatei geschriebene Bytes/s Die Anzahl von Bytes, die pro Sekunde für die letzte Prüfpunktdatei geschrieben wurden
Beim Kopieren des Datenträgers übertragene Bytes/s Die Anzahl gelesener (auf primärem Replikat) oder geschriebener (auf sekundärem Replikat) Datenträgerbytes pro Sekunde beim Speichern einer Kopie

Nächste Schritte

EventSource-Anbieter in PerfView