Visualiza los registros de distribución de instancias

Cuando creas un grupo de instancias administrado (MIG) regional o aumentas su tamaño objetivo, Compute Engine evalúa la disponibilidad de recursos en tiempo real para distribuir las instancias de procesamiento nuevas entre las zonas y los tipos de máquinas. Durante este proceso, Compute Engine registra una entrada de registro de distribución de instancias en Cloud Logging.

En este documento, se describe cómo ver y, también, interpretar estos registros de distribución de instancias. También se explica cómo usar estos registros para investigar las asignaciones pendientes y configurar alertas.

Para ver la distribución real de tus instancias en ejecución, consulta Supervisa la distribución de instancias en los MIG.

Acerca de los registros de distribución de instancias

Los registros de distribución de instancias proporcionan una instantánea única de las asignaciones planificadas del MIG para las instancias de procesamiento. En estos registros, una instancia asignada significa que el MIG encontró capacidad y planea crear la instancia de procesamiento en ese tipo de máquina y en esa zona. Un tamaño asignado no significa que las instancias de procesamiento se hayan creado correctamente.

Debido a que los registros proporcionan una instantánea, Compute Engine no actualiza estos registros cuando el MIG crea las instancias de procesamiento restantes más adelante. La entrada de registro te permite ver los siguientes detalles:

  • Distribución de tipos de máquinas: Es la cantidad de instancias de procesamiento que el MIG asignó por tipo de máquina. Esta información solo está presente para los MIG regionales que usan la flexibilidad de instancias.

  • Distribución zonal: Es la cantidad de instancias de procesamiento que el MIG asignó por zona.

  • Instancias en espera de capacidad: Es la cantidad de instancias para las que el MIG no pudo asignar capacidad de inmediato y busca capacidad de forma activa.

Limitaciones

  • Los registros de distribución de instancias solo están disponibles para los MIG regionales.

  • Para los MIG regionales que usan la forma de distribución objetivo EVEN sin ajuste de escala automático, la entrada de registro solo incluye los campos oldSize, newSize, deltaSize y targetShape, sin ningún detalle de distribución de instancias.

  • Compute Engine registra los detalles de distribución de las instancias solo cuando creas un MIG o aumentas su tamaño objetivo. Compute Engine no registra estos detalles cuando disminuye el tamaño objetivo o durante las operaciones de reparación, recreación y actualización de instancias.

Visualiza los registros de distribución de instancias de un MIG específico

Para ver los registros de distribución de instancias de un MIG específico, usa una de las siguientes opciones:

Console

Puedes ver los registros de un MIG específico directamente desde la página de detalles del grupo de instancias.

  1. En la consola de Google Cloud , ve a la página Grupos de instancias.

    Ir a Grupos de instancias

  2. Haz clic en el nombre del MIG que deseas ver.

  3. Haz clic en la pestaña Monitoring.

  4. En el panel izquierdo, selecciona Registros.

  5. En el filtro de resultados de registros, escribe instanceDistribution y presiona Intro.

  6. Para ver los datos de distribución de instancias, expande una entrada de registro y, luego, expande protoPayload.metadata.details.

gcloud

Para ver los registros de distribución de instancias de un MIG específico, usa el comando gcloud logging read:

gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
  protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND \
  resource.labels.instance_group_manager_name=\"MIG_NAME\""

Reemplaza lo siguiente:

  • PROJECT_ID: el ID de tu proyecto.

  • MIG_NAME: Es el nombre del MIG.

REST

Para ver los registros de distribución de instancias de un MIG específico, realiza una solicitud POST al método entries.list.

POST https://logging.googleapis.com/v2/entries:list
{
"resourceNames": [
  "projects/PROJECT_ID"
],
"filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND resource.labels.instance_group_manager_name=\"MIG_NAME\""
}

Reemplaza lo siguiente:

  • PROJECT_ID: el ID de tu proyecto.

  • MIG_NAME: Es el nombre del MIG.

