Google cloud platform 从Dataproc获取JMX度量

Google cloud platform 从Dataproc获取JMX度量,google-cloud-platform,google-compute-engine,jmx,google-cloud-dataproc,stackdriver,Google Cloud Platform,Google Compute Engine,Jmx,Google Cloud Dataproc,Stackdriver,我已经安装了Stackdriver,安装了监控代理,并按照本指南进行JVM监控 但是,我无法从Dataproc访问JMX度量,特别是HeapMemoryUsage 我从GitHub配置库下载了jvm-sun-hotspot.conf,并将其放在/opt/stackdriver/colctd/etc/colctd.d目录中/ 它要求我编辑下载的配置文件,并将JMX_端口替换为JVM配置为允许JMX连接的端口 在哪里可以找到此端口?我是否需要设置一个应用程序来监控JMX指标?不幸的是,Stackdr

我已经安装了Stackdriver,安装了监控代理,并按照本指南进行JVM监控

但是,我无法从Dataproc访问JMX度量,特别是HeapMemoryUsage

我从GitHub配置库下载了jvm-sun-hotspot.conf,并将其放在/opt/stackdriver/colctd/etc/colctd.d目录中/

它要求我编辑下载的配置文件,并将JMX_端口替换为JVM配置为允许JMX连接的端口


在哪里可以找到此端口?我是否需要设置一个应用程序来监控JMX指标?

不幸的是,Stackdriver监控提供的JVM监控是基于JMX的,因此当涉及Spark时会出现问题,因为两个执行器共享同一主机并竞争同一JMX端口

但是,另一种解决方案可以使用:

  • 配置spark以使用
  • Stackdriver监控有一个实现,可以使用度量并将其报告给Stackdriver

这个问题有用吗@NathanGriffiths是和否。主要答案建议使用随机JMX端口,但问题是要从spark进程打开的端口检测它。此外,由于默认情况下没有运行spark驱动程序或执行程序进程,这意味着对于每个提交的作业,都需要更新stackdriver代理配置并重新启动服务-这两个操作需要根访问权限,并且Thread不是sudoer。为executor提供静态端口意味着多个executor进程将尝试绑定到同一主机上的同一jmx端口。