Funkcja diagnostyki dla stanowych usług Reliable Services
Klasa Stateful Reliable Services statefulServiceBase usługi Azure Service Fabric emituje zdarzenia EventSource , które mogą służyć do debugowania usługi, zapewniają wgląd w sposób działania środowiska uruchomieniowego i pomoc w rozwiązywaniu problemów.
Zdarzenia źródła zdarzeń
Nazwa źródła zdarzeń dla klasy Stateful Reliable Services StatefulServiceBase to "Microsoft-ServiceFabric-Services". Zdarzenia z tego źródła zdarzeń są wyświetlane w oknie Zdarzenia diagnostyczne, gdy usługa jest debugowana w programie Visual Studio.
Przykłady narzędzi i technologii, które pomagają w zbieraniu i/lub wyświetlaniu zdarzeń EventSource, to PerfView, Diagnostyka Azure i Biblioteka Microsoft TraceEvent.
Zdarzenia
Nazwa zdarzenia | Identyfikator zdarzenia | Poziom | Opis zdarzenia |
---|---|---|---|
StatefulRunAsyncInvocation | 1 | Informacyjny | Emitowane po uruchomieniu zadania RunAsync usługi |
StatefulRunAsyncCancellation | 2 | Informacyjny | Emitowane po anulowaniu zadania RunAsync usługi |
StatefulRunAsyncCompletion | 3 | Informacyjny | Emitowane po zakończeniu zadania RunAsync usługi |
StatefulRunAsyncSlowCancellation | 100 | Ostrzeżenie | Emitowane, gdy zadanie RunAsync usługi trwa zbyt długo, aby ukończyć anulowanie |
StatefulRunAsyncFailure | 5 | Błąd | Emitowane, gdy zadanie RunAsync usługi zgłasza wyjątek |
Interpretowanie zdarzeń
Zdarzenia StatefulRunAsyncInvocation, StatefulRunAsyncCompletion i StatefulRunAsyncCancellation są przydatne dla składnika zapisywania usługi, aby zrozumieć cykl życia usługi, a także czas rozpoczęcia, anulowania lub zakończenia usługi. Te informacje mogą być przydatne podczas debugowania problemów z usługą lub zrozumienia cyklu życia usługi.
Autorzy usług powinni zwrócić szczególną uwagę na zdarzenia StatefulRunAsyncSlowCancellation i StatefulRunAsyncFailure, ponieważ wskazują problemy z usługą.
StanfulRunAsyncFailure jest emitowany za każdym razem, gdy zadanie RunAsync() usługi zgłasza wyjątek. Zazwyczaj zgłoszony wyjątek wskazuje błąd lub usterkę w usłudze. Ponadto wyjątek powoduje niepowodzenie usługi, więc jest przenoszony do innego węzła. Ta operacja może być kosztowna i może opóźnić żądania przychodzące podczas przenoszenia usługi. Autorzy usług powinni określić przyczynę wyjątku i, jeśli to możliwe, go złagodzić.
StatefulRunAsyncSlowCancellation jest emitowany za każdym razem, gdy żądanie anulowania dla zadania RunAsync trwa dłużej niż cztery sekundy. Gdy anulowanie usługi trwa zbyt długo, ma to wpływ na możliwość szybkiego ponownego uruchomienia usługi w innym węźle. Ten scenariusz może mieć wpływ na ogólną dostępność usługi.
Liczniki wydajności
Środowisko uruchomieniowe usług Reliable Services definiuje następujące kategorie liczników wydajności:
Kategoria | opis |
---|---|
Replikator transakcyjny usługi Service Fabric | Liczniki specyficzne dla transakcyjnego replikatora usługi Azure Service Fabric |
Service Fabric TStore | Liczniki specyficzne dla magazynu TStore usługi Azure Service Fabric |
Transakcyjny replikator usługi Service Fabric jest używany przez menedżera niezawodnego stanu do replikowania transakcji w danym zestawie replik.
Magazyn TStore usługi Service Fabric jest składnikiem używanym w elementach Reliable Collections do przechowywania i pobierania par klucz-wartość.
Aplikacja systemu Windows monitor wydajności, która jest domyślnie dostępna w systemie operacyjnym Windows, może służyć do zbierania i wyświetlania danych licznika wydajności. Diagnostyka Azure to kolejna opcja zbierania danych licznika wydajności i przekazywania ich do tabel platformy Azure.
Nazwy wystąpień licznika wydajności
Klaster, który ma dużą liczbę niezawodnych usług lub niezawodnych partycji usługi, będzie miał dużą liczbę wystąpień licznika wydajności replikatora transakcyjnego. Dotyczy to również liczników wydajności magazynu TStore, ale jest również mnożona przez liczbę używanych słowników reliable i reliable queues. Nazwy wystąpień licznika wydajności mogą pomóc w zidentyfikowaniu określonej partycji, repliki usługi i dostawcy stanu w przypadku usługi TStore, z którą jest skojarzone wystąpienie licznika wydajności.
Kategoria replikatora transakcyjnego usługi Service Fabric
W przypadku kategorii Service Fabric Transactional Replicator
nazwy wystąpień licznika mają następujący format:
ServiceFabricPartitionId:ServiceFabricReplicaId
ServiceFabricPartitionId to ciąg reprezentujący identyfikator partycji usługi Service Fabric skojarzony z wystąpieniem licznika wydajności. Identyfikator partycji jest identyfikatorem GUID, a jego reprezentacja ciągu jest generowana za pomocą Guid.ToString
specyfikatora formatu "D".
ServiceFabricReplicaId jest identyfikatorem skojarzonym z daną repliką niezawodnej usługi. Identyfikator repliki jest uwzględniony w nazwie wystąpienia licznika wydajności, aby zapewnić jego unikatowość i uniknąć konfliktu z innymi wystąpieniami licznika wydajności generowanymi przez tę samą partycję. Więcej szczegółów dotyczących replik i ich roli w niezawodnych usługach można znaleźć tutaj.
Następująca nazwa wystąpienia licznika jest typowa dla licznika w Service Fabric Transactional Replicator
kategorii:
00d0126d-3e36-4d68-98da-cc4f7195d85e:131652217797162571
W poprzednim przykładzie 00d0126d-3e36-4d68-98da-cc4f7195d85e
jest ciągiem reprezentującym identyfikator partycji usługi Service Fabric i 131652217797162571
jest identyfikatorem repliki.
Kategoria TStore usługi Service Fabric
W przypadku kategorii Service Fabric TStore
nazwy wystąpień licznika mają następujący format:
ServiceFabricPartitionId:ServiceFabricReplicaId:StateProviderId_PerformanceCounterInstanceDifferentiator_StateProviderName
ServiceFabricPartitionId to ciąg reprezentujący identyfikator partycji usługi Service Fabric skojarzony z wystąpieniem licznika wydajności. Identyfikator partycji jest identyfikatorem GUID, a jego reprezentacja ciągu jest generowana za pomocą Guid.ToString
specyfikatora formatu "D".
ServiceFabricReplicaId jest identyfikatorem skojarzonym z daną repliką niezawodnej usługi. Identyfikator repliki jest uwzględniony w nazwie wystąpienia licznika wydajności, aby zapewnić jego unikatowość i uniknąć konfliktu z innymi wystąpieniami licznika wydajności generowanymi przez tę samą partycję. Więcej szczegółów dotyczących replik i ich roli w niezawodnych usługach można znaleźć tutaj.
StateProviderId to identyfikator skojarzony z dostawcą stanu w ramach niezawodnej usługi. Identyfikator dostawcy stanu jest uwzględniony w nazwie wystąpienia licznika wydajności, aby odróżnić magazyn TStore od innego.
PerformanceCounterInstanceDifferentiator to identyfikator różnicujący skojarzony z wystąpieniem licznika wydajności w ramach dostawcy stanu. Ten różnicnik jest uwzględniony w nazwie wystąpienia licznika wydajności, aby zapewnić jego unikatowość i uniknąć konfliktu z innymi wystąpieniami licznika wydajności generowanymi przez tego samego dostawcę stanu.
StateProviderName to nazwa skojarzona z dostawcą stanu w ramach niezawodnej usługi. Nazwa dostawcy stanu jest uwzględniona w nazwie wystąpienia licznika wydajności dla użytkowników, aby łatwo zidentyfikować stan, który zapewnia.
Następująca nazwa wystąpienia licznika jest typowa dla licznika w Service Fabric TStore
kategorii:
00d0126d-3e36-4d68-98da-cc4f7195d85e:131652217797162571:142652217797162571_1337_urn:MyReliableDictionary/dataStore
W poprzednim przykładzie 00d0126d-3e36-4d68-98da-cc4f7195d85e
to ciąg reprezentujący identyfikator partycji usługi Service Fabric, 131652217797162571
jest identyfikatorem repliki, 142652217797162571
identyfikatorem dostawcy stanu i 1337
jest różnicowym wystąpieniem licznika wydajności. urn:MyReliableDictionary/dataStore
to nazwa dostawcy stanu, który przechowuje dane dla kolekcji o nazwie urn:MyReliableDictionary
.
Liczniki wydajności transakcyjnego replikatora
Środowisko uruchomieniowe usług Reliable Services emituje następujące zdarzenia w Service Fabric Transactional Replicator
kategorii
Nazwa licznika | opis |
---|---|
Rozpocznij operacje Txn na sekundę | Liczba nowych transakcji zapisu utworzonych na sekundę. |
Operacje txn/s | Liczba operacji dodawania/aktualizowania/usuwania wykonywanych na niezawodnych kolekcjach na sekundę. |
Bajty opróżniania dziennika/s | Liczba bajtów opróżnionych na dysk przez transakcyjnego replikatora na sekundę |
Operacje ograniczone/s | Liczba operacji odrzuconych co sekundę przez transakcyjnego replikatora z powodu ograniczania przepustowości. |
Średnia transakcja ms/commit | Średnie opóźnienie zatwierdzenia na transakcję w milisekundach |
Średnie opóźnienie opróżniania (ms) | Średni czas trwania operacji opróżniania dysku zainicjowanych przez transakcyjnego replikatora w milisekundach |
Liczniki wydajności magazynu TStore
Środowisko uruchomieniowe usług Reliable Services emituje następujące zdarzenia w Service Fabric TStore
kategorii
Nazwa licznika | opis |
---|---|
Liczba elementów | Liczba elementów w sklepie. |
Rozmiar dysku | Łączny rozmiar dysku w bajtach plików punktu kontrolnego dla magazynu. |
Bajty zapisu pliku punktu kontrolnego na sekundę | Liczba bajtów zapisanych na sekundę dla najnowszego pliku punktu kontrolnego. |
Kopiowanie bajtów transferu dysku na sekundę | Liczba odczytanych bajtów dysku (w repliki podstawowej) lub zapisanych (w repliki pomocniczej) na sekundę podczas kopiowania magazynu. |