Registro y supervisión del balanceador de cargas de red de transferencia externo

En este documento, se muestra cómo configurar y usar Cloud Logging y Cloud Monitoring para balanceadores de cargas de red de transferencia externos.

Logging

Los registros proporcionan información útil para solucionar problemas y supervisar tu balanceador de cargas de red de transferencia externo. Los registros se agregan por conexión y se exportan casi en tiempo real. Los registros se generan para los flujos de TCP, UDP, ESP, GRE, ICMP y ICMPv6 de cada instancia con balanceo de cargas para el tráfico de entrada y salida. Para obtener más información sobre los campos proporcionados en la entrada de registro, consulta Campos de registro.

No se aplican cargos adicionales por usar registros. Según cómo importes registros, se aplican los precios estándar para Cloud Logging, BigQuery o Pub/Sub. La habilitación de los registros no afecta el rendimiento del balanceador de cargas.

El registro proporciona los siguientes beneficios:

  • Supervisión del tráfico del balanceador de cargas de red de transferencia externo. El registro por conexión te brinda estadísticas sobre cómo se enruta cada conexión a los backends activos.

  • Solución de problemas de red Puedes usar los registros del balanceador de cargas de red de transferencia externo para solucionar problemas. Para obtener más información, consulta Soluciona problemas de balanceadores de cargas de red de transferencia externos.

Formato de registro de muestra para flujos de un cliente externo a VM

En el siguiente diagrama, se muestra el tráfico entrante y saliente de un cliente externo (203.0.113.7), un balanceador de cargas de red de transferencia externo (198.51.100.99) y una instancia de backend (10.240.0.2).

Flujos de cliente externo a servicios de VM de backend.
Flujos entrantes y salientes para un cliente externo a la VM.

Los registros del balanceador de cargas de red de transferencia externo para las conexiones del cliente a la instancia de backend tienen el siguiente formato:

  • connection.clientIp: 203.0.113.7
  • connection.serverIp: 198.51.100.99
  • bytesSent: 1256
  • bytesReceived: 4521

Muestreo y recopilación de registros

Google Cloud crea muestras de los paquetes que entran y salen de las VMs de backend del balanceador de cargas. Esos paquetes de muestra se procesan para generar registros.

No todos los paquetes se muestrean. Google Cloud muestrea un subconjunto variable de paquetes según la cantidad de tráfico en el host físico. La tasa de muestreo más baja posible es una de 1,024 paquetes. Google Cloud controla de forma dinámica la tasa de muestreo. No puedes ajustar la tasa de muestreo.

El muestreo de paquetes interactúa con reglas de firewall de las siguientes maneras:

  • Los paquetes se muestrean antes de que se apliquen las reglas de firewall de salida.
  • Los paquetes se muestrean después de que se apliquen las reglas de firewall de entrada.

Después del muestreo de paquetes, Google Cloud procesa los paquetes de muestra según el siguiente procedimiento:

  1. Agregación: Los paquetes de muestra se agregan durante un intervalo de cinco segundos para producir una sola entrada de flujo.

  2. Muestreo de registros configurable (secundario): Este es un segundo proceso de muestreo, en el que se muestrean los flujos. Puedes controlar la fracción de las entradas de flujo que se emiten como entradas de registro según el parámetro logConfig.sampleRate. Cuando logConfig.sampleRate es 1.0 (100%), significa que se procesan todos los paquetes de muestra.

  3. Escritura en Logging: Las entradas de registro se escriben en Cloud Logging.

Campos opcionales

Los registros contienen campos obligatorios y opcionales. En la sección Campos de registro, se enumeran los campos opcionales y los obligatorios. Siempre se incluyen todos los campos obligatorios. Puedes personalizar qué campos de metadatos opcionales.

  • Si seleccionas Include all optional, todos los campos opcionales en el formato del registro se incluyen en los registros de flujo. Cuando se agregan campos opcionales nuevos al formato del registro, los registros de flujo incluyen automáticamente los campos nuevos.

  • Si seleccionas Excluir todas las opciones opcionales, se omitirán todos los campos opcionales.

  • Si seleccionas Personalizado, puedes especificar los campos opcionales que deseas incluir con el campo superior, como serverInstance, o con sus nombres completos, como serverInstance.vm.

Cuando se agregan campos opcionales nuevos al formato del registro, los registros no incluirán estos campos, a menos que sean un campo nuevo dentro de un campo superior que hayas especificado.