Para obtener más información sobre cada campo de un registro, consulta Entrada de registro de distribución de instancias.

Visualiza todos los registros de distribución de instancias de un proyecto

Para ver todos los registros de distribución de instancias de un proyecto, selecciona una de las siguientes opciones:

Console

  1. En la consola de Google Cloud , accede a la página Explorador de registros.

    Ve al Explorador de registros

  2. Ingrese una consulta. Estos son algunos ejemplos:

    • Para ver todos los registros de distribución de instancias en el proyecto, haz lo siguiente:

      logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event"
      protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
      
    • Para ver los registros de distribución de instancias en los que parte del cambio de tamaño aún espera capacidad, haz lo siguiente:

      logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event"
      protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
      protoPayload.metadata.details.data.activeSeekDeltaSize > 0
      

    Reemplaza PROJECT_ID por el ID de tu proyecto.

  3. Haz clic en Ejecutar consulta.

  4. En los resultados, expande una entrada de registro.

    • Para ver el resumen y los datos, expande protoPayload.metadata.details.
    • Para ver el resumen de cada fila, haz clic en message y selecciona Agregar campo a línea de resumen.

gcloud

Para ver los registros de distribución de instancias, usa el comando gcloud logging read.

  • Para ver todos los registros de distribución de instancias en el proyecto, haz lo siguiente:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
  protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\""
  • Para ver todos los registros del proyecto del último día, especifica la marca --freshness=1d de la siguiente manera:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
    protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\"" \
    --freshness=1d
  • Para ver los registros de distribución de instancias en los que parte del cambio de tamaño aún espera capacidad, haz lo siguiente:
gcloud logging read "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND \
    protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND \
    protoPayload.metadata.details.data.activeSeekDeltaSize > 0"

Reemplaza PROJECT_ID por el ID de tu proyecto.

REST

Para ver los registros de distribución de instancias, realiza una solicitud POST al método entries.list.

  • Para ver todos los registros de distribución de instancias en el proyecto, haz lo siguiente:
POST https://logging.googleapis.com/v2/entries:list
{
  "resourceNames": [
    "projects/PROJECT_ID"
  ],
  "filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\""
}
  • Para ver todos los registros del proyecto del último día, agrega una condición timestamp al filtro:
POST https://logging.googleapis.com/v2/entries:list
{
  "resourceNames": [
    "projects/PROJECT_ID"
  ],
  "filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND timestamp >= \"YYYY-MM-DDThh:mm:ssZ\""
}
  • Para ver los registros de distribución de instancias en los que parte del cambio de tamaño aún espera capacidad, haz lo siguiente:
POST https://logging.googleapis.com/v2/entries:list
{
  "resourceNames": [
    "projects/PROJECT_ID"
  ],
  "filter": "logName=\"projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event\" AND protoPayload.methodName=\"compute.instanceGroupManagers.instanceDistribution\" AND protoPayload.metadata.details.data.activeSeekDeltaSize > 0"
}

Reemplaza lo siguiente:

  • PROJECT_ID: el ID de tu proyecto.

  • YYYY-MM-DDThh:mm:ssZ: Es la marca de tiempo RFC 3339 para la hora de inicio, por ejemplo, 2024-10-22T00:00:00Z.

Para obtener más información sobre cada campo de un registro, consulta Entrada de registro de distribución de instancias.

Entrada de registro de distribución de instancias

A continuación, se muestra una entrada de registro de ejemplo (protoPayload.metadata.details). Debido a que este evento es una instantánea única, la entrada de registro no se actualiza cuando se crean las instancias restantes más adelante. La entrada de registro te permite ver los detalles de la siguiente manera:

  • details.data: Muestra los detalles estructurados sobre la distribución de la instancia.

  • details.message: Muestra el resumen de la distribución de instancias.

