Как получить отчеты об ошибках GCP из приложения Java, работающего на GKE (движок Google Kubernetes)
В случае Java App Engine, если происходит исключение из Java App, я могу автоматически получать отчеты об ошибках GCP, как это
Но в случае Java-приложения на GKE я не могу получить отчеты об ошибках GCP
Как это может?
2 ответа
Вам следует установить Stackdriver Kubernetes Monitoring в GKE; в то время как можно также использовать это вместе с Прометеем. Эти функции в настоящее время все еще находятся в стадии бета-тестирования (не охвачены никаким SLA). см. также сборщик данных Fluentd, который весьма актуален для Logging API
, эта визуальная схема может объяснить это наиболее надежно, кто сообщает кому:
этот пример SLF4J показывает, как вести журнал из среды Java, там есть соответствующая документация для регистрации событий приложений с Java (что вы, возможно, действительно искали). в принципе, регистратор в среде Java должен сообщать локальному агенту, что происходит.
касательно Logging API
в Kubernetes см. Ведение журнала с использованием Stackdriver и Настройка журналов Stackdriver для двигателя Kubernetes с помощью Fluentd; Есть несколько способов сделать это.
Monitoring API
и Logging API
могут использоваться независимо, несмотря на то, что они используют одни и те же ресурсы и одну и ту же временную шкалу, поэтому использование обоих имеет смысл.
относительно объема доступа требуется:
Вы должны быть владельцем проекта, содержащего ваш кластер.
Как уже упоминалось в документе Документирование ошибок Stackdriver автоматически включается для приложений среды App Engine. Однако в GKE вы должны добавить область доступа к облачной платформе при создании кластера. Предпочтительный способ сбора ошибок - возможность отправки сообщений в отчеты об ошибках Stackdriver с использованием REST API или клиентских библиотек отчетов об ошибках.