首页 > 解决方案 > Dataproc 虚拟机内存和本地磁盘使用情况指标

问题描述

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

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

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

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-dataproc

解决方案


Google Cloud Monitoring Agent安装在 Dataproc 集群虚拟机上,但默认禁用。

--properties dataproc:dataproc.monitoring.stackdriver.enable=true在创建集群时添加将启用它。该代理收集客户操作系统指标,包括内存和磁盘使用情况,因此您可以在 Cloud Metrics 中查看它们。请参阅本文档中的属性。

顺便说一句,默认收集 CPU 使用率而不依赖于代理的原因是,它是由 GCE 从 VM 主机收集的。但是对于内存和本地磁盘的使用,VM 主机并不了解它们,它们必须从来宾操作系统内部收集,因此它取决于代理。当您启用代理时,会有两个不同类型的 CPU 使用指标,一个(计算)来自 VM 主机的角度,另一个(代理)来自客户操作系统的角度。

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


推荐阅读