Narzędzie diagnostyczne Java (diag4j) w usłudze Azure Kubernetes Service (AKS)
Ten artykuł zawiera omówienie narzędzia diagnostycznego Java (diag4j) w usłudze Azure Kubernetes Service (AKS). Narzędzie diag4j to lekkie, nienatralne rozwiązanie do monitorowania i diagnostyki dla aplikacji Java działających w usłudze Azure Kubernetes Service.
Najważniejsze korzyści
Narzędzie diag4j zapewnia następujące kluczowe korzyści:
- Lekkie i nieinwazyjne: dzięki wykorzystaniu narzędzia Spring Boot Admin (SBA) i agenta dołączania języka Java narzędzie jest wydajne pod względem zasobów i nie wymaga głębokich modyfikacji aplikacji.
- Automatyczna integracja z Kubernetes: narzędzie automatycznie wykrywa pody z udostępnionymi punktami końcowymi usługi Actuator, wyświetlając je na pulpicie nawigacyjnym SBA.
- Metryki i diagnostyka w czasie rzeczywistym: narzędzie wyświetla metryki aplikacji w czasie rzeczywistym, stan zbierania śmieci (GC) i zmienne środowiskowe. Możesz również dynamicznie dostosowywać poziomy dzienników w celu dokładniejszego wglądu w konkretne problemy.
- Zaawansowana diagnostyka: narzędzie oferuje ulepszone funkcje diagnostyczne, takie jak inspekcja śledzenia stosu, wyświetlanie zmiennych lokalnych, generowanie zrzutów sterty i wątków oraz dynamiczne wstrzykiwanie dzienników na potrzeby rozwiązywania problemów.
- Zgodność ze środowiskiem IDE: narzędzie integruje się z środowiskami IDE, aby umożliwić debugowanie bez konieczności ponownego kompilowania lub ponownego wdrażania aplikacji, co umożliwia usprawnione rozwiązywanie problemów.
Architektura
Narzędzie diag4j składa się z następujących składników:
- Serwer Spring Boot Admin, który ma rolę tylko do odczytu w swojej przestrzeni nazw, aby automatycznie odkrywać i monitorować zasobniki udostępniające punkty końcowe siłownika.
- Agent dołączania Java, który jest lekkim agentem Java łączącym się z uruchomionymi procesami Java, umożliwiając diagnostykę bez ponownego uruchamiania aplikacji.
Aby zachować bezpieczeństwo podczas bieżącego kamienia milowego, te składniki nie są udostępniane publicznie. Dostęp do narzędzia można uzyskać za pomocą polecenia kubectl port-forward
.