在 Java App Engine 的情况下,如果 Java App 发生异常,我可以像这样自动获取 GCP 错误报告
但是对于 GKE 上的 Java 应用程序,我无法获得 GCP 错误报告
怎么可能?
在 Java App Engine 的情况下,如果 Java App 发生异常,我可以像这样自动获取 GCP 错误报告
但是对于 GKE 上的 Java 应用程序,我无法获得 GCP 错误报告
怎么可能?
您应该将Stackdriver Kubernetes Monitoring安装到 GKE;同时也可以与Prometheus一起使用。这些功能目前仍处于测试阶段(未包含在任何 SLA 中)。另请参阅Fluentd数据收集器,它与Logging API
. 这个可视化图表可以解释最可靠的谁向谁报告:
这个SLF4J 示例展示了如何在 Java 环境中进行日志记录,有相关文档用于使用 Java 记录应用程序事件(您可能正在寻找的内容)。原则上,Java 环境中的记录器需要告诉本地代理,发生了什么。
关于Logging API
Kubernetes,请参阅使用 Stackdriver 进行日志记录和使用Fluentd 为 Kubernetes Engine 自定义 Stackdriver 日志;有不止一种方法可以做到这一点。
theMonitoring API
和 theLogging API
可以独立使用,尽管它们仍然观察相同的资源和相同的时间线,这就是为什么同时使用两者是有意义的。
关于所需的访问范围:
您必须是包含您的集群的项目的所有者。
如文档Stackdriver Error Reporting 中所述,已为 App Engine 环境应用程序自动启用。但是在 GKE 上,您必须在创建集群时添加云平台访问范围。收集错误的首选方法是能够使用REST API或错误报告客户端库发布到 Stackdriver 错误报告