Si especificas un campo opcional personalizado con campos superiores, cuando los campos opcionales nuevos se agreguen al formato del registro de ese campo superior, los registros incluirán automáticamente los campos nuevos. Por ejemplo, si eliges incluir optionalFieldA, se incluirá de forma automática un campo nuevo agregado a los registros con el nombre optionalFieldA.subField1.

Para obtener instrucciones para personalizar campos opcionales, consulta Habilita el registro en un nuevo servicio de backend.

Requisitos de dirección IP de origen del paquete de respuesta

El registro muestrea los paquetes de respuesta de las VMs de backend solo si la dirección IP de origen de esos paquetes coincide con la dirección IP de la regla de reenvío del balanceador de cargas. Para las conexiones de TCP, los paquetes de respuesta siempre deben tener fuentes que coincidan con el destino del paquete de la solicitud. Sin embargo, para otros protocolos, es posible que los paquetes de respuesta usen una dirección IP de origen diferente. A fin de obtener más información, consulta Direcciones IP para solicitudes y paquetes de retorno.

El proceso de muestreo de paquetes que usa el registro del balanceador de cargas de red de transferencia externo omite cualquier paquete de respuesta de las VMs de backend si esos paquetes tienen fuentes que no coinciden con una dirección IP de una regla de reenvío para un balanceador de cargas de red de transferencia externo.

Habilita el registro en un servicio de backend nuevo

Console

  1. En la consola de Google Cloud, ve a la página Balanceo de cargas.

    Ir a Balanceo de cargas

  2. Haz clic en el nombre de tu balanceador de cargas.
  3. Haz clic en Editar y, luego, en Configuración de backend.
  4. Selecciona Crear un servicio de backend y luego, completa los campos de servicio de backend obligatorios.
  5. En la sección Registro, selecciona la casilla de verificación Habilitar registro.
  6. Configura una fracción de Tasa de muestreo. Puedes establecer una tasa entre 0.0 y 1.0 (predeterminada).
  7. Opcional: Para incluir todos los campos opcionales en los registros, en la sección Optional fields, haz clic en Include all optional fields.
  8. Para terminar de editar el servicio de backend, haz clic en Actualizar.
  9. Para terminar de editar el balanceador de cargas, haz clic en Actualizar.

gcloud

Crea el servicio de backend para habilitar el registro con el gcloud compute backend-services create comando.

    gcloud compute backend-services create BACKEND_SERVICE \
      --region=REGION \
      --enable-logging \
      --logging-sample-rate=SAMPLE_RATE \
      --logging-optional=LOGGING_OPTIONAL \
      --logging-optional-fields=OPTIONAL_FIELDS
    

Reemplaza lo siguiente:

  • BACKEND_SERVICE: el nombre del servicio de backend.
  • REGION: la región del servicio de backend que se creará.
  • SAMPLE_RATE: este campo solo se puede especificar si el registro está habilitado para este servicio de backend.

    El valor del campo debe ser de 0.0 to 1.0, en el que 0.0 significa que no se generan registros y, 1.0, que se generan registros de todos los paquetes de muestra. Si se habilita el registro, pero se configura la tasa de muestreo en 0.0, se inhabilita ese registro. El valor predeterminado es 1.0.

  • LOGGING_OPTIONAL: los campos opcionales que deseas incluir en los registros:
    • INCLUDE_ALL_OPTIONAL para incluir todos los campos opcionales.
    • EXCLUDE_ALL_OPTIONAL para excluir todos los campos opcionales (opción predeterminada).
    • CUSTOM para incluir una lista personalizada de los campos opcionales que especifiques en OPTIONAL_FIELDS.
  • OPTIONAL_FIELDS: una lista separada por comas de los campos opcionales que deseas incluir en los registros.

    Por ejemplo, serverInstance.vm,serverGkeDetails. Solo se puede configurar si LOGGING_OPTIONAL se establece como CUSTOM.

API

Realiza una solicitud POST al método regionBackendServices.insert.

    POST https://compute.googleapis.com/compute/v1/projects/`PROJECT_ID`/regions/`REGION`/backendServices
    

Excluir todos los campos opcionales

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE
      }
    }
    

Incluir todos los campos opcionales

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "INCLUDE_ALL_OPTIONAL"
      }
    }
    

Cómo incluir una lista personalizada de campos opcionales

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "CUSTOM",
       "optionalFields": ["field1","field2",...]
      }
    }
    

