1

在 Java App Engine 的情况下,如果 Java App 发生异常,我可以像这样自动获取 GCP 错误报告

但是对于 GKE 上的 Java 应用程序,我无法获得 GCP 错误报告

怎么可能?

4

2 回答 2

2

您应该将Stackdriver Kubernetes Monitoring安装到 GKE;同时也可以与Prometheus一起使用。这些功能目前仍处于测试阶段(未包含在任何 SLA 中)。另请参阅Fluentd数据收集器,它与Logging API. 这个可视化图表可以解释最可靠的谁向谁报告:

K8 架构

这个SLF4J 示例展示了如何在 Java 环境中进行日志记录,有相关文档用于使用 Java 记录应用程序事件(您可能正在寻找的内容)。原则上,Java 环境中的记录器需要告诉本地代理,发生了什么。

关于Logging APIKubernetes,请参阅使用 Stackdriver 进行日志记录和使用Fluentd 为 Kubernetes Engine 自定义 Stackdriver 日志;有不止一种方法可以做到这一点。

theMonitoring API和 theLogging API可以独立使用,尽管它们仍然观察相同的资源和相同的时间线,这就是为什么同时使用两者是有意义的。

关于所需的访问范围:

您必须是包含您的集群的项目的所有者。

于 2018-09-07T22:13:29.027 回答
1

文档Stackdriver Error Reporting 中所述,已为 App Engine 环境应用程序自动启用。但是在 GKE 上,您必须在创建集群时添加云平台访问范围。收集错误的首选方法是能够使用REST API错误报告客户端库发布到 Stackdriver 错误报告

于 2018-08-27T23:41:51.053 回答