Dataproc 虚拟机内存和本地磁盘使用指标

Dataproc VM memory and local disk usage metrics

我正在尝试使用云指标监控 Dataproc 2.0 上的本地磁盘使用情况(百分比)。这对于监视 Spark 临时文件填满磁盘的情况很有用。

默认情况下,Dataproc 似乎只发送本地磁盘性能指标,CPU 等指标和集群级别的 HDFS 指标,但不发送本地磁盘使用情况。

Dataproc 图像上似乎安装了一个 stackdriver 代理,但它不是 运行,因此显然 Dataproc 使用不同的方式收集指标。我检查了 /etc/stackdriver/collectd.conf 中是否启用了 df 插件。但是,启动代理失败:

Jul 16 03:01:57 metrics-test-m systemd[1]: Starting LSB: start and stop Stackdriver Agent...
Jul 16 03:01:57 metrics-test-m stackdriver-agent[3829]: Starting Stackdriver metrics collection agent: stackdriver-agentThe instance has neither the application default credentials file nor the correct monitoring scopes; Exiting. ... failed!
Jul 16 03:01:57 metrics-test-m stackdriver-agent[3829]: not starting, configuration/credentials error. ... failed!
Jul 16 03:01:57 metrics-test-m stackdriver-agent[3829]:  (warning).
Jul 16 03:01:57 metrics-test-m systemd[1]: Started LSB: start and stop Stackdriver Agent.

是否可以以某种方式监控 Dataproc 中的本地磁盘使用情况并将指标推送到 Google Cloud Metrics?

Google Cloud Monitoring Agent 安装在 Dataproc 集群虚拟机上,但默认情况下处于禁用状态。

创建集群时添加--properties dataproc:dataproc.monitoring.stackdriver.enable=true即可启用。该代理收集来宾 OS 指标,包括内存和磁盘使用情况,因此您可以在 Cloud Metrics 中查看它们。请参阅此 doc 中的 属性。

顺便说一句,默认情况下收集 CPU 使用情况而不依赖于代理的原因是,它是由 GCE 从 VM 主机收集的。但是对于内存和本地磁盘使用情况,VM 主机不知道它们,必须从客户机内部收集它们 OS,因此它取决于代理。启用代理时,将有两个 CPU 不同类型的使用指标,一个(计算)是从 VM 主机角度,另一个(代理)是从来宾 OS 角度。

定价:这些指标不是免费的,请查看Cloud Monitoring pricing了解定价。