En este ejemplo, un MIG regional con flexibilidad de instancias se escala horizontalmente de 0 a 100. El MIG asigna de inmediato 80 de las 100 instancias nuevas en dos selecciones de instancias clasificadas (20 instancias de c2-standard-4 en la selección rank2-c2 y 60 instancias de n2d-standard-4 en la selección rank3-n2d). La entrada también muestra que se asignan 40 instancias de procesamiento en us-central1-b y us-central1-c cada una. Para las 20 instancias restantes (activeSeekDeltaSize), el MIG sigue buscando capacidad en todas las selecciones de instancias y zonas configuradas. En el caso de los MIG regionales sin flexibilidad de instancias, la entrada de registro omite el campo instanceSelections y solo muestra la distribución zonal.

"metadata": {
  "details": {
    "data": {
      "oldSize": 0,
      "newSize": 100,
      "deltaSize": 100,
      "targetShape": "BALANCED",
      "activeSeekDeltaSize": 20,
      "instanceSelections": {
        "rank1-n2": {
          "rank": 1,
          "machineSelections": [
            {
              "machineType": "n2-standard-4",
              "allocatedSize": 0
            }
          ]
        },
        "rank2-c2": {
          "rank": 2,
          "machineSelections": [
            {
              "machineType": "c2-standard-4",
              "allocatedSize": 20
            }
          ]
        },
        "rank3-n2d": {
          "rank": 3,
          "machineSelections": [
            {
              "machineType": "n2d-standard-4",
              "allocatedSize": 60
            }
          ]
        }
      },
      "zonalDistribution": {
        "us-central1-a": {
          "allocatedSize": 0
        },
        "us-central1-b": {
          "allocatedSize": 40
        },
        "us-central1-c": {
          "allocatedSize": 40
        }
      }
    },
    "message": "Increasing MIG target size from 0 to 100 instances (+100).
    Allocated 80 of 100 new instances. Allocated instances across instance
    selections: rank2-c2 (rank 2; c2-standard-4: 20); rank3-n2d (rank 3;
    n2d-standard-4: 60). Allocated instances across zones based on target
    distribution shape BALANCED: us-central1-a: 0, us-central1-b: 40,
    us-central1-c: 40. MIG continues to allocate the remaining 20 new instances
    across all instance selections and zones. The final distribution across zones
    and machine types may differ as instances are created. View the group's
    instances for the current distribution."
  }
}

En la siguiente tabla, se describe cada campo de una entrada de registro.

Campo Descripción
details.data.oldSize Es el tamaño objetivo del MIG regional antes de la operación de cambio de tamaño.
details.data.newSize Es el tamaño objetivo solicitado del MIG regional.
details.data.deltaSize Es el cambio en el tamaño del objetivo (newSize - oldSize).
details.data.targetShape La forma de distribución objetivo del MIG regional.
details.data.activeSeekDeltaSize Es la cantidad de instancias nuevas para las que el MIG aún busca capacidad en las selecciones de instancias y zonas configuradas. Este campo se omite cuando su valor es 0.
details.data.instanceSelections

Son las selecciones de instancias configuradas que se evaluaron durante la asignación. Este campo solo está presente para los MIG que usan la flexibilidad de instancias. Cada clave es el nombre de una selección de instancias y su valor contiene los siguientes campos:

  • rank: Es la clasificación de prioridad configurada para la selección de instancia.
  • machineSelections: Es una lista de asignaciones de tipos de máquinas dentro de la selección, en la que cada entrada especifica el tipo de máquina (machineType) y la cantidad de instancias de procesamiento asignadas con ese tipo de máquina (allocatedSize).
details.data.zonalDistribution Las zonas configuradas y su distribución de instancias asignada. Cada clave es un nombre de zona, y su valor contiene la cantidad de instancias de procesamiento asignadas en esa zona (allocatedSize).
details.message Es un mensaje de resumen que describe la distribución de instancias, incluidos los recuentos asignados y los detalles de la capacidad de búsqueda.

Interpreta los registros de distribución de instancias