Habilita el registro en un servicio de backend existente

Console

  1. En la consola de Google Cloud, ve a la página Balanceo de cargas.

    Ir a Balanceo de cargas

  2. Haz clic en el nombre de tu balanceador de cargas.
  3. Haz clic en Editar y, luego, en Configuración de backend.
  4. Junto al servicio de backend, haz clic en Editar.
  5. En la sección Registro, selecciona la casilla de verificación Habilitar registro.
  6. Configura una fracción de Tasa de muestreo. Puedes establecer una tasa entre 0.0 y 1.0 (predeterminada).
  7. Opcional: Para incluir todos los campos opcionales en los registros, en la sección Optional fields, haz clic en Include all optional fields.
  8. Para terminar de editar el servicio de backend, haz clic en Actualizar.
  9. Para terminar de editar el balanceador de cargas, haz clic en Actualizar.

gcloud

Habilita el registro en un servicio de backend existente con el comando gcloud compute backend-services update.

    gcloud compute backend-services update BACKEND_SERVICE \
      --region=REGION \
      --enable-logging \
      --logging-sample-rate=SAMPLE_RATE \
      --logging-optional=LOGGING_OPTIONAL \
      --logging-optional-fields=OPTIONAL_FIELDS
    

Reemplaza lo siguiente:

  • BACKEND_SERVICE: el nombre del servicio de backend.
  • REGION: la región del servicio de backend que se creará.
  • SAMPLE_RATE: este campo solo se puede especificar si el registro está habilitado para este servicio de backend.

    El valor del campo debe ser de 0.0 to 1.0, en el que 0.0 significa que no se informan registros y, 1.0, que se generan registros para todos los paquetes de muestra. Si se habilita el registro, pero se configura la tasa de muestreo en 0.0, se inhabilita ese registro. El valor predeterminado es 1.0.

  • LOGGING_OPTIONAL: los campos opcionales que deseas incluir en los registros:
    • INCLUDE_ALL_OPTIONAL para incluir todos los campos opcionales.
    • EXCLUDE_ALL_OPTIONAL para excluir todos los campos opcionales (opción predeterminada).
    • CUSTOM para incluir una lista personalizada de los campos opcionales que especifiques en OPTIONAL_FIELDS.
  • OPTIONAL_FIELDS: una lista separada por comas de los campos opcionales que deseas incluir en los registros.

    Por ejemplo, serverInstance.vm,serverGkeDetails. Solo se puede configurar si LOGGING_OPTIONAL se establece como CUSTOM.

API

Realiza una solicitud PATCH al método regionBackendServices/patch.

      PATCH https://compute.googleapis.com/compute/v1/projects/`PROJECT_ID`/regions/`REGION`/backendServices/`BACKEND_SERVICE`
     

Excluir todos los campos opcionales

     "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "EXCLUDE_ALL_OPTIONAL"
      }
     

Incluir todos los campos opcionales

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "INCLUDE_ALL_OPTIONAL"
      }
    }
    

Cómo incluir una lista personalizada de campos opcionales

    {
    "name": "BACKEND_SERVICE",
    "loadBalancingScheme": "EXTERNAL",
    "logConfig": {
       "enable": true,
       "sampleRate": SAMPLE_RATE,
       "optionalMode": "CUSTOM",
       "optionalFields": ["field1","field2",...]
      }
    }
    

Inhabilita el registro en un servicio de backend existente

Console

  1. En la consola de Google Cloud, ve a la página Balanceo de cargas.

    Ir a Balanceo de cargas

  2. Haz clic en el nombre de tu balanceador de cargas.

  3. Haz clic en Editar y luego, en Configuración de backend.

  4. Para inhabilitar el registro por completo, en la sección Registro, desmarca la casilla de verificación Habilitar registro.

  5. Si dejas habilitado el registro, puedes configurar una fracción de Tasa de muestreo diferente. Puedes establecer una tasa entre 0.01.0 (predeterminada). Para generar solo registros del 20% de los paquetes de muestra, establece el valor en 0.2.

  6. Para terminar de editar el servicio de backend, haz clic en Actualizar.

  7. Para terminar de editar el balanceador de cargas, haz clic en Actualizar.

gcloud

Inhabilita el registro en el servicio de backend con el comando gcloud compute backend-services update.

gcloud compute backend-services update BACKEND_SERVICE \
  --region=REGION \
  --no-enable-logging

