Я пытаюсь настроить группу экземпляров автомасштабирования на GCE. Настройка политики автомасштабирования для добавления экземпляров в зависимости от процента используемой памяти.
В каждом экземпляре я устанавливал Stackdriver Monitoring Agent (collectd) следующим образом:
$ curl -O https://repo.stackdriver.com/stack-install.sh
$ sudo bash stack-install.sh --write-gcm
Я могу считывать показатели, сообщаемые агентом, в Stackdriver с помощью API мониторинга:
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, но по какой-то причине не возвращается диспетчеру группы экземпляров.
Инструмент автомасштабирования используется для поддержки показателей v2, а показатель agent.googleapis.com/memory/percent_used - это показатель v3. Похоже, этот показатель можно использовать сейчас.
На этом ссылка на сайт вы можете получить метрики, доступные в Stackdriver Monitoring v2.
На этом другом ссылка на сайт, вы можете найти все метрики v3, где вы найдете метрику «процент_использовано».
Я добавляю новый ответ на эту страницу, чтобы включить пошаговую инструкцию для автоматического масштабирования на основе процента используемой памяти, что стало проще с развитием платформы.
OP, возможно, получил сообщение, которое они сделали во время публикации, в результате автомасштабирования, не поддерживающего требуемую метрику в то время.
Теперь за памятью можно следить, установив на машине агент Stackdriver, в отличие от предыдущего требования создания настраиваемой метрики. Поэтому теперь намного проще контролировать память, а также автоматическое масштабирование на основе использования памяти (которое теперь поддерживается). Однако следует отметить, что для использования агента мониторинга требуется учетная запись Stackdriver уровня Premium.
Вам нужна группа управляемых экземпляров для автоматического масштабирования, а на машинах в этой группе управляемых экземпляров должен быть установлен агент 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> Instance Groups> Create instance group
4) Убедитесь, что вы выбрали следующие параметры (в дополнение к другим персонализированным параметрам) для вашей группы экземпляров в соответствующих полях:
'Тип группы' = 'Группы управляемых экземпляров'
«Шаблон экземпляра» = выберите шаблон экземпляра, созданный на шаге 1/2.
'Автомасштабирование на основе' = 'Метрика мониторинга Stackdriver'
'Metric identifier' = 'agent.googleapis.com/memory/percent_used'
'Target' = процент памяти, который вы хотите запустить автомасштабирование, например 60
Теперь у вас есть управляемая группа экземпляров, для которой настроено автоматическое масштабирование в зависимости от процента использованной памяти.