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 Replicator
haben 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 TStore
haben 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 |