Reemplaza lo siguiente:

  • BACKEND_SERVICE: el nombre del servicio de backend.
  • REGION: Es la región del servicio de backend.

API

Haz una solicitud PATCH al método regionBackendServices/patch.

 PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/backendServices/BACKEND_SERVICE

 {
 "logConfig": {
   "enable": false
  }
 }
 

Ver registros

Cuando los registros se transfieren a Cloud Logging y no se excluyen a través de un receptor de enrutadores de registros, puedes leer los registros mediante la API de Cloud Logging y Google Cloud CLI.

Para ver todos los registros del balanceador de cargas de red de transferencia externo, haz lo siguiente:

Console

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

    Ir al Explorador de registros

  2. Selecciona el tipo de recurso Regla de balanceador de cargas de red de transferencia externa.

  3. Selecciona el nombre de registro loadbalancing.googleapis.com/flows.

Consulta de consola

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

    Ir al Explorador de registros

  2. Haz clic en el botón de activar o desactivar Mostrar consulta.

  3. Pega lo siguiente en el campo de la consulta. Reemplaza PROJECT_ID por el ID del proyecto.

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    
  4. Haz clic en Ejecutar consulta.

Visualiza los registros de un servicio de backend específico

Para ver los registros del balanceador de cargas de red de transferencia externo de un servicio de backend específico, haz lo siguiente:

Consulta de consola

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

    Ir al Explorador de registros

  2. Haz clic en el botón de activar o desactivar Mostrar consulta.

  3. Pega lo siguiente en el campo de la consulta. Reemplaza PROJECT_ID por el ID del proyecto y BACKEND_SERVICE_NAME por el nombre de tu servicio de backend.

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_service_name="BACKEND_SERVICE_NAME"
    
  4. Haz clic en Ejecutar consulta.

Visualiza los registros de un grupo de instancias de backend

Para ver los registros del balanceador de cargas de red de transferencia externo de un grupo de instancias de backend específico, haz lo siguiente:

Consulta de consola

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

    Ir al Explorador de registros

  2. Haz clic en el botón de activar o desactivar Mostrar consulta.

  3. Pega lo siguiente en el campo de la consulta. Reemplaza PROJECT_ID por el ID del proyecto y BACKEND_GROUP_NAME por el nombre del grupo de instancias.

    resource.type="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"
    logName="projects/PROJECT_ID/logs/loadbalancing.googleapis.com%2Fflows"
    resource.labels.backend_group_name="BACKEND_GROUP_NAME"
    
  4. Haga clic en Ejecutar consulta.

Campos de registro

Los registros contienen campos obligatorios (los campos predeterminados de cada registro) y campos opcionales que agregan información adicional. Los campos opcionales se pueden omitir para ahorrar costos de almacenamiento.

Algunos campos de registro se encuentran en formato de varios campos y poseen más de un dato en un campo específico. Por ejemplo, el campo connection tiene el formato IpConnection, que contiene el puerto y la dirección IP de origen y destino, además del protocolo, en un solo campo. En la siguiente tabla de formato de registros, se describen estos campos múltiples.

El recurso supervisado es loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule.

Campo Formato del campo Tipo del campo: opcional o requerido Descripción
conexión IpConnection Obligatorio Esta conexión se describe a través de una tupla de 5.
startTime string Obligatorio Marca de tiempo (string con formato de fecha RFC 3339) del primer paquete observado durante el intervalo de tiempo agregado.
endTime string Obligatorio Marca de tiempo (string con formato fecha RFC 3339) del último paquete observado durante el intervalo de tiempo agregado.
bytesSent int64 Obligatorio Cantidad de bytes enviados del servidor al cliente.
bytesReceived int64 Obligatorio Cantidad de bytes que recibió el servidor del cliente.
packetsSent int64 Obligatorio Cantidad de paquetes enviados desde el servidor al cliente.
packetsReceived int64 Obligatorio Cantidad de paquetes que recibió el servidor desde el cliente.
rtt string Obligatorio

La latencia se mide solo para conexiones TCP. La latencia es la suma del tiempo de ida y vuelta (RTT) estimado de la red más el tiempo consumido en el procesamiento del paquete dentro del sistema operativo del cliente.

En los paquetes de muestra, el RTT se calcula desde la perspectiva de un backend con balanceo de cargas, mediante la medición de las diferencias de tiempo entre el backend que envía un segmento TCP y el backend que recibe una confirmación de recepción de TCP para el número de secuencia del segmento enviado.

