Ćwiczenie — definiowanie stanu kondycji, metryk i progów

Ukończone

W tym ćwiczeniu kontynuujemy utworzoną wcześniej strukturę modelu kondycji. Twoim zadaniem jest określenie ilościowych stanów kondycji poszczególnych składników dla przykładowej aplikacji.

W strukturze modelu kondycji zacznij od oceny warstw zaczynających się od góry przy użyciu przepływów użytkownika i przejdź do niższych warstw.

Stan kondycji przepływu użytkownika

Do tej pory zidentyfikowaliśmy dwa przepływy użytkowników: Wyświetlanie listy elementów wykazu i Dodawanie komentarza. Aby określić stany kondycji dla każdego przepływu, zadaj pytania, takie jak:

  • Kiedy przepływ użytkownika jest uznawany za w dobrej kondycji?
  • Czy może działać w stanie obniżonej wydajności?

Na podstawie wymagań implementacji i funkcjonalności zidentyfikuj składniki aplikacji, które uczestniczą w przepływie użytkownika. Składniki są opisane w sekcji Przykładowe składniki architektury.

Przepływ użytkownika Składniki
Wyświetlanie listy elementów wykazu Wewnętrzna aplikacja internetowa frontonu, interfejs API wykazu
Dodaj komentarz Wewnętrzna aplikacja internetowa frontonu, interfejs API wykazu, procesor w tle

Jeśli którykolwiek z tych składników stanie się w złej kondycji, oczekuje się, że przepływ użytkownika stanie się w złej kondycji.

Uwaga

Niektóre aplikacje mogą działać w specjalnym trybie obniżonej wydajności . Jeśli na przykład firma Contoso Shoes implementuje buforowanie przeglądarki lokalnej, pracownicy korzystający z aplikacji internetowej mogą tworzyć komentarze, ale nie można wysyłać komentarzy, a widok klienta nie zostanie zaktualizowany, dopóki interfejs API wykazu nie stanie się w dobrej kondycji, co przeglądarka może stale sprawdzać.

Stan kondycji składnika aplikacji

Określanie metryk, które przyczyniają się do stanu kondycji składnika. W tym kroku musisz znać funkcjonalność składnika. Zadaj pytania, takie jak:

  • Jaki czas przetwarzania interfejsu API jest akceptowalny, aby zachować dobre środowisko użytkownika?
  • Czy występują jakieś oczekiwane błędy? Jaka jest "normalna" szybkość błędów?
  • Jaki jest "normalny" czas przetwarzania? Co to znaczy, jeśli czas przetwarzania jest wyższy niż zwykle?
  • Co się stanie z operacjami zapisu, jeśli usługa Azure Cosmos DB nie jest osiągalna?

Te pytania powinny prowadzić do konkretnych i mierzalnych progów kluczowych metryk. Możesz na przykład rozważyć te wartości progowe dla składnika interfejsu API wykazu.

Metryki i próg Kondycja
Czas < odpowiedzi 150 ms Liczba nieudanych żądań < 10 Dobra kondycja
Czas < odpowiedzi 300 ms Liczba nieudanych żądań < 50 Obniżona wydajność
Czas > odpowiedzi 300 ms Liczba nieudanych żądań > 50 Nieprawidłowy

Wartości można uzyskać z rozwiązania do monitorowania aplikacji, takiego jak Application Insights.

Stan kondycji zasobu platformy Azure

Stany kondycji usługi platformy Azure są oparte na określonych zasobach. Na przykład usługa Azure Cosmos DB raportuje wykorzystanie jednostek transakcji bazy danych (DTU), a usługi aplikacja systemu Azure zawierają informacje o wykorzystaniu procesora CPU.

Aby uzyskać informacje o metrykach według typu zasobu, zobacz Obsługiwane metryki w usłudze Azure Monitor.

Stany kondycji i progi

Po ocenie wszystkich warstw aplikacji powinna zostać wyświetlona lista składników i ich definicji stanu kondycji, które wyglądają podobnie do tego przykładu.

Składnik Wskaźnik/metryka Dobra kondycja Obniżona wydajność Nieprawidłowy
Wyświetlanie listy elementów wykazu — przepływ użytkownika Podstawowy stan kondycji Fronton w dobrej kondycji i interfejs API wykazu w dobrej kondycji
Dodawanie przepływu użytkownika komentarza Podstawowy stan kondycji Fronton w dobrej kondycji, interfejs API wykazu w dobrej kondycji i procesor w tle
Aplikacja internetowa frontonu Liczba odpowiedzi HTTP innych niż 20x/min 0 1-10 > 10
Interfejs API wykazu Liczba wyjątków na sekundę < 10 10-50 > 10
Średni czas przetwarzania (ms) < 150 150-500 > 500
Procesor w tle Średni czas w kolejce (ms) < 200 200-1,000 > 1,000
Średni czas przetwarzania (ms) < 100 100-200 > 200
Liczba niepowodzeń < 3 3-10 > 10
Azure Cosmos DB Wykorzystanie jednostek DTU < 70% 70%-90% > 90%
Azure Key Vault Liczba niepowodzeń < 3 3-10 > 10
Azure Event Hubs Przetwarzanie długości listy prac (komunikaty wychodzące/przychodzące) < 3 3-20 > 20
Azure Blob Storage Średnie opóźnienie (ms) < 100 100-200 > 200

W tym przykładzie tolerancja błędów dla aplikacji internetowej frontonu i interfejsu API wykazu jest inna. Ta różnica odnosi się do wiedzy technicznej aplikacji. Wszystkie błędy frontonu powinny być obsługiwane po stronie klienta, więc istnieje próg zerowy. Jednak w warstwie interfejsu API 10 wyjątków może uwzględniać błędy spowodowane przez użytkownika. Na przykład błędy, takie jak 404 — Nie znaleziono , nie muszą wskazywać problemu z kondycją.