【发布时间】:2019-01-15 17:41:22
【问题描述】:
是否可以向 Java 系统添加一些指标,以将版本号作为受监控应用程序的字符串返回?
我的目标是在 Kubernetes 集群中监控每个在 Docker 容器内运行 Java 应用程序的 Pod,并查看每个 Java 应用程序的当前版本。
如果不可能,您是否知道如何从 Java 应用程序获取该信息并使其在 Grafana 仪表板中可用?
【问题讨论】:
-
你的意思是像
System.getProperty("java.version")这样的 Docker 容器中的 Java 版本吗?还是您的意思是应用程序本身的版本?如果是第二个,这取决于它是如何构建的。为此,我们个人使用 Maven(和 Jenkins 来构建)。如何使用我没有经验的其他可构建应用程序来做到这一点。 -
MANIFEST.MF 的实施版本是否适合您?查看这个问题,看看如何在运行时获取它:stackoverflow.com/questions/2712970/…
-
您使用什么指标收集器?如果您使用 prometheus java_client(github.com/prometheus/client_java),我认为它会将 java 版本公开为度量标准。(依赖于您的仪器来提取度量标准)(stackoverflow.com/questions/47559338/…)
-
我的意思是我的应用程序版本中的版本号。假设已部署版本 1.7.4711。然后我希望能够在我的仪表板中看到 1.7.4711。我会给@Olivier 的答案一个旋转。这听起来像是解决 Prometheus 喜欢返回数字和数字系列这一事实的一种方法。
标签: java kubernetes grafana prometheus