La latencia tiene el formato de una string que comienza con una cantidad de segundos y termina con “s” para indicar que son segundos. Los nanosegundos se expresan como segundos fraccionarios, por ejemplo, la latencia de 250 milisegundos tiene el formato “0.250000000s”.

serverInstance InstanceDetails Opcional Los detalles de la instancia de VM de backend.
clientLocation GeographicDetails Opcional Los metadatos de ubicación disponibles del cliente.
serverGkeDetails GkeDetails Opcional Metadatos de GKE para el backend del servidor. Solo está disponible si el backend es un extremo de GKE.
networkTier NetworkTierDetails Opcional Nivel de red para conexiones externas; se completa solo cuando el cliente no se encuentra en en Google Cloud.

Formato del campo IpConnection

Campo Tipo Descripción
clientIp string Dirección IP de cliente
clientPort int32 Puerto del cliente. Solo se establece para conexiones TCP y UDP.
serverIp string Dirección IP del servidor (IP de la regla de reenvío)
serverPort int32 Puerto del servidor. Solo se establece para conexiones TCP y UDP.
protocol int32 Número de protocolo IANA

Formato del campo InstanceDetails

Campo Tipo Descripción
projectId string ID del proyecto que contiene la VM.
vm string Nombre de la instancia de la VM.
region string Región de la VM
zone string Zona de la VM
vmIp string Dirección IPv4 interna principal de la interfaz de red que entregó la conexión

Formato del campo GeographicDetails

Campo Tipo Descripción
continent string Continent name
regionCode string Un código regional CLDR de Unicode, como US o FR. Para la mayoría de los países, estos códigos corresponden directamente a los códigos ISO-3166-2.
subRegion string Un ID de subdivisión CLDR de Unicode, por ejemplo, una provincia o un estado del país, como USCA o CAON. Estos códigos Unicode se derivan de las subdivisiones definidas por el estándar ISO-3166-2.
city string Nombre de la ciudad, por ejemplo, Mountain View para Mountain View, California. No hay una lista canónica de valores válidos para esta variable. Los nombres de las ciudades pueden contener letras, números, espacios y los siguientes caracteres de US-ASCII: !#$%&'*+-.^_`|~.
asn int32 El número del sistema autónomo (ASN) de la red externa a la que pertenece este extremo.

Formato del campo GkeDetails

Campo Tipo Descripción
clúster ClusterDetails Metadatos del clúster de GKE
pod PodDetails Metadatos del Pod de GKE, propagados cuando el origen o el destino del tráfico es un Pod
service ServiceDetails Metadatos del servicio de GKE, propagados solo en los extremos del servicio. El registro contiene hasta dos servicios. Si hay más de dos servicios relevantes, este campo contiene un solo servicio con un marcador especial MANY_SERVICES.

Formato del campo ClusterDetails

Campo Tipo Descripción
clúster string Nombre del clúster de GKE
clusterLocation string Ubicación del clúster. La ubicación del clúster puede ser una zona o una región.

Formato del campo PodDetails

Campo Tipo Descripción
pod string Nombre del Pod.
podNamespace string Espacio de nombres del Pod.

Formato del campo ServiceDetails

Campo Tipo Descripción
service string Nombre del servicio. Si hay más de dos servicios relevantes, el campo se configura como un marcador especial MANY_SERVICES.
serviceNamespace string Espacio de nombres del servicio

Formato del campo NetworkTierDetails

Campo Tipo Descripción
networkTier string NetworkTier usado en la conexión, uno de [PREMIUM, ESTÁNDAR, FIXED_STANDARD, UNKNOWN].

Supervisión

Los balanceadores de cargas de red de transferencia externos exportan métricas clave a Cloud Monitoring.

Se pueden usar las métricas de Monitoring para los siguientes fines:

  • Evaluar la configuración, el uso y el rendimiento de un balanceador de cargas
  • Solucionar problemas
  • Mejorar el uso de recursos y la experiencia del usuario

Además de los paneles predefinidos en Monitoring, puedes crear paneles personalizados, configurar alertas y consultar las métricas a través de la API de Monitoring.

Ve los paneles de Monitoring

