我正在尝试在 GCE 上设置自动缩放实例组。自动缩放策略设置为根据已用内存百分比添加实例。
在每个实例上我都安装了 Stackdriver 监控代理 (collectd),如下所示:
$ curl -O https://repo.stackdriver.com/stack-install.sh
$ sudo bash stack-install.sh --write-gcm
我可以使用监控 API 将代理报告的指标读取到 Stackdriver 中:
GET https://monitoring.googleapis.com/v3/projects/test-cluster/timeSeries?filter=metric.type+%3D+%22agent.googleapis.com%2Fmemory%2Fpercent_used%22+AND+resource.label.instance_id+%3D+%224770937493855508384%22&interval.endTime=2017-01-10T01%3A10%3A00Z&interval.startTime=2017-01-10T01%3A05%3A00Z&key={API_KEY}
实例组管理器设置为使用 agent.googleapis.com/memory/percent_used 指标自动扩缩
但是,实例组管理器报告:
“未收到针对自动扩缩配置的自定义指标的数据”
问题:显然将 agent.googleapis.com/memory/percent_used 指标报告给了 Stackdriver,但由于某种原因未返回给实例组管理器。
答案1
答案2
我正在向此页面添加新的答案,以包含逐步说明,以便根据使用的内存百分比进行自动缩放,这随着平台的发展变得更加简单。
由于自动缩放功能当时不支持所需的指标,OP 可能在发布时收到了该消息。
现在可以通过在机器上安装 Stackdriver 代理来监控内存,而不需要之前创建自定义指标。因此,现在监控内存以及根据内存使用情况自动扩展(现在支持)变得更加容易。但需要注意的是,使用监控代理需要 Premium 级别的 Stackdriver 帐户。
您需要一个托管实例组来自动扩展,并且该托管实例组内的机器需要安装 Stackdriver 代理来监控内存。
有几种方法可以做到这一点。您可以向托管实例组使用的实例模板添加启动脚本,并添加安装监控代理所需的命令(请参阅这里),或者您可以创建一个已经安装了监控代理的镜像,并将此镜像用作组中实例的源镜像(请参阅代理支持的操作系统这里)。
您可以按照以下步骤通过启动脚本安装监控代理,然后根据使用的内存百分比自动缩放。
1) 设计实例模板。Compute Engine > 实例模板> 创建实例模板。
2)在创建实例模板页面的‘启动脚本’部分添加以下内容:
#!/bin/bash
curl -sSO https://dl.google.com/cloudagents/install-monitoring-agent.sh
sudo bash install-monitoring-agent.sh
3)创建托管实例组:Compute Engine>实例组>创建实例组
4) 确保在相关字段中为实例组选择以下选项(除了其他个性化选项之外):
'组类型' = '托管实例组'
‘实例模板’ = 选择您在步骤 1/2 中创建的实例模板。
'基于以下因素自动缩放' = 'Stackdriver 监控指标'
'指标标识符' = 'agent.googleapis.com/memory/percent_used'
“目标”= 您想要启动自动缩放器的内存百分比,例如 60
现在,您已将托管实例组设置为根据使用的内存百分比自动扩缩。