Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano, jak rozpocząć korzystanie z agenta diagnostycznego Java. Opisano w nim również narzędzie diagnostyczne Java we wtyczce AKS dla środowiska IntelliJ IDEA.
Agent diagnostyczny Java to agent Java do rozwiązywania problemów z procesem Java. Nie wymaga ponownego kompilowania, ponownego wdrażania ani ponownego uruchamiania aplikacji. Obecnie obsługuje dodawanie logów dla funkcji w klasie Java. Po wywołaniu funkcji dziennik jest drukowany wraz z obliczeniem całkowitego czasu zużywanego przez funkcję.
Warunki wstępne
diag4j zainstalowane w klastrze.
Java LTS w wersji 11, 17 lub 21.
Wtyczka środowiska IntelliJ IDEA zainstalowana lokalnie za pośrednictwem Settings>Plugins>Install Plugin from Disk.
Aplikacje Java do rozwiązywania problemów. Aby uzyskać więcej informacji, zobacz Deploy Spring Boot Application to the Azure Kubernetes Service (Wdrażanie aplikacji Spring Boot w usłudze Azure Kubernetes Service).
Konfiguracja przekierowania portów
Użyj następującego polecenia, aby ustanowić przekierowanie portów do usługi agenta.
kubectl port-forward svc/diag4j-agent-service -n <namespace> <port>:8080
Użyj narzędzia diagnostycznego Java w wtyczce AKS w środowisku IntelliJ IDEA
Użyj wtyczki Java Diagnostic Tool on AKS, aby podłączyć agenta Java Diagnostic Agent do aplikacji Java uruchomionej w kontenerze poda w klastrze Azure Kubernetes Service (AKS).
Po podłączeniu agenta możesz diagnozować problemy, dodając logi w kodzie otaczającym funkcję klasy. Użyj tego dziennika, aby sprawdzić, czy funkcja jest wykonywana, i obliczać całkowity czas spędzony w funkcji. Ta analiza może pomóc w zlokalizowaniu wąskich gardeł wydajności w aplikacji.
Karta Diagnostyka zawiera konfigurację wtyczki. W tym miejscu możesz:
- Skonfiguruj port lokalny, który przekierowuje do usługi agenta.
- Wyświetl pody z oznaczeniem
kubeconfigw swoim środowisku lokalnym. - Wybierz pozycję Odśwież, aby odświeżyć tabelę zasobników. Po przełączeniu klastra odśwież tabelę, aby załadować pody w nowym klastrze.
Dołącz agenta
Kontener poda musi mieć folder /tmp i musi mieć uprawnienia do zapisu w folderze /tmp.
Aby umożliwić dołączanie agenta do JVM, nie dodawaj -XX:+DisableAttachMechanism do opcji JVM.
Serwer diagnostyczny zaplecza jest zamykany po 6 godzinach.
Aby dołączyć agenta, wybierz zasobnik, do którego chcesz dołączyć agenta, a następnie wybierz kontener. Agenta można dołączyć tylko do jednego kontenera w zasobniku. Następnie poczekaj na ukończenie procesu dołączania.
Ustaw aktywny kontener pod
Po pomyślnym dołączeniu agenta użyj go do rozwiązywania problemów.
Wiele zasobników mogło wstrzyknąć agenta, więc należy ustawić aktywny zasobnik. W środowisku IntelliJ IDEA na karcie diagnostyki kliknij prawym przyciskiem myszy pod, a następnie wybierz Ustaw jako aktywny.
Dodaj rejestrowanie do funkcji klasy
Skonfigurowany dziennik zostanie automatycznie usunięty po 30 minutach.
Za pomocą narzędzia można dodawać logowanie funkcji klas, ale nie interfejsów, konstruktorów itd.
Aby dodać rejestrowanie do funkcji, kliknij ją prawym przyciskiem myszy w edytorze, a następnie wybierz pozycję Java Diagnostic>Add AroundLog, jak pokazano na poniższym zrzucie ekranu.
W tym przykładzie po dodaniu rejestrowania można wywołać <host>/infor, aby wyświetlić dane wyjściowe podobne do poniższego przykładu przed i po wywołaniu funkcji:
===== START ===== Method: updateInformation Start Time: 2024-12-12T07:37:55.404107848Z
Done with the validation
Done with the DB access
Done with the data filtering
===== END ===== Method: updateInformation End Time: 2024-12-12T07:37:55.404316940Z Total Time: 0 milliseconds
Usuń wszystkie skonfigurowane dzienniki
Aby usunąć wszystkie dzienniki dodane przez agenta, wybierz pozycję Usuń wszystkie dzienniki AroundLogs.
Notatka
Kontener efemeryczny w podzie używa agenta Java backendu. Po ponownym uruchomieniu zasobnika agent zostanie usunięty.
Rozwiązywanie problemów
Podczas próby dołączenia agenta do zasobnika uruchomionego w węźle, który nie jest jeszcze włączony dla tej funkcji, może wystąpić przekroczenie limitu czasu. Przekroczenie limitu czasu występuje, ponieważ węzeł najpierw musi pobrać obraz agenta, co powoduje opóźnienie. Gdy wystąpi to opóźnienie, wybierz pozycję Odśwież , aby sprawdzić, czy agent jest dołączony, lub spróbuj ponownie dołączyć agenta.
Jeśli załącznik zakończy się niepowodzeniem, sprawdź dziennik o nazwie diagnostic-container-<hashcode> w kontenerze efemerycznym.
Informacje o operacjach wtyczki można znaleźć w dziennikach w kontenerze pod o nazwie diag4j-agent-service-<hashcode>.