El registro de distribución de instancias proporciona una instantánea del plan del MIG para la creación de instancias de procesamiento. Debido a que el registro indica que el MIG asigna instancias de procesamiento antes de que se creen correctamente, debes usar los datos de registro junto con el estado de la instancia de procesamiento y los mensajes de error para comprender el comportamiento real de tu MIG.

Usa la siguiente tabla para interpretar los resultados de registros comunes y determinar si necesitas tomar medidas:

Resultado del registro Explicación Acción recomendada
activeSeekDeltaSize es mayor que 0 El MIG no pudo encontrar suficiente capacidad para completar toda la solicitud de cambio de tamaño de inmediato. El MIG sigue intentando crear las instancias restantes en todas las opciones configuradas. Verifica los errores de instancia del MIG para ver por qué falló la creación de la instancia. Considera agregar tipos de máquinas de otras familias de máquinas, agregar zonas o verificar tus cuotas.
Una selección de mayor preferencia (número de clasificación más bajo) tiene un allocatedSize de 0 En el momento de la decisión, el MIG verificó tus tipos de máquinas preferidos, pero no encontró suficiente capacidad. En su lugar, el MIG usó una selección de menor preferencia (número de clasificación más alto). Compute Engine no registra los errores de instancia de las selecciones omitidas. Si el MIG omite tu selección más preferida con frecuencia, considera agregar más tipos de máquinas a tu selección más preferida o aceptar opciones de menor preferencia.
Una zona configurada tiene un allocatedSize de 0 El MIG no asignó ninguna instancia nueva en esta zona. Si tu forma objetivo es ANY o ANY_SINGLE_ZONE, esta distribución desigual es normal. De lo contrario, revisa la cuota, las reservas y la compatibilidad de la zona con la plantilla de instancias.
Falta un tipo de máquina en el resumen de message El MIG no usó ese tipo de máquina para la asignación. Verifica el bloque estructurado details.data. El mensaje de resumen omite las selecciones y los tipos de máquinas que obtuvieron 0 instancias nuevas, pero los datos estructurados enumeran todas las opciones evaluadas.

Verifica las asignaciones de instancias pendientes

Si tu MIG aún está esperando capacidad (activeSeekDeltaSize > 0), puedes verificar lo siguiente para comprender los motivos de las asignaciones pendientes:

  • Verifica los errores de creación de instancias. Para ver si la creación de la instancia falló después de que el MIG asignó la capacidad o si las instancias de procesamiento aún están esperando capacidad, verifica los errores de la instancia. Para obtener más información, consulta Enumera los errores de la instancia.

  • Verifica el estado de la instancia. Para ver el estado y la acción actual de cada instancia, enumera las instancias en el MIG y verifica su campo instanceStatus. Para obtener más información, consulta Verifica el estado de las instancias administradas.

  • Revisa la configuración. Si configuraste una política de flexibilidad de instancias en el MIG, revisa las cuotas regionales para las familias de máquinas en la política. Además, verifica que las zonas que seleccionaste admitan los tipos de máquinas solicitados. Para obtener más información, consulta Visualiza y administra las cuotas y Regiones y zonas disponibles.

Crear políticas de alertas basadas en registros

Para recibir una notificación cuando las operaciones de cambio de tamaño del MIG esperen capacidad, puedes crear una política de alertas basada en registros en el Explorador de registros. Por ejemplo, puedes activar una alerta cuando activeSeekDeltaSize sea mayor que 0.

Para crear esta alerta, haz lo siguiente:

  1. En la consola de Google Cloud , accede a la página Explorador de registros.

    Ve al Explorador de registros

  2. Ingresa la siguiente consulta:

    logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event"
    protoPayload.methodName="compute.instanceGroupManagers.instanceDistribution"
    protoPayload.metadata.details.data.activeSeekDeltaSize > 0
    

    Reemplaza PROJECT_ID por el ID de tu proyecto.

  3. Haz clic en Ejecutar consulta para validarla.

  4. Crea la política de alertas siguiendo las instrucciones de la sección Crea una política de alertas basada en registros de la documentación de Cloud Logging.

¿Qué sigue?