El autoescalado basado en métricas de Cloud Monitoring te permite ajustar la capacidad necesaria según las mediciones de tu aplicación. Cuando autoescalas un MIG en función de una métrica, el autoescalador crea VMs cuando aumenta el valor de la métrica y elimina VMs cuando disminuye el valor.
Por ejemplo, puedes definir cuántas máquinas virtuales necesitas por número de usuarios, latencia o número de mensajes en una suscripción de Pub/Sub. Puedes usar las métricas integradas que proporciona el servicio Monitoring o las métricas personalizadas que exportas desde tu aplicación.
En este documento se describe cómo autoescalar un grupo de instancias gestionado (MIG) en función de las métricas de Monitoring.
También puedes autoescalar un MIG en función del uso de CPU, la capacidad de servicio del balanceo de carga o las programaciones.
Antes de empezar
- Consulta los conceptos básicos del escalado automático.
- Consulta información sobre los conceptos de métricas de monitorización que se usan en una configuración de escalado automático.
- Si quieres usar el escalado automático en función de una métrica del Agente de operaciones, instala el Agente de operaciones.
-
Si aún no lo has hecho, configura la autenticación.
La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
- Set a default region and zone.
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Limitaciones
El escalado basado en métricas de Monitoring está sujeto a las limitaciones de todos los escaladores automáticos, así como a las siguientes:
- Puedes configurar el autoescalado en función de un máximo de 5 métricas de Monitoring por MIG.
- Solo puedes usar métricas con tipos de valor
INT64
oDOUBLE
para el autoescalado. No se admiten otros tipos de valores. - No puedes configurar la misma métrica más de una vez en una política de autoescalado.
Configurar el autoescalado según las métricas de Monitoring
Puede usar un valor de métrica de Monitoring para el autoescalado de dos formas diferentes:
Nivel de utilización objetivo: si quieres que la herramienta de adaptación dinámica mantenga una métrica en un valor específico, configura un nivel de utilización objetivo. La herramienta de escalado automático crea máquinas virtuales cuando el valor de la métrica está por encima del objetivo y elimina máquinas virtuales cuando el valor de la métrica está por debajo del objetivo. Es útil para métricas como el tráfico de red, el uso de memoria o disco, o la latencia media de tu aplicación. En el siguiente diagrama se muestra cómo añade y elimina una herramienta de escalado automático VMs en respuesta a un valor de métrica para mantener un objetivo de utilización.
Asignación de una sola instancia: si quieres autoescalar en función de la cantidad de trabajo que se puede asignar a cada VM, configura una asignación de una sola instancia. La asignación de una sola instancia que especifiques representa la cantidad de trabajo que esperas que gestione cada VM. La herramienta de adaptación dinámica divide el valor de la métrica entre el valor de asignación de una sola instancia para calcular cuántas VMs se necesitan. Por ejemplo, si la métrica es igual a 100 y la asignación de una sola instancia es 5, el escalador automático crea 20 VMs en el MIG. Esto es útil para las métricas que reflejan la cantidad de trabajo, como la longitud de la cola de Pub/Sub o el recuento de trabajos por lotes. La asignación de una sola instancia no se aplica a las métricas que proceden de cada VM. En el siguiente diagrama se muestra la relación proporcional entre el valor de la métrica y el número de máquinas virtuales al escalar con la asignación de una sola instancia.
Adaptar la escala automáticamente para mantener una métrica en un valor objetivo
Si quiere mantener una métrica en un valor objetivo, especifique un objetivo de utilización. La herramienta de escalado automático crea VMs cuando el valor de la métrica está por encima del objetivo y elimina VMs cuando el valor de la métrica está por debajo del objetivo.
Si la métrica procede de cada VM de tu MIG, la herramienta de ajuste automático de escala toma el valor medio de la métrica de todas las VMs del MIG y lo compara con el objetivo de uso. Por ejemplo, si quieres usar el autoescalado con la métrica
tcp_connections
, que indica el número de conexiones TCP en una VM, el autoescalador toma el número medio de conexiones TCP de todas las VMs del MIG para compararlo con el objetivo. Cuando usas métricas de este tipo que proceden de una VM, el MIG no puede reducirse a cero porque el escalador automático necesita al menos una VM para publicar un valor de métrica.Si la métrica se aplica a todo el MIG y no procede de las VMs del MIG, la herramienta de ajuste automático compara el valor de la métrica con el objetivo de utilización. Por ejemplo, puedes usar una métrica personalizada que mida la latencia de tu aplicación. Si usas métricas que se aplican a todo el MIG, este puede reducirse a cero, siempre que definas el número mínimo de instancias en
0
y no especifiques otras señales que requieran datos de máquinas virtuales concretas.
Si tu métrica tiene varios valores, aplica un filtro para que se ajuste automáticamente a un valor concreto de la métrica. Para obtener más información sobre los filtros de métricas y otros campos que puede usar en su configuración, consulte Conceptos de métricas de Monitoring.
Consola
En la consola, ve a la página Grupos de instancias. Google Cloud
Si no tienes ningún grupo de instancias gestionado, crea uno. De lo contrario, haz clic en el nombre de un MIG de la lista para abrir la página de ese grupo de instancias.
Haz clic en Editar.
- Haga clic en Tamaño del grupo y escalado automático para desplegar la sección.
- Si no hay ninguna configuración de autoescalado, haz clic en Configurar autoescalado.
De forma predeterminada, la configuración de autoescalado añade una señal basada en el uso de la CPU. Si no necesitas esta señal, puedes editarla para cambiar el tipo de señal.
- En la sección Señales de escalado automático, si hay una señal de una métrica de monitorización, puede hacer clic para editarla o en Añadir una señal para añadir una.
En Tipo de señal, selecciona Métrica de Cloud Monitoring.
Haz clic en Configurar. En el panel Recurso y métrica que se abre, haz lo siguiente:
- Haz clic en Seleccionar una métrica.
- Selecciona la métrica que quieras usar para el autoescalado. Puede filtrar las métricas en función de cualquier palabra clave, como memoria, bytes o disco.
- Haz clic en Aplicar. En el panel se muestra un gráfico con los datos de la métrica seleccionada.
Si quiere usar datos específicos de la métrica, añada un filtro basado en etiquetas de la siguiente manera:
- En la sección Filtros, haz clic en Añadir un filtro.
- Selecciona una Etiqueta e introduce un Valor.
- Haz clic en Listo. El gráfico se actualiza para mostrar el valor filtrado de la métrica.
Para ver el valor agregado de la métrica que se usará para adaptar automáticamente la escala de tu MIG, activa el botón Mostrar agregación en el gráfico. El gráfico se actualiza para mostrar el valor agregado.
En la sección Opciones de métricas objetivo para el escalado automático, seleccione Objetivo de utilización.
Proporciona lo siguiente:
- Nivel de utilización objetivo: especifica el valor que debe mantener la herramienta de adaptación dinámica. Debe ser un número positivo. Por ejemplo, 24,5 y 100 son valores aceptables.
- Tipo de objetivo de utilización: selecciona un tipo de objetivo que se corresponda con el tipo de medición de la métrica. Para hacer comparaciones precisas, si el objetivo de utilización se mide por segundos, utilice Delta/segundo como tipo de objetivo. Del mismo modo, usa Delta/min para un objetivo de utilización medido por minutos.
- Indicador: la herramienta de adaptación dinámica calcula el valor medio de los datos recogidos en los últimos minutos y lo compara con el objetivo de utilización.
- Delta/min: la herramienta de ajuste dinámico calcula la tasa de crecimiento media por minuto y la compara con el objetivo de utilización.
- Delta/segundo: la herramienta de ajuste automático calcula la tasa de crecimiento media por segundo y la compara con el objetivo de utilización.
Cuando haya terminado de configurar la métrica, haga clic en Seleccionar.
- Haz clic en Seleccionar una métrica.
Revisa los detalles de la métrica y haz clic en Hecho.
Para completar la configuración, haga clic en Guardar.
gcloud
Para configurar el autoescalado en función de las métricas de Monitoring, usa el comando
set-autoscaling
.Usa el siguiente comando para autoescalar en función de una métrica de Monitoring con un objetivo de uso.
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=METRIC_URL \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE
Si tu métrica tiene varios valores y quieres usar un valor individual para el escalado automático, usa la marca
--stackdriver-metric-filter
como se indica en el siguiente comando.gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=METRIC_URL \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE \ --stackdriver-metric-filter="METRIC_FILTER"
Haz los cambios siguientes:
MIG_NAME
: el MIG al que quieres añadir un escalador automático.MAX_INSTANCES
: número máximo de máquinas virtuales que puede tener el MIG.MIN_INSTANCES
: número mínimo de VMs que debe tener el MIG.METRIC_URL
: URL sin protocolo de una métrica de Monitoring. Por ejemplo,compute.googleapis.com/instance/uptime
. Si usa una métrica personalizada, debe cumplir los requisitos de las métricas personalizadas.TARGET_VALUE
: valor de la métrica que intenta mantener el escalador automático.TARGET_TYPE
: el tipo de valor de la métrica.gauge
la herramienta de adaptación dinámica calcula el valor medio de los datos recogidos en los últimos minutos y lo compara con el objetivo de utilización.delta-per-minute
La herramienta de ajuste automático calcula la tasa media de crecimiento por minuto y la compara con el objetivo de utilización.delta-per-second
La herramienta de ajuste automático calcula la tasa media de crecimiento por segundo y la compara con el objetivo de utilización. Para hacer comparaciones precisas, si define el objetivo de uso en segundos, utilicedelta-per-second
como tipo de objetivo. Del mismo modo, usadelta-per-minute
para definir un objetivo de uso en minutos.
METRIC_FILTER
: aplica un filtro para usar un valor individual de una métrica que tiene varios valores y para especificar el tipo de recurso monitorizado. Si usas una métrica que procede de cada VM, no tienes que especificar el tipo de recurso supervisado porquegce_instance
se usa de forma predeterminada. Para otras métricas, usaresource.type
en la expresión del filtro para especificar el recurso monitorizado. Para obtener más información sobre el filtro de métricas, consulte Conceptos de métricas de Monitoring.
Para ver una lista completa de los comandos y las marcas disponibles de gcloud CLI, consulta la referencia de
gcloud
.REST
Para configurar el autoescalado en función de las métricas de Monitoring en un MIG de zona, usa el recurso
autoscalers
. En el caso de un MIG regional, usa el recursoregionAutoscalers
.Haz la siguiente llamada para autoescalar un MIG zonal basado en una métrica de Monitoring con un objetivo de utilización.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "metric": "METRIC_URL", "utilizationTarget": TARGET_VALUE, "utilizationTargetType": TARGET_TYPE } ], } }
Si tu métrica tiene varios valores y quieres usar un valor individual para el ajuste automático de escala, usa el parámetro
filter
como se indica en la siguiente llamada a la API.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "metric": "METRIC_URL", "utilizationTarget": TARGET_VALUE, "utilizationTargetType": TARGET_TYPE, "filter": "METRIC_FILTER" } ], } }
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.ZONE
: la zona en la que se encuentra el MIG.AUTOSCALER_NAME
: el nombre del escalador automático.MIG_NAME
: el MIG al que quieres añadir un escalador automático.MAX_INSTANCES
: número máximo de máquinas virtuales que puede tener el MIG.MIN_INSTANCES
: número mínimo de VMs que debe tener el MIG.METRIC_URL
: URL sin protocolo de una métrica de Monitoring. Por ejemplo,compute.googleapis.com/instance/uptime
. Si usa una métrica personalizada, debe cumplir los requisitos de las métricas personalizadas.TARGET_VALUE
: valor de la métrica que intenta mantener el escalador automático.TARGET_TYPE
: el tipo de valor de la métrica.GAUGE
: La herramienta de escalado automático calcula el valor medio de los datos recogidos en los últimos minutos y lo compara con el objetivo de utilización.DELTA_PER_MINUTE
La herramienta de ajuste automático calcula la tasa de crecimiento media por minuto y la compara con el objetivo de utilización.DELTA_PER_SECOND
La herramienta de adaptación dinámica calcula la tasa de crecimiento media por segundo y la compara con el objetivo de utilización. Para hacer comparaciones precisas, si define el objetivo de uso en segundos, utiliceDELTA_PER_SECOND
como tipo de objetivo. Del mismo modo, usaDELTA_PER_MINUTE
para definir un objetivo de uso en minutos.
METRIC_FILTER
: aplica un filtro para usar un valor individual de una métrica con varios valores y para especificar el tipo de recurso monitorizado. Si usas una métrica que procede de cada VM, no tienes que especificar el tipo de recurso supervisado porquegce_instance
se usa de forma predeterminada. En el caso de otras métricas, debe especificar el recurso monitorizado mediante el selectorresource.type
. Para obtener más información sobre el filtro de métricas, consulte Conceptos de métricas de Monitoring.
Escalar automáticamente en función del trabajo disponible para cada VM de un MIG
Si quieres usar el autoescalado en función de la cantidad de trabajo disponible para cada VM de un MIG, especifica una sola asignación de instancia. El valor de la asignación de una sola instancia que definas indica la cantidad de trabajo que esperas que gestione cada VM. La herramienta de ajuste automático de escala divide el valor de la métrica entre el valor de asignación de una sola instancia para calcular cuántas VMs se necesitan.
Un valor de métrica de
0
indica que tu MIG no tiene trabajo que completar. Si el número mínimo de instancias de tu MIG es0
y el valor de la métrica baja a0
, el MIG se reducirá a0
hasta que el valor de la métrica aumente.Si tu métrica tiene varios valores, aplica un filtro para que se ajuste automáticamente a un valor concreto de la métrica. Para obtener más información sobre los filtros de métricas y otros campos que puede usar en su configuración, consulte Conceptos de métricas de Monitoring.
Consola
En la consola, ve a la página Grupos de instancias. Google Cloud
Si no tienes ningún grupo de instancias gestionado, crea uno. De lo contrario, haz clic en el nombre de un MIG de la lista para abrir la página de ese grupo de instancias.
Haz clic en Editar.
- Haga clic en Tamaño del grupo y escalado automático para desplegar la sección.
- Si no hay ninguna configuración de autoescalado, haz clic en Configurar autoescalado.
De forma predeterminada, la configuración de autoescalado añade una señal basada en el uso de la CPU. Si no necesitas esta señal, puedes editarla para cambiar el tipo de señal.
- En la sección Señales de escalado automático, si hay una señal de una métrica de monitorización, puede hacer clic para editarla o en Añadir una señal para añadir una.
En Tipo de señal, selecciona Métrica de Cloud Monitoring.
Haz clic en Configurar. En el panel Recurso y métrica que se abre, haz lo siguiente:
- Haz clic en Seleccionar una métrica.
- Selecciona la métrica que quieras usar para el autoescalado. Puede filtrar las métricas en función de cualquier palabra clave, como memoria, bytes o disco.
- Haz clic en Aplicar. En el panel se muestra un gráfico con los datos de la métrica seleccionada.
Si quiere usar datos específicos de la métrica, añada un filtro basado en etiquetas de la siguiente manera:
- En la sección Filtros, haz clic en Añadir un filtro.
- Selecciona una Etiqueta e introduce un Valor.
- Haz clic en Listo. El gráfico se actualiza para mostrar el valor de la métrica filtrada.
Para ver el valor agregado de la métrica que se usará para adaptar automáticamente la escala de tu MIG, activa el botón Mostrar agregación en el gráfico. El gráfico se actualiza para mostrar el valor agregado.
En la sección Opciones de métricas objetivo para el escalado automático, seleccione Asignación de una sola instancia de VM.
Proporcione un valor de Asignación de una sola instancia que represente la cantidad de trabajo que se va a asignar a cada VM de la MIG.
Cuando haya terminado de configurar la métrica, haga clic en Seleccionar.
- Haz clic en Seleccionar una métrica.
Revisa los detalles de la métrica y haz clic en Hecho.
Para completar la configuración, haga clic en Guardar.
gcloud
Para configurar el autoescalado en función de las métricas de Monitoring, usa el comando
set-autoscaling
.En el comando, especifica la marca
--stackdriver-metric-single-instance-assignment
para indicar la cantidad de trabajo que esperas que gestione cada máquina virtual del grupo.El siguiente comando crea un escalador automático basado en la asignación de trabajo de cada VM.
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=METRIC_URL \ --stackdriver-metric-filter="METRIC_FILTER" \ --stackdriver-metric-single-instance-assignment=INSTANCE_ASSIGNMENT
Haz los cambios siguientes:
MIG_NAME
: el nombre del MIG en el que quieras añadir un escalador automático.MAX_INSTANCES
: número máximo de máquinas virtuales que puede tener el MIG.MIN_INSTANCES
: número mínimo de VMs que debe tener el MIG.METRIC_URL
: URL sin protocolo de una métrica de Monitoring. Por ejemplo,compute.googleapis.com/instance_group/size
. Si usa una métrica personalizada, debe cumplir los requisitos de las métricas personalizadas.METRIC_FILTER
: aplica un filtro para usar un valor individual de una métrica con varios valores y para especificar el tipo de recurso monitorizado. Para obtener más información sobre los filtros de métricas, consulte Conceptos de monitorización de métricas.INSTANCE_ASSIGNMENT
: la cantidad de trabajo que se asignará a cada instancia de VM del MIG.
REST
Para configurar el autoescalado en función de las métricas de Monitoring en un MIG de zona, usa el recurso
autoscalers
. En el caso de un MIG regional, usa el recursoregionAutoscalers
.Usa el parámetro
singleInstanceAssignment
para especificar la cantidad de trabajo que quieres que gestione cada VM.Por ejemplo, haz la siguiente llamada para crear un escalador automático que escale un MIG zonal en función de la asignación de instancias.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "metric": "METRIC_URL", "filter": "METRIC_FILTER", "singleInstanceAssignment": INSTANCE_ASSIGNMENT } ], } }
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.ZONE
: la zona en la que se encuentra el MIG.AUTOSCALER_NAME
: el nombre del escalador automático.MIG_NAME
: el nombre del MIG en el que quieras añadir un escalador automático.MAX_INSTANCES
: número máximo de máquinas virtuales que puede tener el MIG.MIN_INSTANCES
: número mínimo de VMs que debe tener el MIG.METRIC_URL
: URL sin protocolo de una métrica de Monitoring. Por ejemplo,compute.googleapis.com/instance_group/size
. Si usa una métrica personalizada, debe cumplir los requisitos de las métricas personalizadas.METRIC_FILTER
: aplica un filtro para usar un valor individual de una métrica con varios valores y para especificar el tipo de recurso monitorizado. Para obtener más información sobre los filtros de métricas, consulte Conceptos de monitorización de métricas.INSTANCE_ASSIGNMENT
: la cantidad de trabajo que se va a asignar a cada instancia de VM del MIG.
Ejemplos de autoescalado basado en métricas
En esta sección se proporcionan algunos ejemplos de métricas que se usan para el autoescalado. Para ver una lista completa de las métricas, consulta las métricas deGoogle Cloud .
Autoescalar en función de una métrica personalizada
Puede darse el caso de que la métrica que proporciona una señal relevante no represente una cantidad total de trabajo disponible u otro recurso aplicable al grupo, sino una media, un percentil u otra propiedad estadística. En este ejemplo, supongamos que el escalado se basa en la latencia de procesamiento media del grupo.
Supongamos la siguiente configuración:
- Se asigna un MIG zonal llamado
our-instance-group
para realizar una tarea concreta. El grupo se encuentra en la zonaus-central1-a
. - Tiene una métrica personalizada de Monitoring que exporta un valor que quiere mantener en un nivel concreto. En este ejemplo, supongamos que la métrica representa la latencia media del procesamiento de las consultas asignadas al grupo.
- La métrica personalizada se llama:
custom.googleapis.com/example_average_latency
. - La métrica personalizada tiene una etiqueta con una clave llamada
group_name
y un valor igual al nombre del MIG,our-instance-group
. - La métrica personalizada exporta datos del recurso monitorizado global, es decir, no está asociada a ninguna máquina virtual específica.
- La métrica personalizada se llama:
Ha determinado que, cuando el valor de la métrica supera un valor específico, debe añadir más máquinas virtuales al grupo para gestionar la carga. Sin embargo, cuando está por debajo de ese valor, puede liberar algunos recursos. Quieres que la herramienta de escalado automático añada o elimine VMs de forma gradual a un ritmo proporcional a la diferencia entre la métrica y el objetivo. En este ejemplo, supongamos que el valor objetivo es
250 delta/sec
.Puedes configurar el autoescalado del grupo mediante un objetivo de utilización de
250
, que representa la tasa de cambio del valor de la métrica que intentará mantener la herramienta de adaptación dinámica:Consola
En la consola, ve a la página Grupos de instancias. Google Cloud
En la lista, haz clic en el nombre del MIG para abrir la página de resumen del grupo de instancias.
Haz clic en Editar.
- Haga clic en Tamaño del grupo y escalado automático para desplegar la sección.
- Si no hay ninguna configuración de autoescalado, haz clic en Configurar autoescalado.
De forma predeterminada, la configuración de autoescalado añade una señal basada en el uso de la CPU. Si no necesitas esta señal, puedes editarla para cambiar el tipo de señal.
- En la sección Señales de escalado automático, si hay una señal de una métrica de monitorización, puede hacer clic para editarla o en Añadir una señal para añadir una.
En Tipo de señal, selecciona Métrica de Cloud Monitoring.
Haz clic en Configurar. Se abrirá el panel Recurso y métrica.
- Haz clic en Seleccionar una métrica.
- Elija la métrica en Global > Métricas personalizadas.
- Haz clic en Aplicar.
- En la sección Filtros, haga lo siguiente:
- Haz clic en Añadir un filtro.
- En el menú desplegable Etiqueta, seleccione
group_name
. - En el campo Valor, indique
our-instance-group
. - Haz clic en Listo. El gráfico se actualiza para mostrar el valor filtrado de la métrica.
- En la sección Opciones de métricas objetivo para el escalado automático, haga lo siguiente:
- Selecciona Objetivo de utilización.
- Introduce el valor objetivo de utilización como 250.
- Asigna a Tipo de objetivo de uso el valor Delta/seg.
- Cuando haya configurado la métrica, haga clic en Seleccionar.
- Haz clic en Seleccionar una métrica.
Revise los detalles de la métrica y, a continuación, haga clic en Hecho.
Cuando hayas terminado, haz clic en Guardar.
gcloud
gcloud compute instance-groups managed set-autoscaling our-instance-group \ --zone=us-central1-a \ --max-num-replicas=50 \ --min-num-replicas=0 \ --update-stackdriver-metric=custom.googleapis.com/example_average_latency \ --stackdriver-metric-filter="metric.labels.group_name = \"our-instance-group\" AND resource.type = \"global\"" \ --stackdriver-metric-utilization-target=250 \ --stackdriver-metric-utilization-target-type=delta-per-second
REST
POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/autoscalers { "name": "our-instance-group-autoscaler", "target": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceGroupManagers/our-instance-group", "autoscalingPolicy": { "maxNumReplicas": 50, "minNumReplicas": 0, "customMetricUtilizations": [ { "filter": "metric.labels.group_name=\"our-instance-group\" AND resource.type = \"global\"", "utilizationTargetType": "delta-per-second", "utilizationTarget": 250.0, "metric": "custom.googleapis.com/example_average_latency" } ] } }
Escalar automáticamente en función de los mensajes no confirmados en Pub/Sub
Para configurar el escalado automático en función de los mensajes no confirmados de una suscripción de Pub/Sub, usa la métrica
subscription/num_undelivered_messages
proporcionada porpubsub
y filtra porsubscription ID
.La métrica
subscription/num_undelivered_messages
exporta el número total de mensajes de la suscripción, incluidos los mensajes que se están procesando, pero que aún no se han confirmado. No se recomienda usar una métrica que no incluya los mensajes que se están procesando, ya que puede bajar a 0 cuando aún se esté trabajando, lo que provoca que el ajuste de escala automático se reduzca y posiblemente interrumpa el trabajo real.Si no tienes ninguna suscripción, puedes crear una suscripción pull, push o BigQuery antes de configurar el escalado automático.
Consola
En la consola, ve a la página Grupos de instancias. Google Cloud
En la lista, haz clic en el nombre del MIG para abrir la página de resumen del grupo de instancias.
Haz clic en Editar.
- Haga clic en Tamaño del grupo y escalado automático para desplegar la sección.
- Si no hay ninguna configuración de autoescalado, haz clic en Configurar autoescalado.
De forma predeterminada, la configuración de autoescalado añade una señal basada en el uso de la CPU. Si no necesitas esta señal, puedes editarla para cambiar el tipo de señal.
- En la sección Señales de escalado automático, si hay una señal de una métrica de monitorización, puede hacer clic para editarla o en Añadir una señal para añadir una.
En Tipo de señal, selecciona Cola de Cloud Pub/Sub.
Selecciona un tema. Si quieres crear un tema, haz clic en Crear un tema para crearlo.
Selecciona la suscripción en la que quieras basar el escalado automático de tu MIG. Si quieres crear una suscripción, haz clic en Crear suscripción para crearla.
En el campo Número de mensajes que se asignarán a cada VM, especifica el número de mensajes no reconocidos que quieres que gestione cada VM.
Haz clic en Listo.
Cuando hayas terminado, haz clic en Guardar.
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=pubsub.googleapis.com/subscription/num_undelivered_messages \ --stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"SUBSCRIPTION_ID\"" \ --stackdriver-metric-single-instance-assignment=NUMBER_OF_MESSAGES_TO_ASSIGN_TO_EACH_VM
REST
Para configurar el autoescalado de un MIG zonal, usa el recurso
autoscalers
. Para un MIG regional, usa el recursoregionAutoscalers
.Por ejemplo, haz la siguiente llamada para crear un escalador automático para un MIG zonal.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "singleInstanceAssignment": NUMBER_OF_MESSAGES_TO_ASSIGN_TO_EACH_VM, "filter": "resource.type = \"pubsub_subscription\" AND resource.labels.subscription_id=\"SUBSCRIPTION_ID\"", "metric": "pubsub.googleapis.com/subscription/num_undelivered_messages" } ] } }
Escalar automáticamente en función del tráfico de red entrante
Para configurar el autoescalado en función del tráfico de red entrante a las VMs de tu grupo de instancias gestionado, usa la métrica
instance/network/received_bytes_count
proporcionada porcompute
.Consola
En la consola, ve a la página Grupos de instancias. Google Cloud
En la lista, haz clic en el nombre del MIG para abrir la página de resumen del grupo de instancias.
Haz clic en Editar.
- Haga clic en Tamaño del grupo y escalado automático para desplegar la sección.
- Si no hay ninguna configuración de autoescalado, haz clic en Configurar autoescalado.
De forma predeterminada, la configuración de autoescalado añade una señal basada en el uso de la CPU. Si no necesitas esta señal, puedes editarla para cambiar el tipo de señal.
- En la sección Señales de escalado automático, si hay una señal de una métrica de monitorización, puede hacer clic para editarla o en Añadir una señal para añadir una.
En Tipo de señal, selecciona Métrica de Cloud Monitoring.
Haz clic en Configurar. Se abrirá el panel Recurso y métrica.
- Haz clic en Seleccionar una métrica.
- Selecciona Instancia de VM > Instancia > Bytes recibidos
(
compute.googleapis.com/instance/network/received_bytes_count
). - Haz clic en Aplicar.
- Selecciona Instancia de VM > Instancia > Bytes recibidos
(
- En la sección Opciones de métricas objetivo para el escalado automático, haga lo siguiente:
- Asegúrese de que la opción Objetivo de utilización esté seleccionada.
- Introduce un valor de objetivo de utilización.
- Define un tipo de objetivo de uso.
- Cuando haya configurado la métrica, haga clic en Seleccionar.
- Haz clic en Seleccionar una métrica.
Revise los detalles de la métrica y, a continuación, haga clic en Hecho.
Cuando hayas terminado, haz clic en Guardar.
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=compute.googleapis.com/instance/network/received_bytes_count \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "utilizationTargetType": "TARGET_TYPE", "utilizationTarget": TARGET_VALUE, "metric": "compute.googleapis.com/instance/network/received_bytes_count" } ] } }
Escalar automáticamente en función del uso de la memoria
Para configurar el autoescalado en función del porcentaje de memoria usada, especifica la métrica
percent_used
proporcionada por las métricas memory de Ops Agent. Deberías filtrar la métrica porstate
para usar solo el estado de la memoriaused
. Si no especificas el filtro, el escalador automático toma la suma del uso de memoria de todos los estados de memoria etiquetados comobuffered
,cached
,free
,slab
yused
.Consola
En la consola, ve a la página Grupos de instancias. Google Cloud
En la lista, haz clic en el nombre del MIG para abrir la página de resumen del grupo de instancias.
En la página de resumen del grupo de instancias, haz clic en Editar.
- Haga clic en Tamaño del grupo y escalado automático para desplegar la sección.
- Si no hay ninguna configuración de autoescalado, haz clic en Configurar autoescalado.
De forma predeterminada, la configuración de autoescalado añade una señal basada en el uso de la CPU. Si no necesitas esta señal, puedes editarla para cambiar el tipo de señal.
- En la sección Señales de escalado automático, si hay una señal de una métrica de monitorización, puede hacer clic para editarla o en Añadir una señal para añadir una.
En Tipo de señal, selecciona Métrica de Cloud Monitoring.
Haz clic en Configurar. Se abrirá el panel Recurso y métrica.
- Haz clic en Seleccionar una métrica.
- Selecciona Instancia de VM > Memoria > Utilización de memoria
(
compute.googleapis.com/instance/memory/percent_used
). - Haz clic en Aplicar.
- Selecciona Instancia de VM > Memoria > Utilización de memoria
(
- En la sección Filtros, haga lo siguiente:
- Haz clic en Añadir un filtro.
- En el desplegable Etiqueta, elija la etiqueta de métrica Estado.
- En el campo Valor, escribe used.
- Haz clic en Listo.
- En la sección Opciones de métricas objetivo para el escalado automático, haga lo siguiente:
- Asegúrese de que la opción Objetivo de utilización esté seleccionada.
- Introduce un valor de objetivo de utilización.
- Seleccione Indicador como tipo de objetivo de utilización.
- Cuando haya configurado la métrica, haga clic en Seleccionar.
- Haz clic en Seleccionar una métrica.
Revise los detalles de la métrica y, a continuación, haga clic en Hecho.
Cuando hayas terminado, haz clic en Guardar.
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=agent.googleapis.com/memory/percent_used \ --stackdriver-metric-filter="metric.labels.state = \"used\"" --stackdriver-metric-utilization-target-type=gauge \ --stackdriver-metric-utilization-target=TARGET_VALUE \
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "filter": "metric.labels.state=\"used\"", "utilizationTargetType": "GAUGE", "utilizationTarget": TARGET_VALUE, "metric": "agent.googleapis.com/memory/percent_used" } ] } }
Autoescalado basado en la E/S de disco
Para configurar el autoescalado en función del recuento total de operaciones de E/S de disco, usa la métrica
operation_count
proporcionada por las métricas del agente disk Ops. Si quieres escalar en función de las operaciones de lectura o escritura, filtra la métrica con la etiquetadirection
. Del mismo modo, para escalar en función de las operaciones de disco de un dispositivo concreto, usa la etiquetadevice
en el filtro de métricas.Consola
En la consola, ve a la página Grupos de instancias. Google Cloud
En la lista, haz clic en el nombre del MIG para abrir la página de resumen del grupo de instancias.
En la página de resumen del grupo de instancias, haz clic en Editar.
- Haga clic en Tamaño del grupo y escalado automático para desplegar la sección.
- Si no hay ninguna configuración de autoescalado, haz clic en Configurar autoescalado.
De forma predeterminada, la configuración de autoescalado añade una señal basada en el uso de la CPU. Si no necesitas esta señal, puedes editarla para cambiar el tipo de señal.
- En la sección Señales de escalado automático, si hay una señal de una métrica de monitorización, puede hacer clic para editarla o en Añadir una señal para añadir una.
En Tipo de señal, selecciona Métrica de Cloud Monitoring.
Haz clic en Configurar. Se abrirá el panel Recurso y métrica.
- Haz clic en Seleccionar una métrica.
- Selecciona Instancia de VM > Disco > Operaciones de disco
(
agent.googleapis.com/disk/operation_count
). - Haz clic en Aplicar.
- Selecciona Instancia de VM > Disco > Operaciones de disco
(
- En la sección Opciones de métricas objetivo para el escalado automático, haga lo siguiente:
- Asegúrese de que la opción Objetivo de utilización esté seleccionada.
- Introduce un valor de objetivo de utilización.
- Define un tipo de objetivo de uso.
- Cuando haya configurado la métrica, haga clic en Seleccionar.
- Haz clic en Seleccionar una métrica.
Revise los detalles de la métrica y, a continuación, haga clic en Hecho.
Cuando hayas terminado, haz clic en Guardar.
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=agent.googleapis.com/disk/operation_count \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "utilizationTargetType": "TARGET_TYPE", "utilizationTarget": TARGET_VALUE, "metric": "agent.googleapis.com/disk/operation_count" } ] } }
Autoescalar en función del tamaño de otro MIG
Puedes autoescalar un MIG en función del tamaño de otro MIG del mismo proyecto. Por ejemplo, puedes tener una aplicación multinivel con un MIG de frontend que se autoescale en función de un balanceador de carga y un MIG de backend que se autoescale proporcionalmente al frontend. Usa una sola asignación de instancias para definir cuántas VMs de backend se necesitan por cada VM de frontend. Si necesitas una VM de backend por cada cuatro VMs de frontend, asigna el valor 4 a la asignación de una sola instancia en el MIG de backend.
Para autoescalar un MIG (MIG_1) en función del tamaño de otro MIG (MIG_2), usa la métrica
instance_group/size
proporcionada porcompute
.Consola
En la consola, ve a la página Grupos de instancias. Google Cloud
En la lista, haz clic en el nombre del MIG para abrir la página de resumen del grupo de instancias.
En la página de resumen del grupo de instancias, haz clic en Editar.
- Haga clic en Tamaño del grupo y escalado automático para desplegar la sección.
- Si no hay ninguna configuración de autoescalado, haz clic en Configurar autoescalado.
De forma predeterminada, la configuración de autoescalado añade una señal basada en el uso de la CPU. Si no necesitas esta señal, puedes editarla para cambiar el tipo de señal.
- En la sección Señales de escalado automático, si hay una señal de una métrica de monitorización, puede hacer clic para editarla o en Añadir una señal para añadir una.
En Tipo de señal, selecciona Métrica de Cloud Monitoring.
Haz clic en Configurar. Se abrirá el panel Recurso y métrica.
- Haz clic en Selecciona una métrica.
- Selecciona Grupo de instancias > Instance_group > Tamaño del grupo de instancias
(
compute.googleapis.com/instance_group/size
). - Haz clic en Aplicar.
- Selecciona Grupo de instancias > Instance_group > Tamaño del grupo de instancias
(
- En la sección Filtros, haga lo siguiente:
- Haz clic en Añadir un filtro.
- En el menú desplegable Etiqueta, elija la etiqueta de recurso instance_group_name.
- En el campo Value (Valor), escribe el nombre del MIG (MIG_2) en el que quieres basar el ajuste automático de escala del MIG.
- Haz clic en Listo.
- En la sección Opciones de métricas objetivo para el escalado automático, haga lo siguiente:
- Selecciona Single VM instance assignment (Asignación de una sola instancia de VM).
- En el campo Asignación de instancias de VM únicas, introduce
4
si quieres mantener 1 VM en tu MIG actual (MIG_1) por cada 4 VMs de MIG_2.
- Cuando haya configurado la métrica, haga clic en Seleccionar.
- Haz clic en Selecciona una métrica.
Revise los detalles de la métrica y, a continuación, haga clic en Hecho.
Cuando hayas terminado, haz clic en Guardar.
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_1 \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=compute.googleapis.com/instance_group/size \ --stackdriver-metric-filter="resource.type = \"instance_group\" AND resource.labels.location = \"ZONE|REGION\" AND resource.labels.instance_group_name = \"MIG_2\"" \ --stackdriver-metric-single-instance-assignment=4
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_1", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "singleInstanceAssignment": 4, "filter": "resource.type = \"instance_group\" and resource.labels.location = \"ZONE|REGION\" AND resource.labels.instance_group_name = \"MIG_2\"", "metric": "compute.googleapis.com/instance_group/size" } ] } }
Conceptos de métricas de monitorización
En esta sección se ofrece una breve descripción de los conceptos de métricas de Monitoring que debes conocer al configurar el autoescalado basado en métricas de Monitoring.
Identificador de métrica o URL de métrica: el nombre de la métrica en forma de URL sin protocolo. Puede encontrar las URLs de las métricas integradas en la lista de métricas.
Por ejemplo, la URL de una métrica de Pub/Sub que indica el número de mensajes sin confirmar es
pubsub.googleapis.com/subscription/num_undelivered_messages
.Tipo de recurso monitorizado: la fuente del valor de la métrica. Puede consultar el tipo de recurso supervisado de una métrica en la lista de métricas.
Por ejemplo, el tipo de recurso monitorizado de la métrica
pubsub.googleapis.com/subscription/num_undelivered_messages
espubsub_subscription
. Para obtener más información sobre cada tipo de recurso monitorizado, consulta Tipos de recursos monitorizados.Filtro de métrica: cuando una métrica tiene varios valores, un filtro permite que el escalador automático identifique un valor de métrica específico del conjunto de valores de métrica posibles. Usa las etiquetas definidas en una métrica y en un tipo de recurso monitorizado para filtrar los valores. Si quieres explorar los valores de tus métricas con diferentes filtros, puedes probarlos en el explorador de métricas.
Por ejemplo, en la siguiente captura de pantalla se muestra la métrica
pubsub.googleapis.com/subscription/num_undelivered_messages
, que indica el número de mensajes no reconocidos de todas las suscripciones disponibles. Cada línea del gráfico indica una suscripción.Si no se aplica ningún filtro, la herramienta de adaptación dinámica toma la suma de los valores de la métrica de todas las suscripciones. Para escalar automáticamente en función de una sola suscripción, aplica un filtro en la etiqueta
subscription_id
definida parapubsub_subscription
. En la siguiente captura de pantalla se muestra una sola suscripción después de aplicar el filtro.
Requisitos de filtrado de métricas
Cuando usas una métrica que tiene varios valores (categorizados mediante etiquetas), puedes aplicar un filtro para que se ajuste automáticamente en función de valores específicos de la métrica. Si el filtro devuelve varios valores, estos se suman. Para obtener los mejores resultados, crea un filtro que sea lo suficientemente específico como para devolver un solo valor.
El filtrado de métricas de la herramienta de ajuste automático de escala es compatible con la sintaxis de filtro de Monitoring. El filtro debe cumplir los siguientes requisitos:
- El valor de un filtro debe ir entre comillas dobles.
- Debes usar el operador de comparación de igualdad directa (
=
). Debe usar el operador
AND
para combinar diferentes criterios de filtro.Por ejemplo:
--stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"our-subscription\""
.Debes usar valores directos. No puedes usar comodines ni funciones en el filtro.
Por ejemplo, no puedes usar
resource.labels.zone = starts_with("us-")
.No puedes usar etiquetas de metadatos de recursos que almacenen metadatos sobre un recurso monitorizado.
Para obtener una referencia completa de las etiquetas de métricas y de recursos supervisados por las que puede filtrar, consulte la lista de métricas y la lista de recursos supervisados.
Requisitos de las métricas personalizadas
Para usar métricas personalizadas, primero debes crear una métrica personalizada asociada a uno de los tipos de recursos monitorizados.
Una métrica personalizada que se utilice para el autoescalado debe tener las siguientes propiedades:
- Si la configuración de autoescalado usa datos de cada VM del grupo, configura instancias en tu MIG para que cada VM exporte la métrica personalizada. Los valores exportados de cada VM deben asociarse a un recurso monitorizado
gce_instance
que contenga las siguientes etiquetas:zone
con el nombre de la zona en la que se encuentra la instancia.instance_id
con el valor del ID numérico único asignado a la máquina virtual.
- La métrica debe exportar datos al menos cada 60 segundos. Si exporta datos con una frecuencia superior a 60 segundos, el escalador automático puede responder a los cambios de carga más rápido. Si exportas tus datos con una frecuencia inferior a 60 segundos, es posible que el escalador automático no responda a los cambios de carga con la suficiente rapidez.
- La métrica debe exportar datos de tipo de valor
INT64
oDOUBLE
.
Para obtener información sobre cómo crear una métrica personalizada, consulte el artículo Usar métricas personalizadas.
Siguientes pasos
- Consulta información sobre cómo gestionar escaladores automáticos.
- Consulta cómo toman decisiones las herramientas de ajuste automático de escala.
- Consulta cómo usar varias señales de autoescalado para escalar tu grupo.
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-09-12 (UTC).
-