El escalado automático basado en métricas de Cloud Monitoring le permite ajustar la capacidad necesaria según las mediciones de su aplicación. Cuando escala automáticamente un MIG en función de una métrica, el escalador automático crea máquinas virtuales cuando el valor de la métrica aumenta y las elimina cuando el valor disminuye.
Por ejemplo, puede definir cuántas máquinas virtuales necesita por recuento de usuarios, latencia o cantidad de mensajes en una suscripción de Pub/Sub. Puede utilizar las métricas integradas proporcionadas por el servicio de Monitoreo o las métricas personalizadas que exporta desde su aplicación.
Este documento describe cómo escalar automáticamente un grupo de instancias administrado (MIG) en función de las métricas de monitoreo.
También puede escalar automáticamente un MIG según la utilización de la CPU , la capacidad de servicio de equilibrio de carga o los cronogramas .
Antes de comenzar
- Lea acerca de los fundamentos del escalador automático.
- Lea acerca de los conceptos de métricas de monitoreo utilizados en una configuración de escalado automático.
- Si desea escalar automáticamente según una métrica del Ops Agent , instale el Ops Agent .
- Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras 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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Puede configurar el escalado automático basado en hasta 5 métricas de monitoreo por MIG.
- Puede escalar automáticamente en función de métricas que tengan tipos de valores
INT64
oDOUBLE
únicamente. No se admiten otros tipos de valores . - No puede configurar la misma métrica más de una vez en una política de escalado automático.
Objetivo de utilización : si desea que el escalador automático mantenga una métrica en un valor específico, configure un objetivo de utilización . El escalador automático crea máquinas virtuales cuando el valor de la métrica está por encima del objetivo y las elimina cuando el valor de la métrica está por debajo del objetivo. Esto es útil para métricas como el tráfico de red, el uso de memoria/disco o la latencia promedio de su aplicación. El siguiente diagrama muestra cómo un escalador automático agrega y elimina máquinas virtuales en respuesta a un valor de métrica para mantener un objetivo de utilización.
Asignación de instancia única : si desea escalar automáticamente en función de la cantidad de trabajo disponible para asignar a cada VM, configure una asignación de instancia única . La asignación de instancia única que especifique representa cuánto trabajo espera que maneje cada VM. El escalador automático divide el valor de la métrica por el valor de asignación de instancia única para calcular cuántas máquinas virtuales se necesitan. Por ejemplo, si la métrica es igual a 100 y la asignación de instancia única es 5, entonces el escalador automático crea 20 VM en el MIG. Esto es útil para 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 instancia única no se aplica a las métricas que provienen de cada VM. El siguiente diagrama muestra la relación proporcional entre el valor de la métrica y la cantidad de VM al escalar con asignación de instancia única.
Si la métrica proviene de cada VM en su MIG, entonces el escalador automático toma el valor de métrica promedio en todas las VM en el MIG y lo compara con el objetivo de utilización. Por ejemplo, si desea escalar automáticamente utilizando la métrica
tcp_connections
que proporciona la cantidad de conexiones TCP en una VM, entonces el escalador automático toma una cantidad promedio de conexiones TCP en todas las VM en el MIG para compararla con el objetivo. Cuando se utilizan métricas que se originan en una máquina virtual, el MIG no puede escalar a0
porque el escalador automático requiere al menos una máquina virtual para publicar un valor de métrica.Si la métrica se aplica a todo el MIG y no proviene de las máquinas virtuales de su MIG, entonces el escalador automático compara el valor de la métrica con el objetivo de utilización. Por ejemplo, puede utilizar una métrica personalizada que mida la latencia de su aplicación.
En la consola de Google Cloud, vaya a la página de grupos de instancias .
Si no tienes un grupo de instancias administrado, crea uno . De lo contrario, haga clic en el nombre de un MIG de la lista para abrir la página de ese grupo de instancias.
Haga clic en Editar .
Si no existe ninguna configuración de escalado automático:
- En Escala automática , haga clic en Configurar escala automática .
- En Modo de escalado automático , seleccione Activado: agregar y eliminar instancias al grupo para habilitar el escalado automático.
En Autoescalado , en la sección Señales de Autoescalado , si existe una señal para una métrica de Cloud Monitoring, puede hacer clic para editarla o hacer clic en Agregar una señal para agregar una nueva señal.
Establezca el tipo de señal en la métrica Monitoreo de la nube .
Haga clic en Configurar . En el panel Recursos y métricas que se abre, haga lo siguiente:
- Haga clic en Seleccionar una métrica .
- Seleccione la métrica que desea utilizar para el escalado automático. Puede filtrar las métricas según cualquier palabra clave (por ejemplo, memoria, bytes, disco).
- Haga clic en Aplicar . El panel muestra un gráfico que muestra los datos de la métrica seleccionada.
Si desea utilizar datos específicos de la métrica, agregue un filtro basado en etiquetas de la siguiente manera:
- En la sección Filtros , haga clic en Agregar un filtro .
- Seleccione una etiqueta e ingrese un valor .
- Haga clic en Listo . El gráfico se actualiza para mostrarle el valor filtrado de la métrica.
Para ver el valor agregado de la métrica que se utilizará para escalar automáticamente su MIG, active 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 destino de métricas para el escalado automático , seleccione Destino de utilización .
Proporcione lo siguiente:
- Objetivo de utilización : especifique el valor que debe mantener el escalador automático. Este debe ser un número positivo. Por ejemplo, tanto 24,5 como 100 son valores aceptables.
- Tipo de objetivo de utilización : seleccione un tipo de objetivo que corresponda al tipo de medición de la métrica. Para realizar comparaciones precisas, si el objetivo de utilización se mide por segundos, utilice Delta/segundo como tipo de objetivo. Del mismo modo, utilice Delta/min para un objetivo de utilización medido en minutos.
- Calibre : el escalador automático calcula el valor promedio de los datos recopilados en los últimos minutos y lo compara con el objetivo de utilización.
- Delta/min : el escalador automático calcula la tasa promedio de crecimiento por minuto y la compara con el objetivo de utilización.
- Delta/segundo : el escalador automático calcula la tasa promedio de crecimiento por segundo y la compara con el objetivo de utilización.
Cuando haya terminado de configurar la métrica, haga clic en Seleccionar .
- Haga clic en Seleccionar una métrica .
Revise los detalles de la métrica y haga clic en Listo .
Para completar la configuración, haga clic en Guardar .
-
MIG_NAME
: el MIG en el que deseas agregar un escalador automático. -
MAX_INSTANCES
: el número máximo de VM que puede tener el MIG. -
MIN_INSTANCES
: el número mínimo de VM que debe tener el MIG. -
METRIC_URL
: una URL sin protocolo de una métrica de monitoreo. Por ejemplo,compute.googleapis.com/instance/uptime
. Si utiliza una métrica personalizada, debe cumplir con los requisitos de métrica personalizada . -
TARGET_VALUE
: el valor de la métrica que el escalador automático intenta mantener. -
TARGET_TYPE
: el tipo de valor de la métrica.- El
gauge
automático calcula el valor promedio de los datos recopilados en los últimos minutos y lo compara con el objetivo de utilización. -
delta-per-minute
el escalador automático calcula la tasa promedio de crecimiento por minuto y la compara con el objetivo de utilización. -
delta-per-second
el escalador automático calcula la tasa promedio de crecimiento por segundo y la compara con el objetivo de utilización. Para realizar comparaciones precisas, si establece el objetivo de utilización en segundos, utilicedelta-per-second
como tipo de objetivo. Del mismo modo, utilicedelta-per-minute
para un objetivo de utilización en minutos.
- El
-
METRIC_FILTER
: aplica un filtro para usar un valor individual de una métrica que tiene múltiples valores y para especificar el tipo de recurso monitoreado. Si usa una métrica que proviene de cada VM, no tiene que especificar el tipo de recurso monitoreado porquegce_instance
se usa de forma predeterminada. Para otras métricas, utiliceresource.type
en la expresión de filtro para especificar el recurso monitoreado. Para obtener más información sobre el filtro de métricas, consulte Conceptos de supervisión de métricas . -
PROJECT_ID
: su ID de proyecto . -
ZONE
: la zona donde se encuentra el MIG. -
AUTOSCALER_NAME
: el nombre del escalador automático. -
MIG_NAME
: el MIG en el que deseas agregar un escalador automático. -
MAX_INSTANCES
: el número máximo de VM que puede tener el MIG. -
MIN_INSTANCES
: el número mínimo de VM que debe tener el MIG. -
METRIC_URL
: una URL sin protocolo de una métrica de monitoreo. Por ejemplo,compute.googleapis.com/instance/uptime
. Si utiliza una métrica personalizada, debe cumplir con los requisitos de métrica personalizada . -
TARGET_VALUE
: el valor de la métrica que el escalador automático intenta mantener. -
TARGET_TYPE
: el tipo de valor de la métrica.-
GAUGE
: el escalador automático calcula el valor promedio de los datos recopilados en los últimos minutos y lo compara con el objetivo de utilización. -
DELTA_PER_MINUTE
El escalador automático calcula la tasa promedio de crecimiento por minuto y la compara con el objetivo de utilización. -
DELTA_PER_SECOND
El escalador automático calcula la tasa promedio de crecimiento por segundo y la compara con el objetivo de utilización. Para realizar comparaciones precisas, si establece el objetivo de utilización en segundos, utiliceDELTA_PER_SECOND
como tipo de objetivo. Del mismo modo, utiliceDELTA_PER_MINUTE
para un objetivo de utilización en minutos.
-
-
METRIC_FILTER
: aplica un filtro para usar un valor individual de una métrica con múltiples valores y para especificar el tipo de recurso monitoreado. Si usa una métrica que proviene de cada VM, no tiene que especificar el tipo de recurso monitoreado porquegce_instance
se usa de forma predeterminada. Para otras métricas, debe especificar el recurso monitoreado mediante el selectorresource.type
. Para obtener más información sobre el filtro de métricas, consulte Conceptos de supervisión de métricas . En la consola de Google Cloud, vaya a la página de grupos de instancias .
Si no tienes un grupo de instancias administrado, crea uno . De lo contrario, haga clic en el nombre de un MIG de la lista para abrir la página de ese grupo de instancias.
Haga clic en Editar .
Si no existe ninguna configuración de escalado automático:
- En Escala automática , haga clic en Configurar escala automática .
- En Modo de escalado automático , seleccione Activado: agregar y eliminar instancias al grupo para habilitar el escalado automático.
En Escala automática , en la sección Señales de escala automática , si existe una señal para una métrica de monitoreo, puede hacer clic para editarla o hacer clic en Agregar una señal para agregar una nueva métrica.
Establezca el tipo de señal en la métrica Monitoreo de la nube .
Haga clic en Configurar . En el panel Recursos y métricas que se abre, haga lo siguiente:
- Haga clic en Seleccionar una métrica .
- Seleccione la métrica que desea utilizar para el escalado automático. Puede filtrar las métricas según cualquier palabra clave (por ejemplo, memoria, bytes, disco).
- Haga clic en Aplicar . El panel muestra un gráfico que muestra los datos de la métrica seleccionada.
Si desea utilizar datos específicos de la métrica, agregue un filtro basado en etiquetas de la siguiente manera:
- En la sección Filtros , haga clic en Agregar un filtro .
- Seleccione una etiqueta e ingrese un valor .
- Haga clic en Listo . El gráfico se actualiza para mostrarle el valor de la métrica filtrada.
Para ver el valor agregado de la métrica que se utilizará para escalar automáticamente su MIG, active 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 destino de métricas para el escalado automático , seleccione Asignación de instancia de VM única .
Proporcione un valor de asignación de instancia única que represente la cantidad de trabajo que se asignará a cada VM en el MIG.
Cuando haya terminado de configurar la métrica, haga clic en Seleccionar .
- Haga clic en Seleccionar una métrica .
Revise los detalles de la métrica y haga clic en Listo .
Para completar la configuración, haga clic en Guardar .
-
MIG_NAME
: el nombre del MIG donde desea agregar un escalador automático. -
MAX_INSTANCES
: el número máximo de VM que puede tener el MIG. -
MIN_INSTANCES
: el número mínimo de VM que debe tener el MIG. -
METRIC_URL
: una URL sin protocolo de una métrica de monitoreo. Por ejemplo,compute.googleapis.com/instance_group/size
. Si utiliza una métrica personalizada, debe cumplir con los requisitos de métrica personalizada . -
METRIC_FILTER
: aplica un filtro para usar un valor individual de una métrica con múltiples valores y para especificar el tipo de recurso monitoreado. Para obtener más información sobre el filtro de métricas, consulte Conceptos de supervisión de métricas . -
INSTANCE_ASSIGNMENT
: la cantidad de trabajo a asignar a cada instancia de VM en el MIG. -
PROJECT_ID
: su ID de proyecto . -
ZONE
: la zona donde se encuentra el MIG. -
AUTOSCALER_NAME
: el nombre del escalador automático. -
MIG_NAME
: el nombre del MIG donde desea agregar un escalador automático. -
MAX_INSTANCES
: el número máximo de VM que puede tener el MIG. -
MIN_INSTANCES
: el número mínimo de VM que debe tener el MIG. -
METRIC_URL
: una URL sin protocolo de una métrica de monitoreo. Por ejemplo,compute.googleapis.com/instance_group/size
. Si utiliza una métrica personalizada, debe cumplir con los requisitos de métrica personalizada . -
METRIC_FILTER
: aplica un filtro para usar un valor individual de una métrica con múltiples valores y para especificar el tipo de recurso monitoreado. Para obtener más información sobre el filtro de métricas, consulte Conceptos de supervisión de métricas . -
INSTANCE_ASSIGNMENT
: la cantidad de trabajo a asignar a cada instancia de VM en el MIG. - Se asigna un MIG zonal llamado
our-instance-group
para realizar una tarea particular. El grupo está ubicado en la zonaus-central1-a
. - Tiene una métrica personalizada de Monitoreo que exporta un valor que le gustaría mantener en un nivel particular. Para este ejemplo, supongamos que la métrica representa la latencia promedio del procesamiento de consultas asignadas al grupo.
- La métrica personalizada se denomina:
custom.googleapis.com/example_average_latency
. - La métrica personalizada tiene una etiqueta con una clave denominada
group_name
y un valor igual al nombre del MIG,our-instance-group
. - La métrica personalizada exporta datos para el recurso monitoreado global , es decir, no está asociado con ninguna VM específica.
- La métrica personalizada se denomina:
En la consola de Google Cloud, vaya a la página de grupos de instancias .
Haga clic en el nombre de su MIG de la lista para abrir la página de descripción general del grupo de instancias.
Haga clic en Editar .
Si no existe ninguna configuración de escalado automático:
- En Escala automática , haga clic en Configurar escala automática .
- En Modo de escalado automático , seleccione Activado: agregar y eliminar instancias al grupo para habilitar el escalado automático.
En Escala automática , en la sección Señales de escala automática , haga clic en Agregar una señal .
Establezca el tipo de señal en la métrica Monitoreo de la nube .
Haga clic en Configurar . Se abre el panel Recursos y métricas .
- Haga clic en Seleccionar una métrica .
- Elija su métrica en Global > Métricas personalizadas .
- Haga clic en Aplicar .
- En la sección Filtros , haga lo siguiente:
- Haga clic en Agregar un filtro .
- En el menú desplegable Etiqueta , seleccione
group_name
. - En el campo Valor , proporcione
our-instance-group
. - Haga clic en Listo . El gráfico se actualiza para mostrar el valor filtrado de la métrica.
- En la sección Opciones de destino de métricas para escalado automático , haga lo siguiente:
- Seleccione Objetivo de utilización .
- Ingrese el valor objetivo de utilización como 250.
- Establezca el tipo de objetivo de utilización en Delta/seg .
- Una vez que haya configurado la métrica, haga clic en Seleccionar .
- Haga clic en Seleccionar una métrica .
Revise los detalles de la métrica y luego haga clic en Listo .
Cuando haya terminado, haga clic en Guardar .
En la consola de Google Cloud, vaya a la página de grupos de instancias .
Haga clic en el nombre de su MIG de la lista para abrir la página de descripción general del grupo de instancias.
Haga clic en Editar .
Si no existe ninguna configuración de escalado automático:
- En Escala automática , haga clic en Configurar escala automática .
- En Modo de escalado automático , seleccione Activado: agregar y eliminar instancias al grupo para habilitar el escalado automático.
En la sección Señales de escala automática , haga clic en Agregar una señal .
Establezca el tipo de señal en Cola de Cloud Pub/Sub .
Seleccione un tema . Si desea un tema nuevo, haga clic en Crear un tema para crear uno .
Seleccione la suscripción según la cual desea escalar automáticamente su MIG. Si desea una nueva suscripción, haga clic en Crear una suscripción para crear una .
En el campo Número de mensajes para asignar a cada VM , especifique el número de mensajes no confirmados que espera que maneje cada VM.
Haga clic en Listo .
Cuando haya terminado, haga clic en Guardar .
En la consola de Google Cloud, vaya a la página de grupos de instancias .
Haga clic en el nombre de su MIG de la lista para abrir la página de descripción general del grupo de instancias.
Haga clic en Editar .
Si no existe ninguna configuración de escalado automático:
- En Escala automática , haga clic en Configurar escala automática .
- En Modo de escalado automático , seleccione Activado: agregar y eliminar instancias al grupo para habilitar el escalado automático.
En Escala automática , en la sección Señales de escala automática , haga clic en Agregar una señal .
Establezca el tipo de señal en la métrica Monitoreo de la nube .
Haga clic en Configurar . Se abre el panel Recursos y métricas .
- Haga clic en Seleccionar una métrica .
- Seleccione Instancia de VM > Instancia > Bytes recibidos (
compute.googleapis.com/instance/network/received_bytes_count
). - Haga clic en Aplicar .
- Seleccione Instancia de VM > Instancia > Bytes recibidos (
- En la sección Opciones de destino de métricas para escalado automático , haga lo siguiente:
- Asegúrese de que el objetivo de utilización esté seleccionado.
- Introduzca un valor objetivo de utilización.
- Establezca un tipo de objetivo de utilización.
- Una vez que haya configurado la métrica, haga clic en Seleccionar .
- Haga clic en Seleccionar una métrica .
Revise los detalles de la métrica y luego haga clic en Listo .
Cuando haya terminado, haga clic en Guardar .
En la consola de Google Cloud, vaya a la página de grupos de instancias .
Haga clic en el nombre de su MIG de la lista para abrir la página de descripción general del grupo de instancias.
En la página de descripción general del grupo de instancias, haga clic en Editar .
Si no existe ninguna configuración de escalado automático:
- En Escala automática , haga clic en Configurar escala automática .
- En Modo de escalado automático , seleccione Activado: agregar y eliminar instancias al grupo para habilitar el escalado automático.
En Escala automática , en la sección Señales de escala automática , haga clic en Agregar una señal .
Establezca el tipo de señal en la métrica Monitoreo de la nube .
Haga clic en Configurar . Se abre el panel Recursos y métricas .
- Haga clic en Seleccionar una métrica .
- Seleccione Instancia de VM > Memoria > Utilización de memoria (
compute.googleapis.com/instance/memory/percent_used
). - Haga clic en Aplicar .
- Seleccione Instancia de VM > Memoria > Utilización de memoria (
- En la sección Filtros , haga lo siguiente:
- Haga clic en Agregar un filtro .
- En el menú desplegable Etiqueta , elija la etiqueta de métrica de estado .
- En el campo Valor , escriba usado .
- Haga clic en Listo .
- En la sección Opciones de destino de métricas para escalado automático , haga lo siguiente:
- Asegúrese de que el objetivo de utilización esté seleccionado.
- Introduzca un valor objetivo de utilización.
- Establezca el tipo de objetivo de utilización en Calibre .
- Una vez que haya configurado la métrica, haga clic en Seleccionar .
- Haga clic en Seleccionar una métrica .
Revise los detalles de la métrica y luego haga clic en Listo .
Cuando haya terminado, haga clic en Guardar .
En la consola de Google Cloud, vaya a la página de grupos de instancias .
Haga clic en el nombre de su MIG de la lista para abrir la página de descripción general del grupo de instancias.
En la página de descripción general del grupo de instancias, haga clic en Editar .
Si no existe ninguna configuración de escalado automático:
- En Escala automática , haga clic en Configurar escala automática .
- En Modo de escalado automático , seleccione Activado: agregar y eliminar instancias al grupo para habilitar el escalado automático.
En Escala automática , en la sección Señales de escala automática , haga clic en Agregar una señal .
Establezca el tipo de señal en la métrica Monitoreo de la nube .
Haga clic en Configurar . Se abre el panel Recursos y métricas .
- Haga clic en Seleccionar una métrica .
- Seleccione Instancia de VM > Disco > Operaciones de disco (
agent.googleapis.com/disk/operation_count
). - Haga clic en Aplicar .
- Seleccione Instancia de VM > Disco > Operaciones de disco (
- En la sección Opciones de destino de métricas para escalado automático , haga lo siguiente:
- Asegúrese de que el objetivo de utilización esté seleccionado.
- Introduzca un valor objetivo de utilización.
- Establezca un tipo de objetivo de utilización.
- Una vez que haya configurado la métrica, haga clic en Seleccionar .
- Haga clic en Seleccionar una métrica .
Revise los detalles de la métrica y luego haga clic en Listo .
Cuando haya terminado, haga clic en Guardar .
En la consola de Google Cloud, vaya a la página de grupos de instancias .
Haga clic en el nombre de su MIG de la lista para abrir la página de descripción general del grupo de instancias.
En la página de descripción general del grupo de instancias, haga clic en Editar .
Si no existe ninguna configuración de escalado automático:
- En Escala automática , haga clic en Configurar escala automática .
- En Modo de escalado automático , seleccione Activado: agregar y eliminar instancias al grupo para habilitar el escalado automático.
En Escala automática , en la sección Señales de escala automática , haga clic en Agregar una señal .
Establezca el tipo de señal en la métrica Monitoreo de la nube .
Haga clic en Configurar . Se abre el panel Recursos y métricas .
- Haga clic en Seleccionar una métrica
- Seleccione Grupo de instancias > Grupo_instancia > Tamaño del grupo de instancias (
compute.googleapis.com/instance_group/size
). - Haga clic en Aplicar .
- Seleccione Grupo de instancias > Grupo_instancia > Tamaño del grupo de instancias (
- En la sección Filtros , haga lo siguiente:
- Haga clic en Agregar un filtro .
- En el menú desplegable Etiqueta , elija la etiqueta de recurso nombre_grupo_instancia .
- En el campo Valor , escriba el nombre del MIG ( MIG_2 ) según el cual desea escalar automáticamente su MIG.
- Haga clic en Listo .
- En la sección Opciones de destino de métricas para escalado automático , haga lo siguiente:
- Seleccione Asignación de instancia de máquina virtual única .
- En el campo Asignación de instancia de VM única, ingrese
4
, si desea mantener 1 VM en su MIG actual ( MIG_1 ) por cada 4 VM en MIG_2 .
- Una vez que haya configurado la métrica, haga clic en Seleccionar .
- Haga clic en Seleccionar una métrica
Revise los detalles de la métrica y luego haga clic en Listo .
Cuando haya terminado, haga clic en Guardar .
Identificador de métrica o URL de métrica : el nombre de la métrica en forma de URL sin protocolo. Puede encontrar URL para URL de métricas integradas en la lista de métricas .
Por ejemplo, la URL de una métrica de Pub/Sub que proporciona la cantidad de mensajes no reconocidos es
pubsub.googleapis.com/subscription/num_undelivered_messages
.Tipo de recurso monitoreado : la fuente del valor de la métrica. Puede encontrar el tipo de recurso monitoreado de una métrica en la lista de métricas .
Por ejemplo, el tipo de recurso monitoreado de la métrica
pubsub.googleapis.com/subscription/num_undelivered_messages
espubsub_subscription
. Para obtener más detalles sobre cada tipo de recurso monitoreado, consulte Tipos de recursos monitoreados .Filtro de métrica : cuando su métrica tiene varios valores, un filtro permite que el escalador automático identifique un valor de métrica específico del conjunto de posibles valores de métrica. Utilice las etiquetas definidas en una métrica y un tipo de recurso monitoreado para filtrar los valores. Si desea explorar los valores de sus métricas con diferentes filtros, puede probarlos en el explorador de métricas .
Por ejemplo, la siguiente captura de pantalla muestra la métrica
pubsub.googleapis.com/subscription/num_undelivered_messages
que proporciona la cantidad de mensajes no reconocidos en todas las suscripciones disponibles. Cada línea del gráfico indica una suscripción.Sin un filtro, el escalador automático toma la suma de los valores de métricas de todas las suscripciones. Para escalar automáticamente en función de una única suscripción, aplique un filtro en la etiqueta
subscription_id
definida parapubsub_subscription
. La siguiente captura de pantalla muestra una única suscripción después de aplicar el filtro.- Debe encerrar el valor de un filtro entre comillas dobles.
- Debes utilizar el operador de comparación de igualdad directa (
=
). Debe utilizar el operador
AND
para unir diferentes criterios de filtro.Por ejemplo:
--stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"our-subscription\""
.Debes utilizar valores directos. No puede utilizar comodines ni funciones en el filtro.
Por ejemplo, no puede utilizar
resource.labels.zone = starts_with("us-")
.No puede usar etiquetas de metadatos de recursos que almacenen metadatos sobre un recurso monitoreado.
- Si la configuración de autoscalaje utiliza datos de cada VM en el grupo, configure instancias en su MIG para que cada VM exporte la métrica personalizada. Los valores exportados de cada VM deben estar asociados con un recurso monitoreado
gce_instance
, que contiene las siguientes etiquetas:-
zone
con el nombre de la zona en la que está la instancia. -
instance_id
con el valor de ID numérico único asignado a la VM.
-
- La métrica debe exportar datos al menos cada 60 segundos. Si exporta datos con más frecuencia de cada 60 segundos, el AutoScaler puede responder a los cambios de carga más rápidamente. Si exporta sus datos menos frecuentes que cada 60 segundos, el AutoScaler podría no responder a los cambios de carga lo suficientemente rápido.
- La métrica debe exportar datos de tipo
INT64
oDOUBLE
valor. - Aprenda sobre la gestión de los autoscaleros .
- Aprenda cómo los autoscalores toman decisiones .
- Aprenda a usar múltiples señales de autoscalaje para escalar su grupo.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .
Limitaciones
El escalado basado en métricas de monitoreo está restringido por las limitaciones de todos los escaladores automáticos , así como por las siguientes limitaciones:
Configurar el escalado automático basado en métricas de monitoreo
Puede utilizar un valor de métrica de Monitoreo para el ajuste de escala automático de dos maneras diferentes:
Escalado automático para mantener una métrica en un valor objetivo
Cuando desee mantener una métrica en un valor objetivo, especifique un objetivo de utilización. El escalador automático crea máquinas virtuales cuando el valor de la métrica está por encima del objetivo y las elimina cuando el valor de la métrica está por debajo del objetivo.
Cuando su métrica tenga varios valores, aplique un filtro para escalar automáticamente utilizando un valor individual de la métrica. Para obtener más detalles sobre los filtros de métricas y otros campos que puede utilizar en su configuración, consulte Supervisión de conceptos de métricas .
Consola
nube de gcloud
Para configurar el escalado automático basado en métricas de monitoreo, use el comando
set-autoscaling
.Utilice el siguiente comando para escalar automáticamente en función de una métrica de supervisión con un objetivo de utilización.
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 su métrica tiene varios valores y desea utilizar un valor individual para el ajuste de escala automático, utilice el indicador
--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"
Reemplace lo siguiente:
Para ver una lista completa de los comandos e indicadores disponibles para la CLI de gcloud, consulta la referencia
gcloud
.DESCANSAR
Para configurar el escalado automático basado en métricas de monitoreo para un MIG zonal, use el recurso
autoscalers
o, para un MIG regional, use el recursoregionAutoscalers
.Realice la siguiente llamada para escalar automáticamente un MIG zonal en función de una métrica de monitoreo 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 su métrica tiene varios valores y desea utilizar un valor individual para el ajuste de escala automático, utilice el parámetro
filter
como se indica en la siguiente llamada 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" } ], } }
Reemplace lo siguiente:
Escalado automático basado en el trabajo disponible para cada VM en un MIG
Cuando desee escalar automáticamente en función de la cantidad de trabajo disponible para cada VM en un MIG, especifique una asignación de instancia única. El valor de la asignación de instancia única que establezca indica cuánto trabajo espera que maneje cada VM. El escalador automático divide el valor de la métrica por el valor de asignación de instancia única para calcular cuántas máquinas virtuales se necesitan.
Un valor métrico de
0
indica que no hay trabajo que su MIG deba completar. Si el número mínimo de instancias de su MIG se establece en0
y su valor de métrica cae a0
, entonces el MIG aumenta a0
hasta que el valor de la métrica aumenta.Cuando su métrica tenga varios valores, aplique un filtro para escalar automáticamente utilizando un valor individual de la métrica. Para obtener más detalles sobre los filtros de métricas y otros campos que puede utilizar en su configuración, consulte Supervisión de conceptos de métricas .
Consola
nube de gcloud
Para configurar el escalado automático basado en métricas de monitoreo, use el comando
set-autoscaling
.En el comando, especifique el indicador
--stackdriver-metric-single-instance-assignment
para indicar la cantidad de trabajo que espera que maneje cada VM del grupo.El siguiente comando crea un escalador automático basado en la asignación de trabajo para 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
Reemplace lo siguiente:
DESCANSAR
Para configurar el escalado automático basado en métricas de monitoreo para un MIG zonal, use el recurso
autoscalers
o, para un MIG regional, use el recursoregionAutoscalers
.Utilice el parámetro
singleInstanceAssignment
para especificar la cantidad de trabajo que espera que maneje cada VM.Por ejemplo, realice la siguiente llamada para crear un escalador automático que escale un MIG zonal según la asignación de instancia.
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 } ], } }
Reemplace lo siguiente:
Ejemplos de escalado automático basado en métricas
Esta sección proporciona algunos ejemplos de métricas utilizadas para el escalado automático. Para obtener una lista completa de métricas, consulte Google Cloud métricas .
Escalado automático basado en una métrica personalizada
Puede darse una situación en la 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 un promedio, un percentil o alguna otra propiedad estadística. Para este ejemplo, supongamos que escala según la latencia de procesamiento promedio del grupo.
Suponga la siguiente configuración:
Ha determinado que cuando el valor de la métrica está por encima de algún valor específico, necesita agregar más máquinas virtuales al grupo para manejar la carga, mientras que cuando está por debajo de ese valor, puede liberar algunos recursos. Desea que el escalador automático agregue o elimine gradualmente máquinas virtuales a una velocidad proporcional a cuánto está la métrica por encima o por debajo del objetivo. Para este ejemplo, supongamos que ha determinado que su valor objetivo es
250 delta/sec
.Puede configurar el escalado automático para el grupo utilizando un objetivo de utilización de
250
, que representa la tasa de cambio del valor de la métrica que el escalador automático intentará mantener:Consola
nube de 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
DESCANSAR
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" } ] } }
Escalado automático basado en mensajes no reconocidos en Pub/Sub
Para configurar el ajuste de escala automático en función de mensajes no reconocidos en una suscripción de Pub/Sub , use la métrica
subscription/num_undelivered_messages
proporcionada porpubsub
y filtre 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 el uso de una métrica que no incluya los mensajes que se están procesando porque dicha métrica puede caer a 0 cuando todavía hay trabajo por hacer, lo que provoca que el escalado automático aumente y posiblemente interrumpa el trabajo real.Si no tienes una suscripción, puedes crear una suscripción pull , push o BigQuery antes de configurar el ajuste de escala automático.
Consola
nube de 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
DESCANSAR
Para configurar el ajuste de escala automático para un MIG zonal, use el recurso
autoscalers
o, para un MIG regional, use el recursoregionAutoscalers
.Por ejemplo, realice 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" } ] } }
Escalado automático basado en el tráfico de red entrante
Para configurar el escalado automático en función del tráfico de red entrante a las máquinas virtuales en su MIG, use la métrica
instance/network/received_bytes_count
proporcionada porcompute
.Consola
nube de 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
DESCANSAR
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" } ] } }
Escalado automático basado en el uso de memoria
Para configurar el escalado automático en función del porcentaje de memoria utilizada, especifique la métrica
percent_used
proporcionada por las métricas del Agente de operaciones de memoria . Debe filtrar la métrica porstate
para usar solo el estado de la memoriaused
. Si no especifica el filtro, el escalador automático toma la suma del uso de la memoria por todos los estados de memoria etiquetados comobuffered
,cached
,free
,slab
yused
.Consola
nube de 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 \
DESCANSAR
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" } ] } }
Escalado automático basado en E/S de disco
Para configurar el ajuste de escala automático en función del recuento total de operaciones de E/S de disco, utilice la métrica
operation_count
proporcionada por las métricas del Agente de operaciones de disco . Si desea escalar en función de operaciones de lectura o escritura, filtre la métrica mediante la etiquetadirection
. De manera similar, para escalar según las operaciones de disco en un dispositivo en particular, use la etiquetadevice
en el filtro de métricas.Consola
nube de 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
DESCANSAR
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" } ] } }
Escala automática basada en el tamaño de otro MIG
Puede escalar automáticamente un MIG según el tamaño de otro MIG dentro del mismo proyecto. Por ejemplo, puede tener una aplicación de varios niveles con un MIG de frontend que se escala automáticamente en función de un equilibrador de carga y un MIG de backend que se escala automáticamente proporcionalmente al frontend. Utilice una asignación de instancia única para definir cuántas VM de backend se necesitan para cada VM de frontend. Si necesita 1 VM de backend por cada 4 VM de frontend, establezca la asignación de instancia única en 4 en el MIG de backend.
Para escalar automáticamente un MIG ( MIG_1 ) en función del tamaño de otro MIG ( MIG_2 ), utilice la métrica
instance_group/size
proporcionada porcompute
.Consola
nube de 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
DESCANSAR
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 seguimiento
Esta sección proporciona una breve descripción de los conceptos de métricas de monitoreo que necesita conocer al configurar el escalado automático basado en métricas de monitoreo.
Requisitos de filtrado de métricas
Cuando utiliza una métrica que tiene varios valores (clasificados mediante etiquetas ), puede aplicar un filtro para escalar automáticamente en función de valores específicos de la métrica. Si el filtro devuelve varios valores, los valores se suman. Para obtener mejores resultados, cree un filtro que sea lo suficientemente específico como para devolver un valor único.
El filtrado del escalador automático para métricas es compatible con la sintaxis del filtro de monitoreo . El filtro debe cumplir los siguientes requisitos:
Para obtener una referencia completa de etiquetas métricas y etiquetas de recursos monitoreadas en las que puede filtrar, consulte la lista de métricas y la lista de recursos monitoreados .
Requisitos métricos personalizados
Para usar métricas personalizadas, primero debe crear una métrica personalizada que esté asociada con uno de los tipos de recursos monitoreados .
Una métrica personalizada utilizada para el autoscalado debe tener las siguientes propiedades:
Para obtener información sobre cómo crear una métrica personalizada, consulte el uso de métricas personalizadas .
¿Qué sigue?
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-04-17 (UTC).
-