每当我使用 Stackdriver 监控和监控代理设置 Google Dataproc 集群时,我注意到只要 Dataproc 获得工作,Stackdriver 就会失去连接。在堆栈驱动程序 UI 上,它有一个延迟值,他们说在大多数情况下不应高于 2 分钟。对我来说,这个值只是我提交作业后的时间(通常是几个小时),并且没有在 Compute Engine 网页中看不到的可用指标。
有没有办法让 stackdriver 监控与 dataproc 一起工作?如果可能的话,我希望能够监控我的作业的 RAM 使用情况。
Stackdriver 监控由我的组织运行和设置,但他们似乎可以访问所有功能。我们不使用 HTTP 代理。监控代理是使用Google 文档中的命令设置的。我有一个启动脚本(--initialization-actions 标志),它为 master 和 worker 运行,如下所示:
#!/bin/bash
cd /tmp
curl -O "https://repo.stackdriver.com/stack-install.sh"
bash stack-install.sh --write-gcm
# ... other initialization stuffs
编辑:“其他初始化内容”只是几个 gsutil 复制命令,用于将一些资源文件放到本地机器上,如果这有影响的话。
我尝试将代理的安装移到其他命令之后,并且我只使用 /tmp 因为谷歌建议在复制文件时使用绝对路径(忘记了文档在哪里,但它以前对我有帮助)。
这是我在stackdriver中看到的要求的屏幕截图。请注意除 CPU 使用率之外的所有指标是如何停在垂直线上的。也就是今天提交给 spark 的作业:
结果grep stackdriver-agent /var/logs/syslog
:
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: Starting Stackdriver metrics collection agent: stackdriver-agentoption = Hostname; value = 3431688934917455875;
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: option = Interval; value = 60.000000;
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: Created new plugin context.
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: option = PIDFile; value = /var/run/stackdriver-agent.pid;
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: option = Hostname; value = 3431688934917455875;
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: option = Interval; value = 60.000000;
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: Created new plugin context.
Sep 2 13:31:53 <cluster-name>-m stackdriver-agent[3609]: .
Sep 2 13:31:56 <cluster-name>-m stackdriver-agent[3823]: Stopping Stackdriver metrics collection agent: stackdriver-agent.
Sep 2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: Starting Stackdriver metrics collection agent: stackdriver-agentoption = Interval; value = 60.000000;
Sep 2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: Created new plugin context.
Sep 2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: option = PIDFile; value = /var/run/stackdriver-agent.pid;
Sep 2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: option = Interval; value = 60.000000;
Sep 2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: Created new plugin context.
Sep 2 13:31:56 <cluster-name>-m stackdriver-agent[3842]: .
编辑:完整的集群创建命令是:
gcloud dataproc clusters create <cluster-name> --master-machine-type n1-highmem-2 --worker-machine-type n1-highmem-2 --initialization-actions <path-to-script> --master-boot-disk-size 50GB --worker-boot-disk-size 50GB --num-workers 16 --network internal --zone us-east1-c --scopes https://www.googleapis.com/auth/cloud-platform --project <project-name> --tags dataproc
该dataproc
标签在我的组织中的所有端口上打开防火墙。 internal
发现网络比default
结果sudo systemctl | grep stackdriver-agent
:
stackdriver-agent.service active running
LSB: start and stop Stackdriver Agent
结果sudo ps wwaux | grep stackdriver-agent
:
root 3851 0.0 0.0 1004704 9096 ? Ssl 12:50 0:00 /opt/stackdriver/collectd/sbin/stackdriver-collectd -C
/opt/stackdriver/collectd/etc/collectd.conf -P /var/run/stackdriver-agent.pid
7053 0.0 0.0 12732 2068 pts/0 S+ 13:14 0:00 grep stackdriver-agent