O recomendador de dimensionamento de instâncias de VM ajuda a otimizar a utilização de recursos das instâncias de máquinas virtuais do Compute Engine. Essas recomendações são geradas automaticamente com base nas métricas do sistema ou nas métricas coletadas pelo serviço Cloud Monitoring nos últimos oito dias. Use essas recomendações para redimensionar os tipos de máquina de instância e utilizar as funcionalidades com mais eficiência.
As recomendações de dimensionamento também são conhecidas como recomendações de redimensionamento.
Consulte Como aplicar recomendações de dimensionamento para instâncias de VM para mais informações.
ID do recomendador
O ID do recomendador de dimensionamento da instância de VM é:
google.compute.instance.MachineTypeRecommender
Use esse ID ao
visualizar e modificar recomendações usando os
comandos gcloud
ou as
APIs REST e RPC.
Location
Os comandos gcloud
e as APIs do Recomendador exigem que você especifique um
local para as recomendações exibidas ou modificadas. Para recomendações de dimensionamento
de instância de VM, use a zona do Compute Engine
como o local em gcloud
e interações
de API.
Permissões
Permissões necessárias
Para ver as recomendações de dimensionamento de instâncias de VM:
recommender.computeInstanceMachineTypeRecommendations.get
recommender.computeInstanceMachineTypeRecommendations.list
Para modificar o estado das recomendações de dimensionamento de instâncias de VM:
recommender.computeInstanceMachineTypeRecommendations.update
Como conceder permissões
Para conceder essas permissões, atribua papéis da seguinte maneira:
- Para visualizar apenas recomendações, conceda o papel Leitor do recomendador do Compute
(
roles/recommender.computeViewer
) - Para visualizar e modificar recomendações, conceda o papel Administrador do Compute Recommender
(
roles/recommender.computeAdmin
). - Para conceder a permissão
serviceusage.services.use
, conceda o papel Consumidor do Service Usage (roles/serviceusage.serviceUsageConsumer
).
Como alternativa, você também pode conceder os seguintes papéis básicos:
- Para visualizar apenas recomendações, conceda o papel Leitor (
roles/viewer
). - Para visualizar e modificar recomendações, conceda o papel de proprietário (
roles/owner
) ou editor (roles/editor
).- Esses papéis também incluem a permissão
serviceusage.services.use
.
- Esses papéis também incluem a permissão
Subtipos de recomendação
Esse Recommender é compatível com os seguintes subtipos:
CHANGE_MACHINE_TYPE
: recomenda alterar o tipo de máquina atual de uma instância de máquina virtual com base no uso atual.
Grupos de operação
Cada recomendação gerada pelo recomendador de dimensionamento da instância de VM tem um grupo de operações que descreve um conjunto de ações que precisam ser realizadas para aplicar a recomendação.
Recomendação de dimensionamento para uma instância de VM autônoma
Uma recomendação de dimensionamento para uma instância de VM independente inclui um
OperationGroup
com duas operações no
recurso
compute.googleapis.com/Instance
:
Uma operação
test
para garantir que o tipo de máquina atual seja o mesmo de quando a recomendação foi feita. Exemplo:{ "action": "test", "resourceType": "compute.googleapis.com/Instance", "resource" : "//compute.googleapis.com/projects/example-project/zones/z1/instances/vm-name", "path": "/machineType", "valueMatcher": { "matchesPattern": ".*zones/us-central1-f/machineTypes/n1-standard-32" } }
Uma operação
replace
que substitui o tipo de máquina pelo tipo recomendado. Exemplo:{ "action": "replace", "resourceType": "compute.googleapis.com/Instance", "resource" : "//compute.googleapis.com/projects/example-project/zones/z1/instances/vm-name", "path": "/machineType", "value": "zones/us-central1-f/machineTypes/n1-standard-4" }
Exemplos
No exemplo a seguir, veja como listar as recomendações de dimensionamento de instância de VM:
Defina as variáveis de ambiente necessárias:
PROJECT=TARGET_PROJECT_ID LOCATION=LOCATION_ID RECOMMENDER=google.compute.instance.MachineTypeRecommender
onde:
TARGET_PROJECT_ID é o projeto cujas recomendações você quer listar. Pode ser um projeto diferente do atual.
- Para comandos
gcloud
, use o código do projeto - Para solicitações de API, você pode usar o número ou o ID do projeto. O número do projeto é recomendado.
O número do projeto é retornado nas respostas dos comandos de API e
gcloud
.- Para comandos
LOCATION_ID é o local do Google Cloud em que os recursos associados às recomendações estão localizados (por exemplo,
us-central1-a
).
Liste as recomendações de dimensionamento de instâncias de VM:
gcloud
Digite o seguinte:
gcloud recommender recommendations list \ --project=${PROJECT} \ --location=${LOCATION} \ --recommender=${RECOMMENDER} \ --format=json
REST
Digite o seguinte:
curl \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-user-project: ${PROJECT}" \ "https://recommender.googleapis.com/v1/projects/${PROJECT}/locations/${LOCATION}/recommenders/${RECOMMENDER}/recommendations"
A resposta será semelhante a:
[ { "content": { "operationGroups": [ { "operations": [ { "action": "test", "path": "/machineType", "resource": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/instance-1", "resourceType": "compute.googleapis.com/Instance", "valueMatcher": { "matchesPattern": ".*zones/us-central1-a/machineTypes/n1-standard-4" } }, { "action": "replace", "path": "/machineType", "resource": "//compute.googleapis.com/projects/example-project/zones/us-central1-a/instances/instance-1", "resourceType": "compute.googleapis.com/Instance", "value": "zones/us-central1-a/machineTypes/custom-2-5120" } ] } ] }, "description": "Save cost by changing machine type from n1-standard-4 to custom-2-5120.", "etag": "280b34810bba8a1a", "lastRefreshTime": "2019-06-28T06:49:21Z", "name": "projects/548293842938/locations/us-central1-a/recommenders/google.compute.instance.MachineTypeRecommender/recommendations/a523ff7e-ed03-4143-a3a5-5b396b99cba9", "primaryImpact": { ... } }, "stateInfo": { "state": "ACTIVE" }, "recommenderSubtype": "CHANGE_MACHINE_TYPE" } ]
Consulte Como usar a API para instruções sobre como executar
tarefas adicionais em recomendações usando os comandos e as APIs gcloud
do Recommender.