Console

  1. En la consola de Google Cloud, ve a la página Supervisión.

    Ir a Monitoring

  2. En el panel de navegación, selecciona Paneles.

  3. Selecciona el panel de Balanceadores de cargas de Google Cloud. Se muestran todos los balanceadores de cargas.

  4. Selecciona el nombre del balanceador de cargas de la lista de balanceadores de cargas.

En el panel Detalles del balanceador de cargas de red de transferencia externa, puedes ver varios detalles del balanceador de cargas seleccionado. En este panel, se muestran tus configuraciones actuales.

En el panel Métricas de claves, puedes ver gráficos para cada métrica de clave. Para ver los desgloses específicos, haz clic en Desgloses. En este panel, se presentan datos informados por las configuraciones históricas, mientras que en el panel Detalles del balanceador de cargas de red de transferencia externo solo se muestran las configuraciones actuales. Para obtener más información, consulta Paneles y gráficos.

Define los paneles personalizados de Monitoring

Puedes crear paneles personalizados de Monitoring a través de métricas externas del balanceador de cargas de red de transferencia externo.

Consulta Tipos de recursos y métricas para obtener una lista de las métricas recopiladas. Si deseas ver las listas de atributos que puedes usar para filtrar resultados, consulta Filtros.

Console

  1. En la consola de Google Cloud, ve a la página Supervisión.

    Ir a Monitoring

  2. Selecciona Paneles > Crear panel.

  3. Haz clic en Agregar gráfico.

  4. Ponle un título al gráfico.

  5. Selecciona las métricas y los filtros.

    Para encontrar las métricas del balanceador de cargas de red de transferencia externo, busca el prefijo loadbalancing.googleapis.com/l3/external.

  6. Haz clic en Guardar.

Define alertas de Monitoring

Puedes definir alertas de Monitoring a través de varias métricas del balanceador de cargas de red de transferencia externo:

Console

  1. En la consola de Google Cloud, ve a la página Supervisión.

    Ir a Monitoring

  2. Selecciona Alertas > Crear una política.

  3. Selecciona los tipos de recursos y métricas.

    Para encontrar tipos de recursos y métricas del balanceador de cargas de red de transferencia externo, busca loadbalancing.googleapis.com/l3/external en el campo Buscar tipo de recurso y métricas.

  4. Especifica una Configuración para establecer cuándo se debe activar una alerta.

  5. Si lo deseas, agrega Filtros.

  6. Haz clic en Guardar.

Frecuencia y retención de informes de métricas

Las métricas de los balanceadores de cargas de red de transferencia externos se exportan a Monitoring en lotes con un nivel de detalle de un minuto. Los datos de Monitoring se conservan durante seis semanas. Las métricas se basan en el tráfico muestreado (la tasa de muestreo es dinámica y no se puede ajustar). En el panel, se proporciona un análisis de datos en intervalos predeterminados de una hora (1H), seis horas (6H), un día (1D), una semana (1W) y seis semanas (6W). Puedes solicitar un análisis de forma manual en cualquier intervalo de seis semanas a sesenta segundos.

Tipos de recursos y métricas

Métricas

Las siguientes métricas para balanceadores de cargas de red de transferencia externos se informan en Monitoring. Puedes usar estos nombres de métricas cuando realices solicitudes a la API.

metric_name Tipo Descripción
loadbalancing.googleapis.com/l3/external/ingress_bytes_count contador La cantidad de bytes enviados de un cliente a un backend del balanceador de cargas de red de transferencia externo. Para los flujos TCP, solo se cuentan los bytes presentes en la transmisión de la aplicación.
loadbalancing.googleapis.com/l3/external/ingress_packets_count contador La cantidad de paquetes enviados de un cliente a un backend del balanceador de cargas de red de transferencia externo.
loadbalancing.googleapis.com/l3/external/egress_bytes_count contador La cantidad de bytes enviados de un backend del balanceador de cargas de red de transferencia externo a un cliente. Para los flujos TCP, solo se cuentan los bytes presentes en la transmisión de la aplicación.
loadbalancing.googleapis.com/l3/external/egress_packets_count contador La cantidad de paquetes enviados desde un backend del balanceador de cargas de red de transferencia externo a un cliente.
loadbalancing.googleapis.com/l3/external/rtt_latencies distribución

Una distribución del rtt medida a través de conexiones TCP para los flujos de balanceadores de cargas de red de transferencia externos.

Disponible solo para el tráfico de TCP.

Tipos de recursos

