繁体   English   中英

有没有办法使用 Java JMX Stackdriver 插件监控在 Google Cloud Run 中的 Docker 容器中运行的 Java 应用程序?

[英]Is there a way to monitor to Java app running in Docker container in Google Cloud Run with Java JMX Stackdriver plugin?

我正在尝试使用 DropWizard 指标库收集指标并通过 JMX 导出它们。

在 Google Cloud Engine 上,使用 Stackdriver 的 JMX 插件( https://cloud.google.com/monitoring/agent/plugins/jvm#configuring )很容易导出这些指标

但是我需要使用 Cloud Run 做类似的事情,有没有已知的方法可以做到这一点?

谢谢!

我不熟悉 JMX,但熟悉 GCP,包括 Cloud Run。

我已经使用 Prometheus(以及用于应用程序安全的云端点)实现了类似的(ish),在 8080 上多路复用应用程序和指标。

IIUC 监控代理(基于collectd):

  1. 收集指标使用预定义的端口
  2. 将这些发送到 Cloud Monitoring(以前称为 Stackdriver)

如您所知,Cloud Run 是基于容器的,并且只允许一个端口 ( 8080 )。

我怀疑尝试将代理捆绑在应用程序的容器中会很麻烦(并且可能不受 Google 支持),但代理仍然可以调用 home(云监控),尽管可能会进行一些 IAM 调整。

如果 Cloud Run 允许每个服务有多个容器,那就太好了

潜在地,您可以多路复用 JMX 和您的应用程序流量超过 8080。

如果 Cloud Run 允许每个服务有多个端口,那就太好了

然后,您的普通用户可以访问该应用,并且监控代理(在其他地方运行)可以 ping 同一服务端口上的 JMX 指标并将这些指标发送到 Cloud Monitoring。

您需要更加注意安全性。 您可以制作 JWT 以向 Cloud Run 进行身份验证,尽管这些在 Cloud Run 中更加“棘手”,因为每个服务都需要一个特定的 JWT 使用服务的端点来形成其受众。

您可能还希望禁止经过身份验证的应用程序用户捕获您的 JMX 指标。

我假设通过 Google 的前端将 JMX 流量路由到 Cloud Run 服务没有任何限制。

显然更好的选择是在 Cloud Run 中检测 Java 代码是使用 OpenCensus 库。

OpenCensus 库可以轻松地与 DropWizard 一起使用,并且它实现了 Stackdriver 导出器。

这里有一些建议: https://opencensus.io/exporters/supported-exporters/java/stackdriver-stats/ https://cloud.google.com/monitoring/custom-metrics/open-census

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM