openshift中普罗米修斯jmx_出口商

openshift中普罗米修斯jmx_出口商,openshift,jmx,prometheus,javaagents,Openshift,Jmx,Prometheus,Javaagents,我们正在OpenShift中部署我们的微服务。我们希望使用Prometheus监控JMX度量,以便稍后使用Grafana显示它们 我们已经找到了JMX_导出器,据我所知,它可以用于收集普罗米修斯特定格式的JMX指标 现在,我们希望以某种方式将代理绑定到我们的代码,以便我们可以从OpenShift内部访问度量 我们是否可以在Glassfish中部署代理/加载代理,类似于Jolokia的工作方式?这里的文档并没有让我们走得太远。有点晚了,但我只是花了几个小时试图完成同样的工作,而且几乎没有什么信息,

我们正在OpenShift中部署我们的微服务。我们希望使用Prometheus监控JMX度量,以便稍后使用Grafana显示它们

我们已经找到了JMX_导出器,据我所知,它可以用于收集普罗米修斯特定格式的JMX指标

现在,我们希望以某种方式将代理绑定到我们的代码,以便我们可以从OpenShift内部访问度量


我们是否可以在Glassfish中部署代理/加载代理,类似于Jolokia的工作方式?这里的文档并没有让我们走得太远。

有点晚了,但我只是花了几个小时试图完成同样的工作,而且几乎没有什么信息,所以这里是我最后得到的,以防它对某人有所帮助

这假设您的openshift中已经运行了prometeus代理(3.9中的默认值)

  • 首先通过添加

    -javaagent:/path/to/jmx_prometheus_javaagent-0.3.1.jar=8080:/path/to/jmx.yaml

到您的应用程序调用 -yaml可以包含一些内容,但最重要的是提取规则——它们非常特定于您的应用程序。例如,我的看起来像这样:

startDelaySeconds: 0
ssl: false
rules:
- pattern : "kafka.consumer<type=(.+), client-id=(.+)-([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[34][0-9a-fA-F]{3}-[89ab][0-9a-fA-F]{3}-[0-9a-fA-F]{12})-StreamThread-([0-9]+)(.*), topic=(.+)><>(.+): "
 name: dataplatform_$1_$7
  labels:
 clientId: "$2"
 fullClientId: "$2$5"
 clientUUID: "$3"
 threadNum: "$4"
 extraClientName: "$5"
 topic: "$6"
然后暴露容器上的端口:

ports:
- containerPort: 8080
   protocol: TCP
你的普罗米修斯现在应该在收集指标了。如果您点击pod上的8080端口,您还应该看到度量


最后一步是将Prometeus数据源添加到您的Grafana中,并开始享受您的度量值,但有点晚了,但我只是花了几个小时尝试完成相同的操作,而且信息非常少,所以这里是我最后得到的信息,以防它对某人有所帮助

这假设您的openshift中已经运行了prometeus代理(3.9中的默认值)

  • 首先通过添加

    -javaagent:/path/to/jmx_prometheus_javaagent-0.3.1.jar=8080:/path/to/jmx.yaml

到您的应用程序调用 -yaml可以包含一些内容,但最重要的是提取规则——它们非常特定于您的应用程序。例如,我的看起来像这样:

startDelaySeconds: 0
ssl: false
rules:
- pattern : "kafka.consumer<type=(.+), client-id=(.+)-([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[34][0-9a-fA-F]{3}-[89ab][0-9a-fA-F]{3}-[0-9a-fA-F]{12})-StreamThread-([0-9]+)(.*), topic=(.+)><>(.+): "
 name: dataplatform_$1_$7
  labels:
 clientId: "$2"
 fullClientId: "$2$5"
 clientUUID: "$3"
 threadNum: "$4"
 extraClientName: "$5"
 topic: "$6"
然后暴露容器上的端口:

ports:
- containerPort: 8080
   protocol: TCP
你的普罗米修斯现在应该在收集指标了。如果您点击pod上的8080端口,您还应该看到度量


最后一步是将Prometeus数据源添加到您的Grafana中,并开始享受您的指标。

您似乎需要修改Glassfish启动脚本以包含
-javaagent
参数。您似乎需要修改Glassfish启动脚本以包含
-javaagent
参数。@misiek…我也在尝试对Glassfish执行相同的操作OpenShift。我的Kotlin应用程序在OpenShift和Prometheus上运行。我唯一不明白的是,我无法将jmx.jar文件复制到OpenShift上我的应用程序的目标文件夹中。如果我能做到这一点,那么我将通过我的dockerfile和我的应用程序一起运行。你能告诉我你是怎么做到的吗?嗨,对不起,我没有看到你的评论。可能不再相关,但是。。您只需从maven central获取jamx_agent.jar,并在构建过程中将其复制到映像中(在dockerfile中使用copy命令)。其实没什么…@misiek…我也在尝试用OpenShift做同样的事情。我的Kotlin应用程序在OpenShift和Prometheus上运行。我唯一不明白的是,我无法将jmx.jar文件复制到OpenShift上我的应用程序的目标文件夹中。如果我能做到这一点,那么我将通过我的dockerfile和我的应用程序一起运行。你能告诉我你是怎么做到的吗?嗨,对不起,我没有看到你的评论。可能不再相关,但是。。您只需从maven central获取jamx_agent.jar,并在构建过程中将其复制到映像中(在dockerfile中使用copy命令)。没什么大不了的,真的。。。