【发布时间】:2019-08-21 06:59:40
【问题描述】:
我正在尝试将 JMX_Exporter 用于我的 kotlin 代码,以向 prometheus 公开指标,以便在 Grafana 中显示它。我浏览了许多文章并试图了解如何做到这一点。我发现以下两个链接很有用,并尝试使用这些链接来实现。
- https://github.com/prometheus/jmx_exporter
- https://www.openlogic.com/blog/monitoring-java-applications-prometheus-and-grafana-part-1
到目前为止,我所做的是,在根目录中创建了一个文件夹“prometheus-jmx”,并在该文件夹中添加了提到的 JAR 和 config.yml 文件。然后,我将以下参数添加到我的 dockerfile 中。
CMD java -Xms128m -Xmx256m -javaagent:./jmx_prometheus_javaagent-0.12.0.jar=8080:./config.yml -Dconfig.file=config/routing.conf -cp jagathe-jar-with-
dependencies.jar:./* com.bmw.otd.agathe.AppKt
我的 prometheus 与我的应用程序一起在我的 OpenShift 集群中运行。我可以为我的其他应用程序/部署(如 Jenkins、SonarQube 等)抓取指标,而无需对 Prometheus 的 deployment.yml 进行任何修改。
我的应用程序现在在 OpenShift 上正常运行,并且从应用程序的 pod 中,我可以使用以下命令抓取指标。
curl http://localhost:portNumber
但在 promethus UI 上,我看不到任何 JVM 或 JMX 相关指标。
谁能告诉我我在哪里做错了什么?任何形式的帮助将不胜感激。
【问题讨论】:
-
您在 Kotlin 中看到任何错误日志了吗?服务器是否正确列出了 8080 ?是否可以从 Kotlin 访问 root 下的路径?
-
@LinPy 是的,可以从 Kotlin 访问路径,因为当我打包代码时,我想在 OpenShift pod 上复制的所有内容都会被复制。我不确定端口,因为我不知道应该把什么作为端口,因为一切都在 openshift 集群上运行。也许我需要输入 url 以便获得指标。但我不确定..
-
确保端口应该可以正常工作
-
@LinPy 我不明白.. :-(
-
@LinPy 我是否需要为 prometheus 添加一些 maven 依赖项?
标签: docker kotlin openshift grafana prometheus