Udostępnij za pośrednictwem


Jak monitorować aplikacje w środowisku Java

 

W trakcie poznawania nowej aplikacji Java warto posłużyć się programem Java Application Performance Monitoring, aby uzyskać pewne miary bazowe, zanim dokona się stopniowego skalowania wdrożenia. Oto ustawienia, od których warto zacząć, pomocne w poznawaniu nowej aplikacji. Najlepiej przy tym — w sytuacji idealnej — rozpocząć monitorowanie w środowisku testowym lub deweloperskim.

Monitorowanie ustawień nowej aplikacji

Zastosowanie tej strategii do monitorowania nowej aplikacji Java pomoże rozpoznać zachowanie tej aplikacji w danym systemie i pod kątem potrzeb klienta.

Zacznij monitorowanie od prostego systemu monitorowanego i ustawień krótkoterminowych

Po pierwsze konfiguracja powinna być prosta: monitoruj jedną aplikację na jednym serwerze. Po drugie, podczas pierwszej konfiguracji programu Java Application Performance Monitoring pod kątem monitorowania nowej aplikacji zaplanuj utrzymanie zaimplementowanych ustawień na tyle długo, by móc zorientować się w pewnych trendach. Do uzyskania wglądu w prawidłowości dotyczące wydajności i wykorzystania aplikacji powinny wystarczyć dane z jednego dnia.

Ustal wydajność bazową na podstawie ustawień domyślnych i częściowo dostosowanych

W większości przypadków warto zachować ustawienia domyślne. Dzięki ustawieniom domyślnym da się zauważyć wszelkie istotne problemy z monitorowaną aplikacją, a zarazem zmniejszyć do minimum negatywny wpływ na jej działanie.

Jeśli nie są zgłaszane żadne zdarzenia dotyczące wydajności ani zdarzenia wyjątków, można skorzystać z poniższych kroków, aby uzyskać pewne pojęcie o tym, jak wygląda wydajność na poziomie bazowym.

Na początku monitorowania warto pomyśleć o dostosowaniu pewnych ustawień w następujący sposób:

  • Obniż wartości progowe wydajności. Pomoże to ustalić miarę wydajności bazowej dzięki sprawdzeniu charakterystyki aktualnej wydajności aplikacji. Więcej informacji o wartościach progowych wydajności znajduje się w temacie Jak konfigurować monitorowanie aplikacji Java.

  • Badaj wszystkie wyjątki. Musisz wiedzieć, jakiego rodzaju wyjątki są zgłaszane. Aby ograniczyć liczbę uzyskiwanych wyjątków, skorzystaj ze znanych programów do obsługi wyjątków.

Wynikiem powyższych działań może być duża ilość danych — większa niż byłaby wskazana w monitorowaniu długoterminowym — ale z początku taka ilość okaże się pomocna, bo pozwoli zauważyć pewne trendy, takie jak rodzaje ścieżek, którymi klienci poruszają się po systemie, czy parametry normalnej wydajności.

Po zakończonym zbieraniu danych skorzystaj z raportów programu Application Advisor, takich jak analiza wydajności aplikacji, w celu zbadania stanu monitorowanych aplikacji. Na podstawie raportu będziesz w stanie poznać średni czas trwania najbardziej obciążających (najdłużej działających) wywołań w systemie, a także maksymalną ilość czasu, jaką zajmuje przetwarzanie żądań. Pozwoli to ustawić dostosowane, inteligentne wartości progowe, oparte na realnej wydajności aplikacji. Można też przekonać się, które funkcje działają szybciej od innych, a także tworzyć konkretne transakcje stron sieci Web, metod sieci Web i funkcji pod kątem krytycznych metod, aby upewnić się, że ich odpowiedzi spełniają warunki bardziej wymagającej umowy SLA niż aplikacja jako całość. Aby uzyskać więcej informacji o wyświetlaniu raportów, zobacz, jak określać zakres raportu programu Application Advisor i uruchamiać go, w temacie Priorytetyzowanie alertów za pomocą programu Application Advisor.

Dopasuj ustawienia i porównaj z wydajnością bazową

Po ustaleniu miary wydajności bazowej zacznij dopasowywać ustawienia, aby dostroić monitorowanie pod kątem przechwytywania zgłaszanych rodzajów wyjątków. Dzięki raportowaniu wszystkich wyjątków przekonasz się, czy w aplikacji nie ma jakiejś domyślnej obsługi wyjątków, przechwytującej te wyjątki, w przypadku których preferowane byłoby uzyskiwanie alertów. Po każdym dopasowaniu uzyskiwanych danych będzie mniej i będą bardziej znaczące.

  • Usuń ustawienia niestandardowe i ustaw wartości progowe na podstawie zebranych danych.

  • Dodaj obsługę wyjątków dla wszelkich „wszystkoprzechwytujących” modułów obsługi poziomu aplikacji, które nie pozwalają wyjątkom wydostawać się z aplikacji.

  • Dodaj wyspecjalizowane transakcje w celu monitorowania wydajności popularnych metod, które powinny być objęte bardziej restrykcyjną umową SLA niż aplikacja jako całość.

Porównaj nowe dane z ustalonymi wcześniej wartościami bazowymi. Zaczniesz na przykład obserwować realny średni czas odpowiedzi. Teraz, znając różne wysyłane przez aplikację wyjątki dotyczące wydajności, zamiast monitorować wszystkie obszary nazw, można dodawać do monitorowania konkretne z nich. Monitorowanie aplikacji zostanie skonfigurowane na podstawie zaobserwowanych poziomów wydajności i jeśli coś przekroczy normalne poziomy, uzyskasz odpowiednie alerty.

Stopniowo wdrażaj aplikację na kolejnych monitorowanych serwerach w systemie

Po monitorowaniu aplikacji przez pewien czas za pomocą nowej konfiguracji monitorowania, kiedy uznasz, że aplikacja jest w dobrej kondycji, zwiększ liczbę serwerów, na których jest ona uruchamiana i monitorowana, na przykład z jednego do dziesięciu. Kiedy już będzie działać w dobrej kondycji na tym poziomie, rozszerz jej wdrożenie i monitorowanie na więcej serwerów i tak dalej. Takie podejście, polegające na stopniowym wdrażaniu, pomaga nabrać większej pewności co do monitorowania danej aplikacji i zapewnić dobrą kondycję całego systemu.

Jak te informacje mogą przydać się operatorowi

Korzystając z tych podstawowych informacji, operator może lepiej zorientować się, w którym miejscu aplikacji lub infrastruktury leży problem oraz czy jest to coś, co może naprawić tylko zespół deweloperów, czy też coś, czym operator może zająć się bezpośrednio.