Как получить отчеты об ошибках GCP из приложения Java, работающего на GKE (движок Google Kubernetes)

В случае Java App Engine, если происходит исключение из Java App, я могу автоматически получать отчеты об ошибках GCP, как это

Но в случае Java-приложения на GKE я не могу получить отчеты об ошибках GCP

Как это может?

2 ответа

Вам следует установить Stackdriver Kubernetes Monitoring в GKE; в то время как можно также использовать это вместе с Прометеем. Эти функции в настоящее время все еще находятся в стадии бета-тестирования (не охвачены никаким SLA). см. также сборщик данных Fluentd, который весьма актуален для Logging API, эта визуальная схема может объяснить это наиболее надежно, кто сообщает кому:

K8 Архитектура

этот пример SLF4J показывает, как вести журнал из среды Java, там есть соответствующая документация для регистрации событий приложений с Java (что вы, возможно, действительно искали). в принципе, регистратор в среде Java должен сообщать локальному агенту, что происходит.

касательно Logging API в Kubernetes см. Ведение журнала с использованием Stackdriver и Настройка журналов Stackdriver для двигателя Kubernetes с помощью Fluentd; Есть несколько способов сделать это.

Monitoring API и Logging API могут использоваться независимо, несмотря на то, что они используют одни и те же ресурсы и одну и ту же временную шкалу, поэтому использование обоих имеет смысл.

относительно объема доступа требуется:

Вы должны быть владельцем проекта, содержащего ваш кластер.

Как уже упоминалось в документе Документирование ошибок Stackdriver автоматически включается для приложений среды App Engine. Однако в GKE вы должны добавить область доступа к облачной платформе при создании кластера. Предпочтительный способ сбора ошибок - возможность отправки сообщений в отчеты об ошибках Stackdriver с использованием REST API или клиентских библиотек отчетов об ошибках.