Los balanceadores de cargas de red de transferencia externos usan los siguientes tipos de recursos:

  • tcp_lb_rule
  • udp_lb_rule
  • loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule

Un balanceador de cargas de red de transferencia externo puede admitir tráfico de TCP, UDP, ESP, GRE, ICMP e ICMPv6.

Puedes especificar el tipo de recurso como tcp_lb_rule o udp_lb_rule para limitar los datos supervisados a los protocolos TCP o UDP. Puedes especificar el tipo de recurso como loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule para supervisar todos los protocolos compatibles, incluidos TCP, ICMP, ESP, GRE, ICMv6 y UDP.

Filtros

Las métricas se agregan para cada balanceador de cargas de red de transferencia externo. Puedes filtrar métricas agregadas por las siguientes dimensiones.

Etiquetas de recursos para tcp_lb_rule o udp_lb_rule

Puedes restringir tu búsqueda por recurso. También puedes agrupar los resultados según estos valores.

resource.label.<var>LABEL_KEY</var>:
label_key Tipo Descripción
project string El identificador del proyecto de Google Cloud asociado a este recurso.
load_balancer_name string El nombre del balanceador de cargas.
region string La región en la que se encuentra el backend del balanceador de cargas, por ejemplo, us-central1, europe-west1, asia-east1.
network_name string La red de VPC en la que reside el backend del balanceador de cargas.
backend_target_type string Indica si el balanceador de cargas de red de transferencia externo se basa en grupos de destino o en servicios de backend. Los valores válidos son BACKEND_SERVICE o TARGET_POOL.
backend_target_name string Para los balanceadores de cargas de red de transferencia externos basados en grupos de destino, el nombre del grupo de destino. Para los balanceadores de cargas de red de transferencia externos basados en servicios de backend, el nombre del servicio de backend.
forwarding_rule_name string El nombre de la regla de reenvío.
forwarding_rule_network_tier string El nivel de red de la regla de reenvío.
backend_name string

El nombre del backend que controló la conexión.

Para un balanceador de cargas de red de transferencia externo basado en servicios de backend, el valor es el nombre del grupo de instancias de backend o del grupo de extremos de red (NEG) que controló la conexión.

Para un balanceador de cargas de red de transferencia externo basado en grupos de destino, el valor es el nombre del grupo de destino.

backend_type string

El tipo de backend que controló la conexión.

Para un balanceador de cargas de red de transferencia externo basado en servicios de backend, el valor puede ser INSTANCE_GROUP o NETWORK_ENDPOINT_GROUP.

Para un balanceador de cargas de red de transferencia externo basado en grupos de destino, el valor es TARGET_POOL.

backend_scope string

Para un balanceador de cargas de red de transferencia externo basado en servicios de backend, la zona o región del NEG o grupo de instancias de backend.

Para un balanceador de cargas de red basado en grupos de destino, el valor es UNSUPPORTED_FOR_TARGET_POOL.

backend_scope_type string

El tipo de permiso del grupo de backend que controló la conexión. Los valores válidos son ZONE o REGION.

Para un balanceador de cargas de red basado en grupos de destino, el valor es UNSUPPORTED_FOR_TARGET_POOL.

backend_failover_configuration string Configuración de conmutación por error del grupo de backend que controló la conexión. Los valores válidos son PRIMARY, BACKUP o UNKNOWN.
backend_subnetwork_name string El nombre de la subred del backend que recibió la conexión.
endpoint_zone string La zona de la VM de backend que controló la conexión.

Etiquetas de recursos de loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule

Puedes restringir tu búsqueda por recurso. También puedes agrupar los resultados según estos valores.

resource.label.<var>LABEL_KEY</var>:
label_key Tipo Descripción
project string El identificador del proyecto de Google Cloud asociado a este recurso.
region string La región en la que se encuentra el backend del balanceador de cargas, por ejemplo, us-central1, europe-west1, asia-east1.
backend_network_name string La red de VPC en la que reside el backend del balanceador de cargas.
backend_target_type string El tipo de destino de backend que controló la conexión. Los valores válidos son BACKEND_SERVICE o TARGET_POOL.
backend_service_name string El nombre del servicio de backend que controló la conexión. Si backend_target_type es TARGET_POOL, el valor es UNSUPPORTED_FOR_TARGET_POOL.
primary_target_pool string El nombre del grupo de destino principal. Si backend_target_type es BACKEND_SERVICE, el valor es UNSUPPORTED_FOR_BACKEND_SERVICE.
target_pool string El nombre del grupo de destino. Si backend_target_type es BACKEND_SERVICE, el valor es UNSUPPORTED_FOR_BACKEND_SERVICE.
forwarding_rule_name string El nombre de la regla de reenvío del balanceador de cargas de red de transferencia externo.
backend_group_name string El nombre del grupo de backend que controló la conexión. Si backend_target_type es TARGET_POOL, el valor es UNSUPPORTED_FOR_TARGET_POOL.
backend_group_type string

