Google compute engine Google Stackdriver与Dataproc失去连接

Google compute engine Google Stackdriver与Dataproc失去连接,google-compute-engine,google-cloud-dataproc,stackdriver,Google Compute Engine,Google Cloud Dataproc,Stackdriver,每当我使用Stackdriver监控和监控代理设置Google Dataproc集群时,我注意到每当Dataproc获得作业时,Stackdriver就会失去连接。在stackdriver UI上,它有一个延迟值,他们说在大多数情况下,该值不应高于2分钟。对我来说,这个值只是我提交作业后的时间(通常是小时),并且没有在计算引擎网页中看不到的可用指标 有没有办法让stackdriver监控与dataproc一起工作?如果可能的话,我希望能够监控我工作的RAM使用情况 Stackdriver监控由我

每当我使用Stackdriver监控和监控代理设置Google Dataproc集群时,我注意到每当Dataproc获得作业时,Stackdriver就会失去连接。在stackdriver UI上,它有一个延迟值,他们说在大多数情况下,该值不应高于2分钟。对我来说,这个值只是我提交作业后的时间(通常是小时),并且没有在计算引擎网页中看不到的可用指标

有没有办法让stackdriver监控与dataproc一起工作?如果可能的话,我希望能够监控我工作的RAM使用情况

Stackdriver监控由我的组织运行和设置,但他们似乎可以访问所有功能。我们不使用HTTP代理。使用中的命令设置监视代理。我有一个启动脚本(--initialization actions标志),它同时为主程序和辅助程序运行,如下所示:

#!/bin/bash
cd /tmp
curl -O "https://repo.stackdriver.com/stack-install.sh"
bash stack-install.sh --write-gcm
# ... other initialization stuffs
编辑:“其他初始化文件”只是几个gsutil copy命令,用于将一些资源文件放到本地机器上,如果这有什么不同的话

我曾尝试在其他命令之后将代理安装移动到,我只使用/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]: .
sudo ps wwaux | grep stackdriver代理的结果:

stackdriver-agent.service      active running   
LSB: start and stop 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

我重新编写了您的一些步骤,虽然在您提交作业之前,我无法解释为什么监控看起来“有效”,因为这是我在尝试仅应用指令而不调试Dataproc内部时遇到的第一件事,您应该验证是否为Dataproc集群提供了正确的作用域,以使stackdriver代理能够将其度量写入API。也就是说,在保持init操作不变的情况下,以下内容似乎对我有效:

gcloud dataproc clusters create dhuo-stackdriver \
    --initialization-actions gs://<my-bucket>/install_stackdriver.sh \
    --scopes https://www.googleapis.com/auth/monitoring.write
仅将您的代码片段作为初始化操作的“我的本地测试”:

#!/bin/bash
cd /tmp
curl -O "https://repo.stackdriver.com/stack-install.sh"
bash stack-install.sh --write-gcm
加上
https://www.googleapis.com/auth/monitoring.write
在我的测试项目中工作,包括提交作业:


我重新编写了您的一些步骤,尽管在您提交作业之前,我无法解释为什么监控看起来“有效”,因为这是我在尝试仅应用指令而不调试Dataproc内部时遇到的第一件事,您应该验证是否为Dataproc集群提供了正确的作用域,以使stackdriver代理能够将其度量写入API。也就是说,在保持init操作不变的情况下,以下内容似乎对我有效:

gcloud dataproc clusters create dhuo-stackdriver \
    --initialization-actions gs://<my-bucket>/install_stackdriver.sh \
    --scopes https://www.googleapis.com/auth/monitoring.write
仅将您的代码片段作为初始化操作的“我的本地测试”:

#!/bin/bash
cd /tmp
curl -O "https://repo.stackdriver.com/stack-install.sh"
bash stack-install.sh --write-gcm
加上
https://www.googleapis.com/auth/monitoring.write
在我的测试项目中工作,包括提交作业:


您如何设置Stackdriver监控和监控代理?您是否有机会分享您在UI中看到的屏幕截图?编辑了原始帖子,如果您需要更多信息,请告诉我。如果您碰巧还有一个集群,您可以检查
grep stackdriver agent/var/log/syslog
?@DennisHuo添加了日志。看起来它停止了,然后又开始了。不确定那里发生了什么,但与stackdriver相关的脚本只有上面在启动脚本中发布的脚本。谢谢。就我所知,停止/启动看起来很正常。如果在主节点和工作节点上运行
sudo systemctl
和/或
sudo ps wwaux
,是否也会看到stackdriver代理正在运行?如何设置stackdriver监控和监控代理?您是否有机会分享您在UI中看到的屏幕截图?编辑了原始帖子,如果您需要更多信息,请告诉我。如果您碰巧还有一个集群,您可以检查
grep stackdriver agent/var/log/syslog
?@DennisHuo添加了日志。看起来它停止了,然后又开始了。不确定那里发生了什么,但与stackdriver相关的脚本只有上面在启动脚本中发布的脚本。谢谢。就我所知,停止/启动看起来很正常。如果在主节点和工作节点上运行
sudo systemctl
和/或
sudo ps wwaux
,是否也会看到stackdriver代理正在运行?我想我应该提到我创建了具有
--作用域的集群https://www.googleapis.com/auth/cloud-platform
所以应该已经存在了,除非您想明确定义写权限会有帮助吗?我想我应该提到我使用
--作用域创建集群https://www.googleapis.com/auth/cloud-platform
除非您认为明确定义写权限会有所帮助,否则应该已经存在了?