El ajuste de escala automático basado en las métricas de Cloud Monitoring te permite ajustar la capacidad necesaria según las mediciones de la app. Cuando realizas un ajuste de escala automático en un MIG basado en una métrica, el escalador automático crea VM cuando el valor de la métrica aumenta y las borra cuando el valor disminuye.
Por ejemplo, puedes definir cuántas VM necesitas por recuento de usuarios, latencia o la cantidad de mensajes en una suscripción de Pub/Sub. Puedes usar las métricas integradas que proporciona el servicio de Monitoring o las métricas personalizadas que exportas desde tu aplicación.
En este documento se describe cómo escalar automáticamente un grupo de instancias administrado (MIG) basado en las métricas de Monitoring.
También puedes escalar automáticamente un MIG en función del uso de CPU, la capacidad de entrega del balanceo de cargas o los programas.
Antes de comenzar
- Lee acerca de los aspectos básicos del escalador automático.
- Lee sobre los conceptos de las métricas de Monitoring que se usan en una configuración de ajuste de escala automático.
- Si deseas realizar un ajuste de escala automático en función de una métrica del Agente de operaciones, instala el Agente de operaciones.
-
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Puedes configurar el ajuste de escala automático en función de hasta 5 métricas de Monitoring por MIG.
- Puedes realizar un ajuste de escala automático en función de las métricas que tienen solo tipos de valores
INT64
oDOUBLE
. No se admiten otros tipos de valores. - No puedes configurar la misma métrica más de una vez en una política de ajuste de escala automático.
Objetivo de utilización: Si deseas que el escalador automático mantenga una métrica en un valor específico, configura un objetivo de utilización. El escalador automático crea VM cuando el valor de la métrica está por encima del objetivo y borra VM 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 o de disco o la latencia promedio de tu aplicación. En el siguiente diagrama, se muestra cómo un escalador automático agrega y quita las VM en respuesta a un valor de la métrica para mantener un objetivo de utilización.
Asignación de instancia única: Si deseas realizar el ajuste de escala automático según la cantidad de trabajo disponible para asignar a cada VM, configura una asignación de instancia única. La asignación de instancia única que especifiques representa cuánto trabajo esperas que controle 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 VM se necesitan. Por ejemplo, si la métrica es igual a 100 y la asignación de instancia única es 5, el escalador automático crea 20 VM 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 provienen de cada VM. En el siguiente diagrama, se muestra la relación proporcional entre el valor de la métrica y la cantidad de VM cuando se escala con la asignación de instancia única.
Si la métrica proviene de cada VM en tu MIG, el escalador automático toma el valor de la métrica promedio en todas las VM del MIG y lo compara con el objetivo de uso. Por ejemplo, si deseas realizar el ajuste de escala automático con la métrica
tcp_connections
que proporciona la cantidad de conexiones TCP en una VM, el escalador automático toma un número promedio de conexiones TCP a todas las VM en el MIG para compararlas con el objetivo. Cuando usas esas métricas que se originan en una VM, el MIG no puede reducir la escala a0
porque el escalador automático requiere que al menos una VM publique un valor de métrica.Si la métrica se aplica a todo el MIG y no proviene de las VM en tu MIG, el escalador automático compara el valor de la métrica con el objetivo de uso. Por ejemplo, puedes usar una métrica personalizada que mida la latencia de tu aplicación.
En la consola de Google Cloud, ve a la página Grupos de instancias.
Si no tienes un grupo de instancias administrado, crea uno. De lo contrario, haz clic en el nombre de un MIG de la lista para abrir esa página del grupo de instancias.
Haz clic en Editar.
Si no existe una configuración de ajuste de escala automático, haz lo siguiente:
- En Ajuste de escala automático, haz clic en Configurar ajuste de escala automático.
- En Modo de ajuste de escala automático, elige Activar: agregar y quitar instancias al grupo para habilitar el ajuste de escala automático.
En Ajuste de escala automático, en la sección Indicadores de ajuste de escala automático, si existe un indicador para una métrica de Cloud Monitoring, puedes hacer clic para editarlo o puedes hacer clic en Agregar un indicador para agregar un indicador nuevo.
Configura el Tipo de indicador como Métrica de Cloud Monitoring.
Haz clic en Configurar. En el panel Recurso y métrica que se abre, sigue estos pasos:
- Haz clic en Elige una métrica.
- Elige la métrica que deseas usar para el ajuste de escala automático. Puedes filtrar las métricas según cualquier palabra clave, como la memoria, los bytes o el disco.
- Haz clic en Aplicar. En el panel, se muestra un gráfico que muestra los datos de la métrica seleccionada.
Si deseas usar datos específicos de la métrica, agrega un filtro según las etiquetas de la siguiente manera:
- En la sección Filtros, haz clic en Agregar un filtro.
- Elige una Etiqueta y, luego, ingresa un Valor.
- Haz clic en Listo. El gráfico se actualiza para mostrarte el valor filtrado de la métrica.
Para ver el valor agregado de las métricas que se usarán para realizar el ajuste de escala automático en tu MIG, activa o desactiva 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 objetivo de métricas para el ajuste de escala automático, elige Objetivo de utilización.
Proporcione lo siguiente:
- Objetivo de utilización: especifica el valor que el escalador automático debe mantener. Debe ser un número positivo. Por ejemplo, 24.5 y 100 son valores aceptables.
- Tipo de objetivo de utilización: elige un tipo de objetivo que corresponda al tipo de medición de la métrica. Para obtener comparaciones precisas, si el objetivo de uso se mide por segundos, usa delta/segundo como tipo de objetivo. Del mismo modo, usa delta/min para un objetivo de utilización medido por minuto.
- Indicador: 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 de crecimiento promedio por minuto y la compara con el objetivo de utilización.
- Delta/segundo: El escalador automático calcula la tasa de crecimiento promedio por segundo y la compara con el objetivo de utilización.
Cuando termines de configurar la métrica, haz clic en Seleccionar.
- Haz clic en Elige una métrica.
Revisa los detalles de la métrica y haz clic en Listo.
Para completar la configuración, haz clic en Guardar.
MIG_NAME
: Es el MIG en el que deseas agregar un escalador automático.MAX_INSTANCES
: La cantidad máxima de VM que puede tener el MIG.MIN_INSTANCES
: La cantidad mínima de VM que debe tener el MIG.METRIC_URL
: una URL sin protocolo de una métrica de Monitoring. Por ejemplo,compute.googleapis.com/instance/uptime
Si usas una métrica personalizada, debe cumplir con los requisitos de métricas personalizadas.TARGET_VALUE
: El valor de la métrica que el escalador automático intenta mantenerTARGET_TYPE
: El tipo de valor de la métrica.gauge
Indicador: El escalador automático calcula el valor promedio de los datos recopilados en los últimos minutos y lo compara con el objetivo de uso.delta-per-minute
el escalador automático calcula la tasa de crecimiento promedio por minuto y la compara con el objetivo de uso.delta-per-second
el escalador automático calcula la tasa de crecimiento por segundo y la compara con el objetivo de uso. Si configuras el objetivo de uso en segundos, usadelta-per-second
como tipo de objetivo para obtener comparaciones precisas. Del mismo modo, usadelta-per-minute
para el objetivo de uso en minutos.
METRIC_FILTER
: aplica un filtro para usar un valor individual de una métrica que tenga varios valores y especificar el tipo de recurso supervisado. Si usas una métrica que proviene de cada VM, no tienes que especificar el tipo de recurso supervisado porque se usagce_instance
como predeterminado. Para otras métricas, usaresource.type
en la expresión de filtro a fin de especificar el recurso supervisado. Para obtener más información sobre el filtro de métricas, consulta Conceptos de las métricas de Monitoring.PROJECT_ID
: El ID del proyecto.ZONE
: La zona en la que se encuentra el MIG.AUTOSCALER_NAME
: El nombre del escalador automático.MIG_NAME
: Es el MIG en el que deseas agregar un escalador automático.MAX_INSTANCES
: La cantidad máxima de VM que puede tener el MIG.MIN_INSTANCES
: La cantidad mínima de VM que debe tener el MIG.METRIC_URL
: una URL sin protocolo de una métrica de Monitoring. Por ejemplo,compute.googleapis.com/instance/uptime
Si usas una métrica personalizada, debe cumplir con los requisitos de métricas personalizadas.TARGET_VALUE
: El valor de la métrica que el escalador automático intenta mantenerTARGET_TYPE
: El tipo de valor de la métrica.GAUGE
Indicador: El escalador automático calcula el valor promedio de los datos recopilados en los últimos minutos y lo compara con el objetivo de uso.DELTA_PER_MINUTE
el escalador automático calcula la tasa de crecimiento promedio por minuto y la compara con el objetivo de uso.DELTA_PER_SECOND
el escalador automático calcula la tasa de crecimiento por segundo y la compara con el objetivo de uso. Si configuras el objetivo de uso en segundos, usaDELTA_PER_SECOND
como tipo de objetivo para obtener comparaciones precisas. Del mismo modo, usaDELTA_PER_MINUTE
para el objetivo de uso en minutos.
METRIC_FILTER
: Aplica un filtro para usar un valor individual de una métrica que tenga varios valores y especificar el tipo de recurso supervisado. Si usas una métrica que proviene de cada VM, no tienes que especificar el tipo de recurso supervisado porque se usagce_instance
como predeterminado. Para otras métricas, debes especificar el recurso supervisado con el selectorresource.type
. Para obtener más información sobre el filtro de métricas, consulta Conceptos de las métricas de Monitoring.En la consola de Google Cloud, ve a la página Grupos de instancias.
Si no tienes un grupo de instancias administrado, crea uno. De lo contrario, haz clic en el nombre de un MIG de la lista para abrir esa página del grupo de instancias.
Haz clic en Editar.
Si no existe una configuración de ajuste de escala automático, haz lo siguiente:
- En Ajuste de escala automático, haz clic en Configurar ajuste de escala automático.
- En Modo de ajuste de escala automático, elige Activar: agregar y quitar instancias al grupo para habilitar el ajuste de escala automático.
En Ajuste de escala automático, en la sección Indicadores de ajuste de escala automático, si existe un indicador para una métrica de Monitoring, puedes hacer clic para editarlo o puedes hacer clic en Agregar un indicador para agregar una métrica nueva.
Configura el Tipo de indicador como Métrica de Cloud Monitoring.
Haz clic en Configurar. En el panel Recurso y métrica que se abre, sigue estos pasos:
- Haz clic en Elige una métrica.
- Elige la métrica que deseas usar para el ajuste de escala automático. Puedes filtrar las métricas según cualquier palabra clave, como la memoria, los bytes o el disco.
- Haz clic en Aplicar. En el panel, se muestra un gráfico que muestra los datos de la métrica seleccionada.
Si deseas usar datos específicos de la métrica, agrega un filtro según las etiquetas de la siguiente manera:
- En la sección Filtros, haz clic en Agregar un filtro.
- Elige una Etiqueta y, luego, ingresa un Valor.
- Haz clic en Listo. El gráfico se actualiza para mostrarte el valor de la métrica filtrado.
Para ver el valor agregado de las métricas que se usarán para realizar el ajuste de escala automático en tu MIG, activa o desactiva 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 objetivo de métricas para el ajuste de escala automático, elige Asignación de instancia de VM única.
Proporciona un valor de Asignación de instancia única que represente la cantidad de trabajo que se asignará a cada VM en el MIG.
Cuando termines de configurar la métrica, haz clic en Seleccionar.
- Haz clic en Elige una métrica.
Revisa los detalles de la métrica y haz clic en Listo.
Para completar la configuración, haz clic en Guardar.
MIG_NAME
: El nombre del MIG en el que deseas agregar un escalador automáticoMAX_INSTANCES
: La cantidad máxima de VM que puede tener el MIG.MIN_INSTANCES
: La cantidad mínima de VM que debe tener el MIG.METRIC_URL
: una URL sin protocolo de una métrica de Monitoring. Por ejemplo,compute.googleapis.com/instance_group/size
Si usas una métrica personalizada, debe cumplir con los requisitos de métricas personalizadas.METRIC_FILTER
: Aplica un filtro para usar un valor individual de una métrica que tenga varios valores y especificar el tipo de recurso supervisado. Para obtener más información sobre el filtro de métricas, consulta Conceptos de las métricas de Monitoring.INSTANCE_ASSIGNMENT
: La cantidad de trabajo que se asignará a cada instancia de VM en el MIG.PROJECT_ID
: El ID del 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 deseas agregar un escalador automáticoMAX_INSTANCES
: La cantidad máxima de VM que puede tener el MIG.MIN_INSTANCES
: La cantidad mínima de VM que debe tener el MIG.METRIC_URL
: una URL sin protocolo de una métrica de Monitoring. Por ejemplo,compute.googleapis.com/instance_group/size
Si usas una métrica personalizada, debe cumplir con los requisitos de métricas personalizadas.METRIC_FILTER
: Aplica un filtro para usar un valor individual de una métrica que tenga varios valores y especificar el tipo de recurso supervisado. Para obtener más información sobre el filtro de métricas, consulta Conceptos de las métricas de Monitoring.INSTANCE_ASSIGNMENT
: La cantidad de trabajo que se asignará a cada instancia de VM en el MIG.- Se asigna un MIG zonal llamado
our-instance-group
para realizar una tarea en particular. El grupo está ubicado en la zonaus-central1-a
. - Tienes una métrica personalizada de Monitoring que exporta un valor que te gustaría mantener en un determinado nivel. En este ejemplo, supón que la métrica representa la latencia promedio de las consultas de procesamiento 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
. - Con la métrica personalizada, se exportan datos para el recurso supervisado global, es decir, no está asociada con ninguna VM específica.
- La métrica personalizada se llama
En la consola de Google Cloud, ve a la página Grupos de instancias.
Haz clic en el nombre del MIG en la lista para abrir la página de descripción general del grupo de instancias.
Haz clic en Editar.
Si no existe una configuración de ajuste de escala automático, haz lo siguiente:
- En Ajuste de escala automático, haz clic en Configurar ajuste de escala automático.
- En Modo de ajuste de escala automático, elige Activar: agregar y quitar instancias al grupo para habilitar el ajuste de escala automático.
En Ajuste de escala automático, en la sección Indicadores de ajuste de escala automático, haz clic en Agregar un indicador.
Configura el Tipo de indicador como Métrica de Cloud Monitoring.
Haz clic en Configurar. Se abre el panel Recurso y métrica.
- Haz clic en Elige una métrica.
- Elige tu métrica en Global > Métricas personalizadas.
- Haz clic en Aplicar.
- En la sección Filtros, sigue estos pasos:
- Haz clic en Agregar un filtro.
- En el menú desplegable Etiqueta, elige
group_name
. - En el campo Valor, proporciona
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 objetivo de métricas para ajuste de escala automático, haz lo siguiente:
- Elige Objetivo de utilización.
- Ingresa 250 como el valor objetivo de utilización.
- Establece el tipo de objetivo de utilización en delta/s.
- Después de configurar la métrica, haz clic en Seleccionar.
- Haz clic en Elige una métrica.
Revisa los detalles de la métrica y, luego, haz clic en Listo.
Cuando termines, haz clic en Save.
En la consola de Google Cloud, ve a la página Grupos de instancias.
Haz clic en el nombre del MIG en la lista para abrir la página de descripción general del grupo de instancias.
Haz clic en Editar.
Si no existe una configuración de ajuste de escala automático, haz lo siguiente:
- En Ajuste de escala automático, haz clic en Configurar ajuste de escala automático.
- En Modo de ajuste de escala automático, elige Activar: agregar y quitar instancias al grupo para habilitar el ajuste de escala automático.
En la sección Indicadores de ajuste de escala automático, haz clic en Agregar un indicador.
Configura el Tipo de indicador como Fila de Cloud Pub/Sub.
Elige un tema Si deseas un tema nuevo, haz clic en Crear un tema para crear uno.
Elige la suscripción en función de la que deseas realizar el ajuste de escala automático en tu MIG. Si deseas una suscripción nueva, haz clic en Crear una suscripción para crear una.
En el campo Cantidad de mensajes para asignar a cada VM, especifica la cantidad de mensajes no confirmados que esperas que controle cada VM.
Haz clic en Listo.
Cuando termines, haz clic en Save.
En la consola de Google Cloud, ve a la página Grupos de instancias.
Haz clic en el nombre del MIG en la lista para abrir la página de descripción general del grupo de instancias.
Haz clic en Editar.
Si no existe una configuración de ajuste de escala automático, haz lo siguiente:
- En Ajuste de escala automático, haz clic en Configurar ajuste de escala automático.
- En Modo de ajuste de escala automático, elige Activar: agregar y quitar instancias al grupo para habilitar el ajuste de escala automático.
En Ajuste de escala automático, en la sección Indicadores de ajuste de escala automático, haz clic en Agregar un indicador.
Configura el Tipo de indicador como Métrica de Cloud Monitoring.
Haz clic en Configurar. Se abre el panel Recurso y métrica.
- Haz clic en Elige una métrica.
- Elige Instancia de VM > Instancia > Bytes recibidos (
compute.googleapis.com/instance/network/received_bytes_count
). - Haz clic en Aplicar.
- Elige Instancia de VM > Instancia > Bytes recibidos (
- En la sección Opciones de objetivo de métricas para ajuste de escala automático, haz lo siguiente:
- Asegúrate de que el Objetivo de utilización esté seleccionado.
- Ingresa un valor objetivo de utilización.
- Establece un tipo de objetivo de utilización.
- Después de configurar la métrica, haz clic en Seleccionar.
- Haz clic en Elige una métrica.
Revisa los detalles de la métrica y, luego, haz clic en Listo.
Cuando termines, haz clic en Save.
En la consola de Google Cloud, ve a la página Grupos de instancias.
Haz clic en el nombre del MIG en 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, haz clic en Editar.
Si no existe una configuración de ajuste de escala automático, haz lo siguiente:
- En Ajuste de escala automático, haz clic en Configurar ajuste de escala automático.
- En Modo de ajuste de escala automático, elige Activar: agregar y quitar instancias al grupo para habilitar el ajuste de escala automático.
En Ajuste de escala automático, en la sección Indicadores de ajuste de escala automático, haz clic en Agregar un indicador.
Configura el Tipo de indicador como Métrica de Cloud Monitoring.
Haz clic en Configurar. Se abre el panel Recurso y métrica.
- Haz clic en Elige una métrica.
- Elige Instancia de VM > Memoria > Uso de memoria (
compute.googleapis.com/instance/memory/percent_used
). - Haz clic en Aplicar.
- Elige Instancia de VM > Memoria > Uso de memoria (
- En la sección Filtros, sigue estos pasos:
- Haz clic en Agregar un filtro.
- En el menú desplegable Etiqueta, elige la etiqueta de métrica estado.
- En el campo Valor, escribe usado.
- Haz clic en Listo.
- En la sección Opciones de objetivo de métricas para ajuste de escala automático, haz lo siguiente:
- Asegúrate de que el Objetivo de utilización esté seleccionado.
- Ingresa un valor objetivo de utilización.
- Establece el tipo de objetivo de utilización como Indicador.
- Después de configurar la métrica, haz clic en Seleccionar.
- Haz clic en Elige una métrica.
Revisa los detalles de la métrica y, luego, haz clic en Listo.
Cuando termines, haz clic en Save.
En la consola de Google Cloud, ve a la página Grupos de instancias.
Haz clic en el nombre del MIG en 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, haz clic en Editar.
Si no existe una configuración de ajuste de escala automático, haz lo siguiente:
- En Ajuste de escala automático, haz clic en Configurar ajuste de escala automático.
- En Modo de ajuste de escala automático, elige Activar: agregar y quitar instancias al grupo para habilitar el ajuste de escala automático.
En Ajuste de escala automático, en la sección Indicadores de ajuste de escala automático, haz clic en Agregar un indicador.
Configura el Tipo de indicador como Métrica de Cloud Monitoring.
Haz clic en Configurar. Se abre el panel Recurso y métrica.
- Haz clic en Elige una métrica.
- Elige Instancia de VM > Disco > Operaciones del disco (
agent.googleapis.com/disk/operation_count
). - Haz clic en Aplicar.
- Elige Instancia de VM > Disco > Operaciones del disco (
- En la sección Opciones de objetivo de métricas para ajuste de escala automático, haz lo siguiente:
- Asegúrate de que el Objetivo de utilización esté seleccionado.
- Ingresa un valor objetivo de utilización.
- Establece un tipo de objetivo de utilización.
- Después de configurar la métrica, haz clic en Seleccionar.
- Haz clic en Elige una métrica.
Revisa los detalles de la métrica y, luego, haz clic en Listo.
Cuando termines, haz clic en Save.
En la consola de Google Cloud, ve a la página Grupos de instancias.
Haz clic en el nombre del MIG en 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, haz clic en Editar.
Si no existe una configuración de ajuste de escala automático, haz lo siguiente:
- En Ajuste de escala automático, haz clic en Configurar ajuste de escala automático.
- En Modo de ajuste de escala automático, elige Activar: agregar y quitar instancias al grupo para habilitar el ajuste de escala automático.
En Ajuste de escala automático, en la sección Indicadores de ajuste de escala automático, haz clic en Agregar un indicador.
Configura el Tipo de indicador como Métrica de Cloud Monitoring.
Haz clic en Configurar. Se abre el panel Recurso y métrica.
- Haz clic en Elige una métrica
- Elige Grupo de instancias > Instance_group > Tamaño del grupo de instancias (
compute.googleapis.com/instance_group/size
). - Haz clic en Aplicar.
- Elige Grupo de instancias > Instance_group > Tamaño del grupo de instancias (
- En la sección Filtros, sigue estos pasos:
- Haz clic en Agregar un filtro.
- En el menú desplegable Etiqueta, elige la etiqueta de recurso instance_group_name.
- En el campo Valor, escribe el nombre del MIG (MIG_2) en función del que deseas que realice el ajuste de escala automático de tu MIG.
- Haz clic en Listo.
- En la sección Opciones de objetivo de métricas para ajuste de escala automático, haz lo siguiente:
- Elige Asignación de instancia de VM única.
- En el campo Asignación de instancia de VM única, ingresa
4
, si deseas mantener 1 VM en tu MIG actual (MIG_1) por cada 4 VMs en MIG_2.
- Después de configurar la métrica, haz clic en Seleccionar.
- Haz clic en Elige una métrica
Revisa los detalles de la métrica y, luego, haz clic en Listo.
Cuando termines, haz clic en Save.
Identificador de la métrica o URL de la métrica: El nombre de la métrica en el formato de una URL sin protocolo. Puedes encontrar las 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 confirmados es
pubsub.googleapis.com/subscription/num_undelivered_messages
.Tipo de recurso supervisado: La fuente del valor de la métrica. Puedes encontrar el tipo de recurso supervisado de una métrica en la lista de métricas.
Por ejemplo, el tipo de recurso supervisado de la métrica
pubsub.googleapis.com/subscription/num_undelivered_messages
espubsub_subscription
. Para obtener más detalles sobre cada tipo de recurso supervisado, consulta Tipos de recursos supervisados.Filtro de métrica: Cuando tu 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étricas posibles. Usa las etiquetas definidas en una métrica y un tipo de recurso supervisado para filtrar los valores. Si quieres explorar tus valores de métrica 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 la cantidad de mensajes no confirmados 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 las métricas de todas las suscripciones. Para realizar un ajuste de escala automático 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 suscripción única después de aplicar el filtro.- Debes incluir el valor de un filtro entre comillas dobles.
- Debes usar el operador de comparación de igualdad directa (
=
). Debes usar 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 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 supervisado.
- Si la configuración del ajuste de escala automático usa datos de cada VM en el grupo, configura instancias en el MIG para que cada VM exporte la métrica personalizada. Los valores exportados de cada VM deben estar asociados con un recurso supervisado
gce_instance
, que contiene 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 VM.
- La métrica debe exportar datos al menos cada 60 segundos. Si tu frecuencia de exportación de datos es menor a 60 segundos, el escalador automático puede responder más rápido para cargar los cambios. Si tu frecuencia de exportación de datos es menor a 60 segundos, es posible que el escalador automático no responda con la rapidez suficiente para cargar los cambios.
- La métrica debe exportar datos que sean del tipo de valor
INT64
oDOUBLE
. - Obtén más información sobre cómo administrar los escaladores automáticos.
- Descubre cómo los escaladores automáticos toman decisiones.
- Obtén información sobre cómo usar varios indicadores de ajuste de escala automático para escalar tu 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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Limitaciones
La escala automática basada en las métricas de Monitoring está restringida por las limitaciones de todos los escaladores automáticos, así como por las siguientes limitaciones:
Configura el ajuste de escala automático según las métricas de Monitoring
Puedes usar un valor de métrica de Monitoring para el ajuste de escala automático de dos maneras diferentes:
Ajusta la escala automáticamente para mantener una métrica en un valor objetivo
Cuando quieras mantener una métrica con un valor objetivo, especifica un objetivo de uso. El escalador automático crea VM cuando el valor de la métrica está por encima del objetivo y borra VM cuando el valor de la métrica está por debajo del objetivo.
Cuando tu métrica tenga varios valores, aplica un filtro para realizar un ajuste de escala automático mediante un valor individual de la métrica. Para obtener más detalles sobre los filtros de métricas y otros campos que puedes usar en tu configuración, consulta Conceptos de las métricas de Monitoring.
Console
gcloud
Para configurar el ajuste de escala automático en función de las métricas de Monitoring, usa el comando
set-autoscaling
.Usa el siguiente comando para realizar un ajuste de escala automático 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 deseas usar un valor individual para el ajuste de escala 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"
Reemplaza lo siguiente:
Si quieres ver la lista completa de comandos y marcas disponibles para la CLI de gcloud, consulta la referencia de
gcloud
.REST
A fin de configurar el ajuste de escala automático en función de las métricas de Monitoring para un MIG zonal, usa el recurso
autoscalers
o, para un MIG regional, usaregionAutoscalers
.Realiza la siguiente llamada para realizar un ajuste de escala automático en un MIG zonal según una métrica de Monitoring con un objetivo de uso.
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 la métrica tiene varios valores y deseas usar un valor individual para el ajuste de escala automático, 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" } ], } }
Reemplaza lo siguiente:
Ajusta la escala automáticamente según el trabajo disponible para cada VM en un MIG
Cuando desees realizar el ajuste de escala automático en función de la cantidad de trabajo disponible para cada VM en un MIG, especifica una asignación de instancia única. El valor de la asignación de instancia única que estableces indica cuánto trabajo esperas que controle 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 VMs se necesitan.
Un valor de la métrica de
0
indica que no hay trabajo para que complete tu MIG. Si la cantidad mínima de instancias de tu MIG se establece en0
y el valor de la métrica disminuye a0
, el MIG escala a0
hasta que aumente el valor de la métrica.Cuando tu métrica tenga varios valores, aplica un filtro para realizar un ajuste de escala automático mediante un valor individual de la métrica. Para obtener más detalles sobre los filtros de métricas y otros campos que puedes usar en tu configuración, consulta Conceptos de las métricas de Monitoring.
Console
gcloud
Para configurar el ajuste de escala automático 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 controle cada VM del grupo.Con el siguiente comando, se 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
Reemplaza lo siguiente:
REST
A fin de configurar el ajuste de escala automático en función de las métricas de Monitoring para un MIG zonal, usa el recurso
autoscalers
o, para un MIG regional, usaregionAutoscalers
.Usa el parámetro
singleInstanceAssignment
para especificar la cantidad de trabajo que esperas que controle cada VM.Por ejemplo, realiza 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 } ], } }
Reemplaza lo siguiente:
Ejemplos de ajuste de escala automático basado en métricas
En esta sección, se proporcionan algunos ejemplos de métricas que se usan para el ajuste de escala automático. Para obtener una lista completa de las métricas, consulta Métricas de Google Cloud.
Ajusta la escala automáticamente según una métrica personalizada
Quizás haya una situación en la que la métrica que proporciona una señal relevante no representa una cantidad total del trabajo disponible o de otro recurso aplicable al grupo, pero sí un promedio, un percentil u otra propiedad estadística. Para este ejemplo, supón que escalas en función de la latencia de procesamiento promedio del grupo.
Supón la siguiente configuración:
Determinaste que, cuando el valor de la métrica supera un valor determinado, debes agregar más VM al grupo para controlar la carga, mientras que cuando es menor que el valor, puedes liberar algunos recursos. Querrás que el escalador automático agregue o quite de forma gradual las VM a una velocidad proporcional a la diferencia entre la métrica y el objetivo. Para este ejemplo, supongamos que determinaste que tu valor objetivo es
250 delta/sec
.Puedes configurar el ajuste de escala automático para el grupo con 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:Console
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" } ] } }
Ajusta la escala automáticamente en función de los mensajes no confirmados en Pub/Sub
Para configurar el ajuste de escala automático en función de los mensajes no confirmados en una suscripción de Pub/Sub, usa la métrica
subscription/num_undelivered_messages
que proporcionapubsub
y filtra porsubscription ID
.La métrica
subscription/num_undelivered_messages
exporta la cantidad total de mensajes en la suscripción, incluidos los mensajes que se están procesando y que aún no están confirmados. No se recomienda usar una métrica que no incluya los mensajes que se procesan, ya que esa métrica puede disminuir a 0 cuando aún hay trabajo pendiente, lo que solicita la reducción del ajuste de escala automático y tal vez interrumpa el trabajo real.Si no tienes una suscripción, puedes crear una suscripción de extracción, envío o BigQuery antes de configurar el ajuste de escala automático.
Console
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
A fin de configurar el ajuste de escala automático para un MIG zonal, usa el recurso
autoscalers
o, en un MIG regional, usa el recursoregionAutoscalers
.Por ejemplo, realiza la siguiente llamada a fin de 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" } ] } }
Ajusta la escala automáticamente según el tráfico de red entrante
Para configurar el ajuste de escala automático en función del tráfico de red entrante a las VMs en tu MIG, usa la métrica
instance/network/received_bytes_count
que proporcionacompute
.Console
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" } ] } }
Ajusta la escala automáticamente según el uso de la memoria
Para configurar el ajuste de escala automático en función del porcentaje de memoria usada, especifica la métrica
percent_used
que proporcionan las métricas del Agente de operaciones de memoria. Debes filtrar la métrica porstate
para usar solo el estado de 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
.Console
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" } ] } }
Ajusta la escala automáticamente según la E/S de disco
Para configurar el ajuste de escala automático en función del recuento total de operaciones de E/S del disco, usa la métrica
operation_count
que proporcionan las métricas del Agente de operaciones de disco. Si deseas 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 del disco en un dispositivo en particular, usa la etiquetadevice
en el filtro de métrica.Console
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" } ] } }
Ajusta la escala automáticamente en función del tamaño de otro MIG
Puedes realizar un ajuste de escala automático en un MIG según el tamaño de otro MIG dentro del mismo proyecto. Por ejemplo, puedes tener una aplicación de varios niveles con un MIG de frontend que realice un ajuste de escala automático según un balanceador de cargas y un MIG de backend que realice un ajuste de escala automático de forma proporcional al frontend. Usa una asignación de instancia única para definir cuántas VM de backend se necesitan en cada VM de frontend. Si necesitas 1 VM de backend por cada 4 VMs de frontend, establece la asignación de instancia única en 4 en el MIG de backend.
Para realizar un ajuste de escala automático en un MIG (MIG_1) según el tamaño de otro MIG (MIG_2), usa la métrica
instance_group/size
que proporcionacompute
.Console
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 Monitoring
En esta sección, se proporciona una breve descripción de los conceptos de las métricas de Monitoring que debes conocer mientras configuras el ajuste de escala automático según las métricas de Monitoring.
Requisitos del filtrado de métricas
Cuando usas una métrica que tiene varios valores (clasificados con etiquetas), puedes aplicar un filtro para realizar un ajuste de escala automático en función de los valores específicos de la métrica. Si el filtro muestra varios valores, estos se agregan juntos. Si quieres obtener los mejores resultados, crea un filtro que sea lo bastante específico a fin de mostrar un solo valor.
El filtrado del escalador automático para las métricas es compatible con la sintaxis de filtro de Monitoring. El filtro debe cumplir con los siguientes requisitos:
Para obtener una referencia completa de las etiquetas de métricas y las etiquetas de recursos supervisados por las que puedes filtrar, consulta 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 con uno de los tipos de recursos supervisados.
Una métrica personalizada que se usa para el ajuste de escala automático debe tener las siguientes propiedades:
Para obtener información sobre cómo crear una métrica personalizada, consulta Usa métricas personalizadas
¿Qué sigue?
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-12-04 (UTC)
-