El tipo de grupo de backend que controló la conexión.

Si backend_target_type es BACKEND_SERVICE, el valor es INSTANCE_GROUP o NETWORK_ENDPOINT_GROUP.

Si backend_target_type es TARGET_POOL, el valor es UNSUPPORTED_FOR_TARGET_POOL.

backend_group_scope string El permiso del grupo de backend (nombre de la zona o región) que controló la conexión. Si backend_target_type es TARGET_POOL, el valor es UNSUPPORTED_FOR_TARGET_POOL.
backend_subnetwork_name string El nombre de la subred de la instancia que recibió la conexión.
backend_zone string La zona de la VM de backend que controló la conexión.

Etiquetas de métrica

Puedes restringir tu búsqueda por etiqueta de métrica. También puedes agrupar los resultados según estos valores.

metric.label.<var>LABEL_KEY</var>:
label_key Tipo Descripción
client_country string El país del cliente que inició la conexión con el balanceador de cargas de red de transferencia externo.
client_continent string El continente del cliente que inició la conexión con el balanceador de cargas de red de transferencia externo.
protocol string

El protocolo en la conexión para el recurso loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule.

Este campo se deja en blanco para los recursos tcp_lb_rule y udp_lb_rule.

Solicitudes a la API de Monitoring

Puedes crear búsquedas arbitrarias a través de las métricas del balanceador de cargas de red de transferencia externo con la solicitud v3 projects.timeSeries.list de la API de Monitoring. La estructura exacta de las diversas definiciones respeta la semántica genérica de los filtros de supervisión.

Ejemplos de solicitudes a la API

  • Obtén todos los bytes enviados desde todos los balanceadores de cargas de red de transferencia del proyecto, entre las 12:00 y las 12:02 p.m. UTC del 1 de julio de 2019, con agregados de 1 m.

    Parámetros de timeSeries.list:

    • name: projects/PROJECT_ID
    • Filter: resource.type = "tcp_lb_rule" AND metric.name="loadbalancing.googleapis.com/l3/external/egress_bytes_count"
    • interval.start_time: 2019-07-01T12:00:00Z
    • interval.end_time: 2019-07-01T12:02:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.perSeriesAligner: ALIGN_SUM
  • Obtén una medición de la mediana del RTT en todos los balanceadores de cargas de red de transferencia externos del proyecto, entre las 12:19 y las 12:20 p.m. UTC del 1 de julio de 2019, desglosada por país del cliente.

    Parámetros de timeSeries.list:

    • name: projects/PROJECT_ID
    • Filter: resource.type = "tcp_lb_rule" AND metric.name="loadbalancing.googleapis.com/l3/external/rtt_latencies"
    • interval.start_time: 2019-07-01T12:19:00Z
    • interval.end_time: 2019-07-01T12:20:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.groupByFields: metric.label.client_country
    • aggregation.perSeriesAligner: ALIGN_PERCENTILE_50
  • Obtén el total de bytes de un balanceador de cargas de red de transferencia externo específico entre las 12:19 y 12:20 p.m. UTC del 1 de julio de 2019, que se desglosa por la zona del extremo y el continente del cliente.

    Parámetros de timeSeries.list:

    • name: projects/PROJECT_ID
    • Filter: resource.type = "tcp_lb_rule" AND resource.label.load_balancer_name = "netlb-bs-1" AND metric.name="loadbalancing.googleapis.com/l3/external/ingress_bytes_count"
    • interval.start_time: 2019-07-01T12:19:00Z
    • interval.end_time: 2017-07-01T12:20:00Z
    • aggregation.alignmentPeriod: 60s
    • aggregation.crossSeriesReducer: REDUCE_SUM
    • aggregation.groupByFields: metric.label.client_continent
    • aggregation.groupByFields: resource.label.endpoint_zone
    • aggregation.perSeriesAligner: ALIGN_SUM

¿Qué sigue?