A métrica do agente do Stackdrive não é propagada para o autoescalador do GCE instance-group-manager

1

Estou tentando configurar o grupo de instâncias de escalonamento automático no GCE. Configuração de política de escalonamento automático para adicionar instância (s) com base na porcentagem de memória usada.

Em todas as instâncias, instalei o Stackdriver Monitoring Agent (collectd) assim:

$ curl -O https://repo.stackdriver.com/stack-install.sh
$ sudo bash stack-install.sh --write-gcm   

Eu posso ler as métricas informadas pelo agente no Stackdriver usando a API de monitoramento:

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}

Configuração do gerente do grupo de instâncias para escalonamento automático usando a métrica agent.googleapis.com/memory/percent_used

No entanto, o gerente do Grupo de instâncias informa:

"Não foram recebidos dados para a métrica personalizada configurada para escalonamento automático"

Problema: claramente a métrica agent.googleapis.com/memory/percent_used é relatada ao Stackdriver, mas não é retornada ao gerenciador do grupo de instâncias por algum motivo.

    
por vtrv101 11.01.2017 / 00:40

2 respostas

1

Marcador automático usado para oferecer suporte a métricas v2 e 'métrica agent.googleapis.com/memory/percent_used' é uma métrica v3. Parece que esta métrica pode ser usada agora.

Neste link , você pode obter as métricas que são disponível no Stackdriver Monitoring v2.

Neste outro link , você pode encontrar todas as métricas da v3, onde você encontrará a métrica "percent_used".

    
por 27.04.2017 / 20:18
0

Estou adicionando uma nova resposta a esta página para incluir a instrução passo a passo, a fim de escalonar automaticamente com base na porcentagem de memória usada, que foi simplificada com a evolução da plataforma.

O OP pode ter recebido a mensagem que recebeu no momento da postagem, pois o escalonamento automático não oferecia suporte à métrica necessária no momento.

Agora, a memória pode ser monitorada com a instalação do agente do Stackdriver em uma máquina, ao contrário do requisito anterior para uma métrica personalizada que precisa ser criada. Portanto, é muito mais fácil monitorar a memória agora, assim como o escalonamento automático baseado no uso de memória (que agora é suportado). Deve-se observar, no entanto, que a conta do Premium Stacker da camada é necessária para usar o agente de monitoramento.

Você precisa de um grupo de instâncias gerenciadas para fazer o escalonamento automático e as máquinas desse grupo de instâncias gerenciadas precisam do agente do Stackdriver instalado para monitorar a memória.

Existem algumas maneiras de fazer isso. Você pode adicionar um script de inicialização ao modelo de instância que o grupo de instâncias gerenciadas usa e adicionar os comandos necessários para instalar o agente de monitoramento (consulte aqui ), ou você pode criar uma imagem que já tenha o agente de monitoramento instalado e usar essa imagem como a imagem de origem para as instâncias no grupo (consulte sistema operacional suportado para o agente aqui ).

Aqui estão algumas etapas que você pode seguir para instalar o agente de monitoramento por meio de um script de inicialização e depois fazer o escalonamento automático com base na porcentagem de memória usada.

1) Crie um modelo de instância. Compute Engine > modelos de instância > Criar modelo de instância.

2) Na seção 'Script de inicialização' da página Criar modelo de instância, adicione o seguinte:

#!/bin/bash
curl -sSO https://dl.google.com/cloudagents/install-monitoring-agent.sh
sudo bash install-monitoring-agent.sh

3) Crie um grupo de instâncias gerenciadas: Compute Engine > Grupos de instâncias > Criar grupo de instâncias

4) Verifique se você selecionou as seguintes opções (além das outras opções personalizadas) para o seu grupo de instâncias nos campos relevantes:

'Tipo de grupo' = 'Grupos de instâncias gerenciadas'

'Modelo de instância' = Selecione o modelo de instância que você criou na etapa 1/2.

'Autoscale com base na métrica de monitoramento' = 'Stackdriver'

'Identificador de métrica' = 'agent.googleapis.com/memory/percent_used'

'Target' = A porcentagem de memória que você gostaria de iniciar o autoescalador, por exemplo 60

Agora você tem um grupo de instâncias gerenciadas definido para escalonamento automático com base na porcentagem de memória usada.

    
por 25.01.2018 / 11:49