Registro y monitorización del balanceador de carga de aplicaciones interno

En este documento se proporciona la información que necesitas para entender las métricas de registro y monitorización de los balanceadores de carga de aplicación internos. Las métricas de registro y monitorización son las mismas para los balanceadores de carga de aplicación internos regionales y entre regiones.

Almacenamiento de registros

Puedes habilitar el registro por servicio de backend. Un único mapa de URLs de un balanceador de carga de aplicaciones interno puede hacer referencia a más de un servicio de backend. Es posible que tengas que habilitar el registro de varios servicios de backend en función de tu configuración.

Muestreo y recogida de registros

Las solicitudes (y las respuestas correspondientes) gestionadas por las instancias de máquina virtual (VM) de backend del balanceador de carga se muestrean. Estas solicitudes muestreadas se procesan para generar registros. Puede controlar la fracción de las solicitudes que se emiten como entradas de registro según el parámetro logConfig.sampleRate. Cuando logConfig.sampleRate es 1.0 (100%), se generan registros de todas las solicitudes y se escriben en Cloud Logging.

Además, aunque el registro esté inhabilitado en un servicio de backend, el balanceador de carga puede generar entradas de registro de solicitudes fallidas si no puede asociar esas solicitudes a un backend concreto.

Campos opcionales:

Los registros de registro contienen campos obligatorios y campos opcionales. En la sección Qué se registra se indica qué campos son opcionales y cuáles son obligatorios. Todos los campos obligatorios se incluyen siempre. Puedes personalizar los campos opcionales que quieras conservar.

  • Si seleccionas Incluir todos los campos opcionales, se incluirán todos los campos opcionales del formato de registro en los registros de flujo. Cuando se añaden nuevos campos opcionales al formato de registro, los registros de flujo incluyen automáticamente los nuevos campos.

  • Si selecciona Excluir todos los opcionales, se omitirán todos los campos opcionales.

  • Si seleccionas Personalizado, puedes especificar los campos opcionales que quieras incluir, como tls.protocol,tls.cipher.

Para obtener instrucciones sobre cómo personalizar los campos opcionales, consulta Habilitar el registro en un servicio backend ya creado.

Habilitar el registro en un servicio de backend

Para los balanceadores de carga de aplicación internos regionales, sigue estos pasos:

Consola

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

    Ir a Balanceo de carga

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

  3. Haz clic en Editar.

  4. Haz clic en Configuración de backend.

  5. Haz clic en Editar junto a tu servicio backend.

  6. Haz clic en Configuraciones avanzadas (afinidad de sesión o tiempo de espera hasta la purga de conexión).

  7. Haz clic en Habilitar registro.

  8. Define una fracción de Frecuencia de muestreo. Puedes definir un número del 0.0 al 1.0, donde 0.0 significa que no se registra ninguna solicitud y 1.0 significa que se registra el 100% de las solicitudes. El valor predeterminado es 1.0.

  9. Opcional: Para incluir todos los campos opcionales en los registros, en la sección Campos opcionales, haga clic en Incluir todos los campos opcionales.

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

  11. Para terminar de editar el balanceador de carga, haz clic en Actualizar.

gcloud

Para actualizar el servicio de backend y habilitar el registro, usa el comando gcloud compute backend-services update.

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

donde

  • --enable-logging habilita el registro de ese servicio de backend.
  • --logging-sample-rate le permite especificar un valor entre 0.0 y 1.0, donde 0.0 significa que no se registra ninguna solicitud y 1.0 significa que se registra el 100% de las solicitudes. Solo tiene sentido con el parámetro --enable-logging. Habilitar el registro, pero definir la frecuencia de muestreo en 0.0 equivale a inhabilitar el registro. El valor predeterminado es 1.0.
  • --logging-optional te permite especificar los campos opcionales que quieras incluir en los registros:

    • INCLUDE_ALL_OPTIONAL para incluir todos los campos opcionales.

    • EXCLUDE_ALL_OPTIONAL (valor predeterminado) para excluir todos los campos opcionales.

    • CUSTOM para incluir una lista personalizada de campos opcionales que especifiques en OPTIONAL_FIELDS.

  • --logging-optional-fields te permite especificar una lista separada por comas de campos opcionales que quieras incluir en los registros.

    Por ejemplo, tls.protocol,tls.cipher solo se puede definir si LOGGING_OPTIONAL_MODE se define como CUSTOM. Si usa métricas personalizadas y quiere registrar elementos del informe de carga de ORCA, debe asignar el valor CUSTOM a LOGGING_OPTIONAL_MODE y especificar qué elementos se deben registrar en el campo OPTIONAL_FIELDS. Por ejemplo, orca_load_report.cpu_utilization,orca_load_report.mem_utilization.

En el caso de los balanceadores de carga de aplicación internos entre regiones, sigue estos pasos:

Consola

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

    Ir a Balanceo de carga

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

  3. Haz clic en Editar.

  4. Haz clic en Configuración de backend.

  5. Haz clic en Editar junto a tu servicio backend.

  6. Haz clic en Configuraciones avanzadas (afinidad de sesión o tiempo de espera hasta la purga de conexión).

  7. Haz clic en Habilitar registro.

  8. Define una fracción de Frecuencia de muestreo. Puedes definir un número del 0.0 al 1.0, donde 0.0 significa que no se registra ninguna solicitud y 1.0 significa que se registra el 100% de las solicitudes. El valor predeterminado es 1.0.

  9. Opcional: Para incluir todos los campos opcionales en los registros, en la sección Campos opcionales, haga clic en Incluir todos los campos opcionales.

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

  11. Para terminar de editar el balanceador de carga, haz clic en Actualizar.

gcloud

Para actualizar el servicio de backend y habilitar el registro, usa el comando gcloud compute backend-services update.

gcloud compute backend-services update BACKEND_SERVICE \
    --enable-logging \
    --logging-sample-rate=RATE \
    --global \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

donde

  • --enable-logging habilita el registro de ese servicio de backend.
  • --logging-sample-rate le permite especificar un valor entre 0.0 y 1.0, donde 0.0 significa que no se registra ninguna solicitud y 1.0 significa que se registra el 100% de las solicitudes. Solo tiene sentido con el parámetro --enable-logging. Habilitar el registro, pero definir la frecuencia de muestreo en 0.0 equivale a inhabilitar el registro. El valor predeterminado es 1.0.
  • --logging-optional te permite especificar los campos opcionales que quieras incluir en los registros:

    • INCLUDE_ALL_OPTIONAL para incluir todos los campos opcionales.

    • EXCLUDE_ALL_OPTIONAL (valor predeterminado) para excluir todos los campos opcionales.

    • CUSTOM para incluir una lista personalizada de campos opcionales que especifiques en OPTIONAL_FIELDS.

  • --logging-optional-fields te permite especificar una lista separada por comas de campos opcionales que quieras incluir en los registros.

    Por ejemplo, tls.protocol,tls.cipher solo se puede definir si LOGGING_OPTIONAL_MODE se define como CUSTOM. Si usa métricas personalizadas y quiere registrar elementos del informe de carga de ORCA, debe asignar el valor CUSTOM a LOGGING_OPTIONAL_MODE y especificar qué elementos se deben registrar en el campo OPTIONAL_FIELDS. Por ejemplo, orca_load_report.cpu_utilization,orca_load_report.mem_utilization.

Después de habilitar el registro en el servicio de backend, cada solicitud HTTP(S) se registra mediante Cloud Logging.

Inhabilitar o modificar el registro en un servicio de backend

Consola

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

    Ir a Balanceo de carga

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

  3. Haz clic en Editar.

  4. Haz clic en Configuración de backend.

  5. Haz clic en Editar junto a tu servicio backend.

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

  7. Si dejas el registro habilitado, puedes definir una fracción de Frecuencia de muestreo diferente. Puedes definir un número entre 0.0 y 1.0, donde 0.0 significa que no se registra ninguna solicitud y 1.0 significa que se registra el 100% de las solicitudes. El valor predeterminado es 1.0. Por ejemplo, 0.2 significa que el 20% de las solicitudes muestreadas generan registros.

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

  9. Para terminar de editar el balanceador de carga, haz clic en Actualizar.

gcloud: modo multirregión

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

Inhabilitar el registro por completo

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --no-enable-logging

donde

  • --global indica que el servicio backend es global. Usa este campo para los servicios de backend que se utilicen con balanceadores de carga de aplicaciones internos entre regiones.
  • --no-enable-logging inhabilita el registro de ese servicio de backend.

Habilitar campos opcionales de registro en un servicio de backend

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=OPTIONAL_FIELDS

donde

  • --logging-sample-rate le permite especificar un valor entre 0.0 y 1.0, donde 0.0 significa que no se registra ninguna solicitud y 1.0 significa que se registra el 100% de las solicitudes. Solo tiene sentido con el parámetro --enable-logging. Habilitar el registro, pero definir la frecuencia de muestreo en 0.0 equivale a inhabilitar el registro. El valor predeterminado es 1.0.
  • --logging-optional te permite especificar los campos opcionales que quieras incluir en los registros:

    • INCLUDE_ALL_OPTIONAL para incluir todos los campos opcionales.

    • EXCLUDE_ALL_OPTIONAL (valor predeterminado) para excluir todos los campos opcionales.

    • CUSTOM para incluir una lista personalizada de campos opcionales que especifiques en OPTIONAL_FIELDS.

  • --logging-optional-fields te permite especificar una lista separada por comas de campos opcionales que quieras incluir en los registros.

    Por ejemplo, tls.protocol,tls.cipher solo se puede definir si LOGGING_OPTIONAL_MODE se define como CUSTOM. Si usa métricas personalizadas y quiere registrar elementos del informe de carga de ORCA, debe asignar el valor CUSTOM a LOGGING_OPTIONAL_MODE y especificar qué elementos se deben registrar en el campo OPTIONAL_FIELDS. Por ejemplo, orca_load_report.cpu_utilization,orca_load_report.mem_utilization.

Actualizar el modo opcional de registro de PERSONALIZADO a otro

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=

donde

  • --logging-optional te permite especificar los campos opcionales que quieras incluir en los registros:

    • INCLUDE_ALL_OPTIONAL para incluir todos los campos opcionales.

    • EXCLUDE_ALL_OPTIONAL (valor predeterminado) para excluir todos los campos opcionales.

  • --logging-optional-fields debe configurarse explícitamente como se muestra para borrar los campos CUSTOM. La API no permite combinar un modo que no sea CUSTOM con campos CUSTOM.

Modificar la frecuencia de muestreo de los registros

gcloud compute backend-services update BACKEND_SERVICE \
    --global \
    --logging-sample-rate=VALUE

gcloud: modo regional

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

Inhabilitar el registro por completo

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

donde

  • --region indica que el servicio backend es regional. Usa este campo para los servicios de backend que se utilicen con balanceadores de carga de aplicaciones internos regionales.
  • --no-enable-logging inhabilita el registro de ese servicio de backend.

Habilitar campos opcionales de registro en un servicio de backend

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

donde

  • --logging-sample-rate le permite especificar un valor entre 0.0 y 1.0, donde 0.0 significa que no se registra ninguna solicitud y 1.0 significa que se registra el 100% de las solicitudes. Solo tiene sentido con el parámetro --enable-logging. Habilitar el registro, pero definir la frecuencia de muestreo en 0.0 equivale a inhabilitar el registro. El valor predeterminado es 1.0.
  • --logging-optional te permite especificar los campos opcionales que quieras incluir en los registros:

    • INCLUDE_ALL_OPTIONAL para incluir todos los campos opcionales.

    • EXCLUDE_ALL_OPTIONAL (valor predeterminado) para excluir todos los campos opcionales.

    • CUSTOM para incluir una lista personalizada de campos opcionales que especifiques en OPTIONAL_FIELDS.

  • --logging-optional-fields te permite especificar una lista separada por comas de campos opcionales que quieras incluir en los registros.

    Por ejemplo, tls.protocol,tls.cipher solo se puede definir si LOGGING_OPTIONAL_MODE se define como CUSTOM. Si usa métricas personalizadas y quiere registrar elementos del informe de carga de ORCA, debe asignar el valor CUSTOM a LOGGING_OPTIONAL_MODE y especificar qué elementos se deben registrar en el campo OPTIONAL_FIELDS. Por ejemplo, orca_load_report.cpu_utilization,orca_load_report.mem_utilization.

Actualizar el modo opcional de registro de PERSONALIZADO a otro

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --enable-logging \
    --logging-sample-rate=VALUE \
    --logging-optional=LOGGING_OPTIONAL_MODE \
    --logging-optional-fields=

donde

  • --logging-optional te permite especificar los campos opcionales que quieras incluir en los registros:

    • INCLUDE_ALL_OPTIONAL para incluir todos los campos opcionales.

    • EXCLUDE_ALL_OPTIONAL (valor predeterminado) para excluir todos los campos opcionales.

  • --logging-optional-fields debe configurarse explícitamente como se muestra para borrar los campos CUSTOM. La API no permite combinar un modo que no sea CUSTOM con campos CUSTOM.

Modificar la frecuencia de muestreo de los registros

gcloud compute backend-services update BACKEND_SERVICE \
    --region=REGION \
    --logging-sample-rate=VALUE

Cómo ver los registros

Para ver los registros, en la Google Cloud consola, ve a la página Explorador de registros.

Los registros de los balanceadores de carga de aplicaciones internos se indexan primero por red y, después, por región.

  • Para ver los registros de todos los balanceadores de carga de aplicación internos, en el primer menú desplegable, selecciona Regla de balanceador de carga de aplicación interno.
  • Para ver los registros de una sola red, selecciona Regla de balanceador de carga de aplicación interno y, a continuación, el nombre de una red.
  • Para ver los registros de una sola región de la red, selecciona Regla de balanceador de carga de aplicación interno > NETWORK > REGION.

Los campos de registro de tipo booleano suelen aparecer solo si tienen el valor true. Si un campo booleano tiene el valor false, se omite en el registro.

La codificación UTF-8 se aplica a los campos de registro. Los caracteres que no son UTF-8 se sustituyen por signos de interrogación.

Puedes configurar la exportación de métricas basadas en registros de registros de recursos (resource.type="internal_http_lb_rule"). Las métricas creadas se basan en el recurso "Internal Application Load Balancer Rule", que está disponible en los paneles de Cloud Monitoring:

Ir a Monitoring

Qué se registra

Las entradas de registro del balanceador de carga de aplicaciones interno contienen información útil para monitorizar y depurar el tráfico HTTP(S). Los registros de log contienen campos obligatorios, que son los campos predeterminados de todos los registros de log, y campos opcionales que añaden información adicional sobre su tráfico HTTP(S). Los campos opcionales se pueden omitir para ahorrar costes de almacenamiento. Las entradas de registro contienen los siguientes tipos de información:

  • Información general que se muestra en la mayoría de los Google Cloud registros, como la gravedad, el ID del proyecto, el número del proyecto y la marca de tiempo, tal como se describe en LogEntry.
  • Campos de registro HttpRequest.

Algunos campos de registro tienen un formato de varios campos, con más de un dato en un campo determinado. Por ejemplo, el campo tls tiene el formato TlsDetails, que contiene el protocolo TLS y el cifrado TLS en un solo campo. Estos campos de varios campos se describen en la siguiente tabla de formato de registro.

Campo Tipo Tipo de campo: obligatorio u opcional Descripción
logName cadena Obligatorio Nombre de recurso del registro al que pertenece esta entrada de registro.
En el formulario "projects/PROJECT_ID/logs/requests".
timestamp cadena Obligatorio La hora a la que ha empezado la solicitud.
severity LogSeverity format Obligatorio La gravedad de la entrada de registro. El valor predeterminado es LogSeverity.DEFAULT.
httpRequest Objeto HttpRequest Obligatorio Un proto HttpRequest que describe la solicitud HTTP(S) que se está registrando.
trace cadena Obligatorio El nombre de recurso de la traza asociada a la entrada de registro, si lo hay. Si contiene un nombre de recurso relativo, se supone que el nombre es relativo a https://tracing.googleapis.com. Ejemplo: projects/PROJECT_ID/traces/06796866738c859f2f19b7cfb3214824.

Los balanceadores de carga de aplicaciones internos no admiten este campo.

spanId cadena Obligatorio El ID del intervalo de la traza asociada a la entrada de registro. En el caso de los intervalos de traza, esta cadena tiene el mismo formato que usa la API Trace v2: una codificación hexadecimal de 16 caracteres de un array de 8 bytes, como 000000000000004a.

Los balanceadores de carga de aplicaciones internos no admiten este campo.

resource Objeto MonitoredResource Obligatorio

El recurso monitorizado que ha generado esta entrada de registro.

El objeto MonitoredResourceDescriptor describe el esquema de un objeto MonitoredResource mediante un nombre de tipo y un conjunto de etiquetas.

Por ejemplo, los descriptores de recursos monitorizados de los balanceadores de carga de aplicaciones internos tienen el tipo de recurso internal_http_lb_rule y usan etiquetas de recursos para identificar el recurso real y sus atributos. Para ver una lista de etiquetas de recursos, consulta el artículo Etiquetas de recursos de resource.type="internal_http_lb_rule".

jsonPayload object (formato Struct) Obligatorio La carga útil de la entrada de registro, que se expresa como un objeto JSON. El objeto JSON contiene los siguientes campos:
  • tls
  • proxyStatus
  • backendTargetProjectNumber
  • serviceDirectoryService
  • cloudFitExperiment
  • cloudFitFault
  • serviceExtensionInfo
  • mtls
  • authzPolicyInfo
  • backendNetworkName
  • orca_load_report
cadena Obligatorio

El campo proxyStatus contiene una cadena que especifica por qué el balanceador de carga de aplicaciones interno ha devuelto el HttpRequest.status. Este campo solo se rellena cuando el proxy devuelve un código de error.

El campo no se registra si el valor es una cadena vacía. Esto puede ocurrir si el proxy o el backend no devuelven un error o el código de error no es 0, 4XX o 5XX.

El campo proxyStatus consta de dos partes:

cadena Obligatorio El campo backendTargetProjectNumber contiene el número de proyecto que identifica al propietario del servicio de backend o del segmento de backend.
cadena Obligatorio El campo serviceDirectoryService contiene el nombre del servicio de Service Directory en el que se configuró el error de FIT de Cloud.
cadena Obligatorio El campo cloudFitExperiment contiene el nombre del experimento de Cloud FIT.
cadena Obligatorio El campo cloudFitFault contiene el nombre del error insertado por un experimento de error de FIT de Cloud en esta ruta de solicitud.
ServiceExtensionInfo Obligatorio El campo serviceExtensionInfo almacena información sobre los flujos de gRPC del balanceador de carga a las extensiones de servicio. Para obtener más información, consulta qué se registra en las extensiones de texto destacado.
AuthzPolicyInfo Obligatorio El campo authzPolicyInfo almacena información sobre el resultado de la política de autorización. Esta información solo está disponible para los balanceadores de carga de aplicaciones internos que tengan habilitada la política de autorización. Para obtener más información, consulta qué se registra en la política de autorización.
TlsInfo Opcional

El campo tls contiene el campo TlsInfo, que especifica los metadatos de TLS de la conexión entre el cliente y el balanceador de carga. Este campo solo está disponible si el cliente usa cifrado TLS/SSL.

Usa el parámetro --logging-optional-fields para especificar qué elementos se deben registrar:

  • tls.protocol
  • tls.cipher

No puedes asignar --logging-optional-fields a tls para especificar todos los elementos.

MtlsInfo Opcional El campo mtls contiene el valor MtlsInfo que especifica los metadatos de mTLS de la conexión entre el cliente y el balanceador de carga de aplicaciones interno. Este campo solo está disponible si el balanceador de carga usa TLS mutuo (mTLS) de frontend.
cadena Opcional El campo backendNetworkName especifica la red de VPC del backend si este usa una red de VPC diferente a la de la regla de reenvío del balanceador de carga.
OrcaLoadReport Opcional

El campo orca_load_report contiene algunos o todos los elementos del informe de carga de ORCA devuelto por el backend. Este campo solo está presente si el backend devuelve un informe de carga de ORCA y has configurado el balanceador de carga para que registre el informe de carga de ORCA.

Usa el parámetro --logging-optional-fields para especificar qué elementos del informe de carga de ORCA se deben registrar:

  • orca_load_report.cpu_utilization
  • orca_load_report.mem_utilization
  • orca_load_report.request_cost
  • orca_load_report.utilization
  • orca_load_report.rps_fractional
  • orca_load_report.eps
  • orca_load_report.named_metrics
  • orca_load_report.application_utilization

También puedes definir --logging-optional-fields en orca_load_report para especificar que se deben registrar todos los elementos.

Formato del campo TlsInfo

Campo Formato de campo Tipo de campo: obligatorio u opcional Descripción
protocol cadena Opcional Protocolo TLS que usan los clientes para establecer una conexión con el balanceador de carga. Los valores posibles son TLS 1.0, 1.1, 1.2, 1.3 o QUIC. Este valor se asigna a NULL si el cliente no usa el cifrado TLS/SSL.
cifrado cadena Opcional Cifrado TLS que usan los clientes para establecer una conexión con el balanceador de carga. Este valor se define como NULL si el cliente no usa HTTP(S) o no usa el cifrado TLS/SSL.

Formato del campo MtlsInfo

Campo Formato de campo Tipo de campo: obligatorio u opcional Descripción
clientCertPresent bool Opcional

true si el cliente ha proporcionado un certificado durante el handshake TLS; de lo contrario, false.

clientCertChainVerified bool Opcional

true si la cadena de certificados de cliente se verifica con un TrustStore configurado; de lo contrario, false.

clientCertError cadena Opcional

Cadenas predefinidas que representan las condiciones de error. Para obtener más información sobre las cadenas de error, consulta Modo de validación de cliente.

clientCertSha256Fingerprint cadena Opcional

Huella digital SHA-256 codificada en Base64 del certificado de cliente.

clientCertSerialNumber cadena Opcional

Número de serie del certificado de cliente. Si el número de serie tiene más de 50 bytes, se añade la cadena client_cert_serial_number_exceeded_size_limit a client_cert_error y el número de serie se establece como una cadena vacía.

clientCertValidStartTime cadena Opcional

Marca de tiempo (cadena de fecha en formato RFC 3339 ) antes de la cual el certificado de cliente no es válido. Por ejemplo, 2022-07-01T18:05:09+00:00.

clientCertValidEndTime cadena Opcional

Marca de tiempo (cadena de fecha con formato RFC 3339) a partir de la cual el certificado de cliente no es válido. Por ejemplo, 2022-07-01T18:05:09+00:00.

clientCertSpiffeId cadena Opcional

El ID de SPIFFE del campo de nombre alternativo del sujeto (SAN). Si el valor no es válido o supera los 2048 bytes, el ID de SPIFFE se asigna a una cadena vacía.

Si el ID de SPIFFE tiene más de 2048 bytes, se añade la cadena client_cert_spiffe_id_exceeded_size_limit a client_cert_error.

clientCertUriSans cadena Opcional

Lista separada por comas y codificada en Base64 de las extensiones SAN de tipo URI. Las extensiones SAN se extraen del certificado de cliente. El ID de SPIFFE no se incluye en el campo client_cert_uri_sans.

Si el campo client_cert_uri_sans tiene más de 512 bytes, se añade la cadena client_cert_uri_sans_exceeded_size_limit a client_cert_error y la lista separada por comas se asigna a una cadena vacía.

clientCertDnsnameSans cadena Opcional

Lista separada por comas y codificada en Base64 de las extensiones SAN de tipo DNSName. Las extensiones SAN se extraen del certificado de cliente.

Si el campo client_cert_dnsname_sans tiene más de 512 bytes, se añade la cadena client_cert_dnsname_sans_exceeded_size_limit a client_cert_error y la lista separada por comas se asigna a una cadena vacía.

clientCertIssuerDn cadena Opcional

Campo Issuer completo codificado en Base64 del certificado.

Si el campo client_cert_issuer_dn tiene más de 512 bytes, se añade la cadena client_cert_issuer_dn_exceeded_size_limit a client_cert_error y se asigna una cadena vacía a client_cert_issuer_dn.

clientCertSubjectDn cadena Opcional

Campo Subject completo del certificado codificado en Base64.

Si el campo client_cert_subject_dn tiene más de 512 bytes, se añade la cadena client_cert_subject_dn_exceeded_size_limit a client_cert_error y se asigna una cadena vacía a client_cert_subject_dn.

clientCertLeaf cadena Opcional

El certificado de hoja de cliente de una conexión mTLS establecida en la que el certificado ha superado la validación. La codificación del certificado cumple el estándar RFC 9440: el certificado DER binario se codifica con Base64 (sin saltos de línea, espacios ni otros caracteres que no pertenezcan al alfabeto Base64) y se delimita con dos puntos a cada lado.

Si client_cert_leaf supera los 16 KB sin codificar, la cadena client_cert_validated_leaf_exceeded_size_limit se añade a client_cert_error y client_cert_leaf se asigna a una cadena vacía.

clientCertChain cadena Opcional

Lista de certificados separados por comas, en orden TLS estándar, de la cadena de certificados de cliente de una conexión mTLS establecida en la que el certificado de cliente ha superado la validación, sin incluir el certificado de hoja. La codificación de certificados cumple el estándar RFC 9440.

Si el tamaño combinado de client_cert_leaf y client_cert_chain antes de la codificación Base64 supera los 16 KB, la cadena client_cert_validated_chain_exceeded_size_limit se añade a client_cert_error y client_cert_chain se asigna a una cadena vacía.

Campo de error proxyStatus

El campo proxyStatus contiene una cadena que especifica por qué el balanceador de carga ha devuelto un error. El campo proxyStatus se compone de dos partes: proxyStatus error y proxyStatus details. En esta sección se describen las cadenas que se admiten en el campo proxyStatus error.

El campo proxyStatus error se aplica a los siguientes balanceadores de carga:

  • Balanceador de carga de aplicación externo regional
  • Balanceador de carga de aplicación interno entre regiones
  • Balanceador de carga de aplicación interno regional
Error de proxyStatus Descripción Códigos de respuesta habituales
destination_unavailable El balanceador de carga considera que el backend no está disponible. Por ejemplo, si se han producido errores en los intentos recientes de comunicarse con el backend o si una comprobación de estado ha dado como resultado un error. 500, 503
connection_timeout El balanceador de carga ha agotado el tiempo de espera al intentar abrir una conexión con el backend. 504
connection_terminated

La conexión del balanceador de carga con el backend ha finalizado antes de que se recibiera una respuesta completa.

Este proxyStatus error se devuelve en cualquiera de los siguientes casos:

  • La conexión del balanceador de carga con el backend ha finalizado antes de que se haya recibido una respuesta completa.
  • La conexión TLS ha fallado en el handshake de SSL y el cliente no ha establecido una conexión con el balanceador de carga.

0, 502, 503
connection_refused Se rechaza la conexión del balanceador de carga al backend. 502, 503
connection_limit_reached

El balanceador de carga está configurado para limitar el número de conexiones que tiene con el backend y se ha superado ese límite.

Este proxyStatus error se devuelve en cualquiera de los siguientes casos:

  • Si algún backend está en modo de mantenimiento, el tráfico no se puede enrutar al backend.
  • Si la solicitud tiene un límite de frecuencia local.
  • Envoy gestiona las condiciones de error, como la falta de memoria.
502, 503
destination_not_found El balanceador de carga no puede determinar el backend adecuado para esta solicitud. Por ejemplo, es posible que el backend no esté configurado. 500, 404
dns_error El balanceador de carga ha detectado un error de DNS al intentar encontrar una dirección IP para el nombre de host del backend. 502, 503
proxy_configuration_error El balanceador de carga ha detectado un error de configuración interno. 500
proxy_internal_error El balanceador de carga ha detectado un error interno. El error puede deberse a un reinicio programado del proxy que gestiona las conexiones. 0, 500, 502
proxy_internal_response El balanceador de carga ha generado la respuesta sin intentar conectarse al backend. Cualquier código de estado en función del tipo de problema. Por ejemplo, el código de estado 410 significa que el backend no está disponible debido a un impago.
http_response_timeout El balanceador de carga ha alcanzado el límite de tiempo de espera configurado del servicio de backend mientras esperaba la respuesta completa del backend. 504, 408
http_request_error El balanceador de carga ha detectado un error HTTP 4xx, lo que indica que hay problemas con la solicitud del cliente. 400, 403, 405, 406, 408, 411, 413, 414, 415, 416, 417 o 429
http_protocol_error El balanceador de carga ha detectado un error de protocolo HTTP al comunicarse con el backend. 502
tls_protocol_error El balanceador de carga ha detectado un error de TLS durante la negociación de TLS. 0
tls_certificate_error El balanceador de carga ha detectado un error al verificar el certificado presentado por el servidor o por el cliente cuando se ha habilitado mTLS. 0
tls_alert_received El balanceador de carga ha detectado una alerta TLS fatal durante el handshake TLS. 0

Campo de detalles de proxyStatus

El campo proxyStatus contiene una cadena que especifica por qué el balanceador de carga ha devuelto un error. El campo proxyStatus se compone de dos partes: proxyStatus error y proxyStatus details. El campo proxyStatus details es opcional y solo se muestra cuando hay información adicional disponible. En esta sección se describen las cadenas que se admiten en el campo proxyStatus details.

El campo detalles de proxyStatus se aplica a los siguientes balanceadores de carga:

  • Balanceador de carga de aplicación externo regional
  • Balanceador de carga de aplicación interno regional
  • Balanceador de carga de aplicación interno entre regiones
Detalles de proxyStatus Descripción Códigos de estado de respuesta habituales
client_disconnected_before_any_response La conexión con el cliente se ha interrumpido antes de que el balanceador de carga enviara ninguna respuesta. 0
backend_connection_closed El backend ha cerrado inesperadamente su conexión con el balanceador de carga. Esto puede ocurrir si el balanceador de carga envía tráfico a otra entidad, como una aplicación de terceros que tiene un tiempo de espera de TCP inferior al tiempo de espera de 10 minutos (600 segundos) del balanceador de carga. 502
failed_to_connect_to_backend El balanceador de carga no ha podido conectarse al backend. Este error incluye tiempos de espera durante la fase de conexión. 503
failed_to_pick_backend El balanceador de carga no ha podido elegir un backend en buen estado para gestionar la solicitud. 502
response_sent_by_backend La solicitud HTTP se ha enviado correctamente al backend a través de un proxy y el backend ha devuelto la respuesta. El código de estado HTTP lo define el software que se ejecuta en el backend.
client_timed_out

La conexión entre el balanceador de carga y el cliente ha superado el tiempo de espera inactivo.

Para obtener más información sobre el balanceador de carga de aplicaciones externo regional, consulta Tiempo de espera de keep-alive HTTP de cliente. Para obtener más información sobre el balanceador de carga de aplicaciones interno, consulta Tiempo de espera de keep-alive HTTP del cliente.
0, 408
backend_timeout

El backend ha agotado el tiempo de espera al generar una respuesta.

502
http_protocol_error_from_backend_response La respuesta del backend contiene un error de protocolo HTTP. 501, 502
http_protocol_error_from_request La solicitud del cliente contiene un error de protocolo HTTP. 400, 503
http_version_not_supported No se admite la versión del protocolo HTTP. Solo se admiten las versiones 1.1 y 2.0 de HTTP. 400
handled_by_identity_aware_proxy Esta respuesta la ha generado Identity-Aware Proxy (IAP) durante la verificación de la identidad del cliente antes de permitir el acceso. 200, 302, 400, 401, 403, 500, 502
invalid_request_headers

Los encabezados de solicitud HTTP recibidos de un cliente contienen al menos un carácter que no está permitido según una especificación HTTP aplicable.

Por ejemplo, los nombres de los campos de encabezado que incluyen comillas dobles (") o cualquier carácter que no esté incluido en el conjunto ASCII estándar (es decir, cualquier byte >= 0x80) no son válidos.

Para obtener más información, consulta estos artículos:

400, 404
ip_detection_failed No se ha podido detectar la dirección IP original. Cualquier código de estado posible en función de la naturaleza del error. El valor debe estar entre 400 y 599.
request_body_too_large El cuerpo de la solicitud HTTP ha superado la longitud máxima admitida por el balanceador de carga. 413, 507
request_header_timeout Se ha agotado el tiempo de espera del encabezado de la solicitud porque el balanceador de carga no ha recibido la solicitud completa en un plazo de 5 segundos. 408, 504
denied_by_security_policy El balanceador de carga ha denegado esta solicitud debido a una política de seguridad de Google Cloud Armor. 403
throttled_by_security_policy La solicitud se ha bloqueado por una regla de limitación de Cloud Armor. 429
client_cert_chain_invalid_eku El certificado de cliente o su emisor no tiene un uso de clave extendido que incluya clientAuth. Para obtener más información, consulta la sección Errores registrados de conexiones cerradas. 0
client_cert_chain_max_name_constraints_exceeded Un certificado intermedio proporcionado para la validación tenía más de 10 restricciones de nombres. Para obtener más información, consulta Errores registrados de conexiones cerradas. 0
client_cert_invalid_rsa_key_size Un certificado de hoja o intermedio de cliente tenía un tamaño de clave RSA no válido. Para obtener más información, consulta Errores registrados de conexiones cerradas. 0
client_cert_not_provided El cliente no ha proporcionado el certificado solicitado durante la negociación. Para obtener más información, consulta Errores registrados de conexiones cerradas. 0
client_cert_pki_too_large La PKI que se va a usar para la validación tiene más de tres certificados intermedios que comparten el mismo Subject y Subject Public Key Info. Para obtener más información, consulta Errores registrados de conexiones cerradas. 0
client_cert_unsupported_elliptic_curve_key Un certificado de cliente o intermedio usa una curva elíptica no admitida. Para obtener más información, consulta Errores registrados de conexiones cerradas. 0
client_cert_unsupported_key_algorithm Un certificado de cliente o intermedio usa un algoritmo que no es RSA ni ECDSA. Para obtener más información, consulta Errores registrados de conexiones cerradas. 0
client_cert_validation_failed El certificado de cliente no supera la validación con TrustConfig. Para obtener más información, consulta Errores registrados de conexiones cerradas. 0
client_cert_validation_not_performed Has configurado TLS mutuo sin configurar un TrustConfig. Para obtener más información, consulta Errores registrados de conexiones cerradas. 0
client_cert_validation_search_limit_exceeded Se ha alcanzado el límite de profundidad o de iteración al intentar validar la cadena de certificados. Para obtener más información, consulta Errores registrados de conexiones cerradas. 0
client_cert_validation_timed_out Se ha superado el tiempo límite (200 ms) al validar la cadena de certificados. Para obtener más información, consulta Errores registrados de conexiones cerradas. 0
tls_version_not_supported Se reconoce la versión del protocolo TLS, pero no se admite. El error provoca que se cierre la conexión TLS. 0
unknown_psk_identity Los servidores envían este error cuando se requiere el establecimiento de una clave PSK, pero el cliente no proporciona una identidad PSK aceptable. El error provoca que se cierre la conexión TLS. 0
no_application_protocol Enviado por los servidores cuando una extensión "application_layer_protocol_negotiation" de un cliente anuncia solo protocolos que el servidor no admite. Consulta la extensión de negociación de protocolo de capa de aplicación de TLS. El error provoca que se cierre la conexión TLS. 0
no_certificate No se ha encontrado ningún certificado. El error provoca que se cierre la conexión TLS. 0
bad_certificate Un certificado no es válido o contiene firmas que no se han podido verificar. El error provoca que se cierre la conexión TLS. 0
unsupported_certificate Un certificado es de un tipo no admitido. El error provoca que se cierre la conexión TLS. 0
certificate_revoked El firmante ha revocado un certificado. El error provoca que se cierre la conexión TLS. 0
certificate_expired Un certificado ha caducado o no es válido. El error provoca que se cierre la conexión TLS. 0
certificate_unknown Se han detectado algunos problemas sin especificar al procesar el certificado, por lo que no se puede aceptar. El error provoca que se cierre la conexión TLS. 0
unknown_ca Se ha recibido una cadena de certificados válida o una cadena parcial, pero no se puede aceptar el certificado porque no se encuentra el certificado de CA o no coincide con una raíz de confianza conocida. El error provoca que se cierre la conexión TLS. 0
unexpected_message Se ha recibido un mensaje inapropiado, como un mensaje de handshake incorrecto o datos de aplicación prematuros. El error provoca que se cierre la conexión TLS. 0
bad_record_mac Se recibe un registro que no se puede desproteger. El error provoca que se cierre la conexión TLS. 0
record_overflow Se ha recibido un registro TLSCiphertext con una longitud superior a 214+256 bytes, o bien se ha descifrado un registro TLSPlaintext con más de 214 bytes (u otro límite negociado). El error provoca que se cierre la conexión TLS. 0
handshake_failure No se ha podido negociar un conjunto aceptable de parámetros de seguridad con las opciones disponibles. El error provoca que se cierre la conexión TLS. 0
illegal_parameter Un campo del handshake era incorrecto o no coincidía con otros campos. El error provoca que se cierre la conexión TLS. 0
access_denied Se ha recibido un certificado o una PSK válidos, pero cuando se ha aplicado el control de acceso, el cliente no ha continuado con la negociación. El error provoca que se cierre la conexión TLS. 0
decode_error No se ha podido decodificar un mensaje porque algunos campos están fuera del intervalo especificado o la longitud del mensaje es incorrecta. El error provoca que se cierre la conexión TLS. 0
decrypt_error Ha fallado una operación criptográfica de handshake (no de capa de registro), como no poder verificar correctamente una firma o validar un mensaje finalizado o un enlace PSK. El error provoca que se cierre la conexión TLS. 0
insufficient_security Se ha producido un error en una negociación porque el servidor requiere parámetros más seguros que los que admite el cliente. El error provoca que se cierre la conexión TLS. 0
inappropriate_fallback Enviada por un servidor en respuesta a un intento de reintento de conexión no válido de un cliente. El error provoca que se cierre la conexión TLS. 0
user_cancelled El usuario ha cancelado el handshake por algún motivo ajeno a un fallo del protocolo. El error provoca que se cierre la conexión TLS. 0
missing_extension Enviado por los endpoints que reciben un mensaje de handshake que no contiene una extensión obligatoria para enviar la versión de TLS ofrecida u otros parámetros negociados. El error provoca que se cierre la conexión TLS. 0
unsupported_extension Enviado por los endpoints que reciben cualquier mensaje de handshake que contenga una extensión que se sabe que está prohibida para incluirla en el mensaje de handshake en cuestión, o que incluya cualquier extensión en ServerHello o Certificate que no se haya ofrecido primero en el ClientHello o CertificateRequest correspondiente. El error provoca que se cierre la conexión TLS. 0
unrecognized_name Enviado por los servidores cuando no hay ningún servidor que se pueda identificar por el nombre proporcionado por el cliente a través de la extensión "server_name". Consulta las definiciones de extensiones TLS. 0
bad_certificate_status_response Enviada por los clientes cuando el servidor proporciona una respuesta OCSP no válida o inaceptable a través de la extensión "status_request". Consulta las definiciones de extensiones TLS. El error provoca que se cierre la conexión TLS. 0
load_balancer_configured_resource_limits_reached El balanceador de carga ha alcanzado los límites de recursos configurados, como el número máximo de conexiones. 0

Entradas de registro de conexiones TLS fallidas

Cuando falla la conexión TLS entre el cliente y el balanceador de carga antes de que se seleccione ningún backend, las entradas de registro registran los errores. Puedes configurar los servicios backend con diferentes frecuencias de muestreo de registros. Cuando falla una conexión TLS, la frecuencia de muestreo de los registros de conexiones TLS fallidas es la frecuencia de muestreo más alta de cualquier servicio backend. Por ejemplo, si has configurado dos servicios de backend con una frecuencia de muestreo de registros de 0.3 y 0.5, la frecuencia de muestreo de registros de conexión TLS fallida es 0.5.

Para identificar las conexiones TLS fallidas, comprueba los detalles de estas entradas de registro:

  • El tipo de error proxyStatus es tls_alert_received, tls_certificate_error, tls_protocol_error, o connection_terminated.
  • No hay información de backend.

En el siguiente ejemplo se muestra una entrada de registro de TLS fallida con el campo proxyStatus error:

   json_payload:    {
   @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
   proxyStatus: "error="tls_alert_received"; details="server_to_client: handshake_failure""
   log_name: "projects/529254013417/logs/mockservice.googleapis.com%20name"
   }
   http_request {
    latency {
      nanos: 12412000
    }
    protocol: "HTTP/1.0"
    remote_ip: "127.0.0.2"
   }
  resource {
    type: "mock_internal_http_lb_rule"
    labels {
      backend_name: ""
      backend_scope: ""
      backend_scope_type: "UNKNOWN"
      backend_target_name: ""
      backend_target_type: "UNKNOWN"
      backend_type: "UNKNOWN"
      forwarding_rule_name: "l7-ilb-https-forwarding-rule-dev"
      matched_url_path_rule: "UNKNOWN"
      network_name: "lb-network"
      region: "REGION"
      target_proxy_name: "l7-ilb-https-proxy-dev"
      url_map_name: ""
    }
  }
  timestamp: "2023-08-15T16:49:30.850785Z"
  

Etiquetas de recurso

En la siguiente tabla se enumeran las etiquetas de recursos de resource.type="internal_http_lb_rule".

Campo Tipo Descripción
network_name cadena Nombre de la red VPC del balanceador de carga.
project_id cadena Identificador del proyecto Google Cloud asociado a este recurso.
region cadena La región en la que se define el balanceador de carga.
url_map_name cadena El nombre del objeto de mapa de URLs configurado para seleccionar un servicio de backend.
forwarding_rule_name cadena Nombre del objeto de regla de reenvío.
target_proxy_name cadena Nombre del objeto proxy de destino al que hace referencia la regla de reenvío.
matched_url_path_rule cadena La regla de ruta o de ruta de acceso del mapa de URLs configurada como parte de la clave del mapa de URLs. Puede ser UNMATCHED o UNKNOWN como alternativas.
  • UNMATCHED hace referencia a una solicitud que no coincide con ninguna regla de ruta de URL, por lo que utiliza la regla de ruta predeterminada.
  • UNKNOWN indica un error interno.
backend_target_name cadena Nombre del backend seleccionado para gestionar la solicitud, en función de la regla de ruta del mapa de URLs o de la regla de ruta que coincida con la solicitud.
backend_target_type cadena Tipo de backend de destino (BACKEND_SERVICE o UNKNOWN).
backend_name cadena Nombre del grupo de instancias o del NEG de backend.
backend_type cadena

El tipo de backend, que puede ser un grupo de instancias, un NEG o un valor desconocido.

Cloud Logging registra las solicitudes cuando el backend_type es UNKNOWN aunque el registro esté inhabilitado. Por ejemplo, si un cliente cierra la conexión con el balanceador de carga antes de que este pueda elegir un backend, backend_type se define como UNKNOWN y la solicitud se registra. Estos registros proporcionan información útil para depurar las solicitudes de cliente que se han cerrado porque el balanceador de carga no ha podido seleccionar un backend.

backend_scope cadena El ámbito del backend, que puede ser el nombre de una zona o de una región. Puede ser UNKNOWN siempre que backend_name sea desconocido.
backend_scope_type cadena El ámbito del backend (REGION/ZONE). Puede ser UNKNOWN cuando backend_name sea desconocido.
backend_target_cross_project_id Cadena El ID del proyecto del servicio o del segmento de backend de destino. Este campo solo está disponible si el recurso de destino del backend se crea en un proyecto distinto al proyecto en el que se crea el recurso url_map.

Registros de solicitudes de políticas de autorización

El objeto authz_info de la carga útil JSON de la entrada de registro del balanceador de carga contiene información sobre las políticas de autorización. Puedes configurar métricas basadas en registros para el tráfico permitido o denegado por estas políticas. Consulta más detalles del registro de políticas de autorización.

Campo Tipo Descripción
authz_info.policies[] objeto Lista de políticas que coinciden con la solicitud.
authz_info.policies[].name cadena El nombre de la política de autorización que coincide con la solicitud.

El nombre está vacío por los siguientes motivos:

  • Ninguna política de ALLOW coincide con la solicitud y esta se rechaza.
  • Ninguna política de DENY coincide con la solicitud y esta se permite.
authz_info.policies[].result enum El resultado puede ser ALLOWED o DENIED.
authz_info.policies[].details cadena Los detalles incluyen lo siguiente:
  • allowed_as_no_deny_policies_matched_request
  • denied_as_no_allow_policies_matched_request
  • denied_by_authz_extension
  • denied_by_cloud_iap
authz_info.overall_result enum El resultado puede ser ALLOWED o DENIED.

Ver los registros de la validación del certificado de cliente de mTLS

Para ver los errores registrados de las conexiones cerradas durante la validación del certificado de cliente TLS mutuo, sigue estos pasos.

Consola

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

    Ir a Explorador de registros

  2. Haz clic en el interruptor Mostrar consulta para habilitar el editor de consultas.

  3. Pega lo siguiente en el campo Consulta. Sustituye FORWARDING_RULE_NAME por el nombre de tu regla de reenvío.

    jsonPayload.statusDetails=~"client_cert"
    jsonPayload.@type="type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
    resource.labels.forwarding_rule_name=FORWARDING_RULE_NAME
    
  4. Haz clic en Realizar una consulta.

Supervisión

Los balanceadores de carga de aplicación internos exportan datos de monitorización a Monitoring.

Las métricas de monitorización se pueden usar para lo siguiente:

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

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

Ver métricas de Cloud Monitoring

Consola

Para ver las métricas de un recurso monitorizado con el explorador de métricas, haz lo siguiente:

  1. En la Google Cloud consola, ve a la página  Explorador de métricas:

    Ve al explorador de métricas.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. En la barra de herramientas de la Google Cloud consola, selecciona tu Google Cloud proyecto. En las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones.
  3. En el elemento Métrica, despliega el menú Seleccionar una métrica, introduce Internal Application Load Balancer Rule en la barra de filtros y, a continuación, usa los submenús para seleccionar un tipo de recurso y una métrica específicos:
    1. En el menú Recursos activos, selecciona Regla de balanceador de carga de aplicaciones interno.
    2. Para seleccionar una métrica, usa los menús Categorías de métricas activas y Métricas activas.
    3. Haz clic en Aplicar.
  4. Para añadir filtros que eliminen series temporales de los resultados de la consulta, usa el elemento Filter.

  5. Para combinar series temporales, usa los menús del elemento "Agregación". Por ejemplo, para mostrar el uso de la CPU de tus VMs en función de su zona, define el primer menú como Media y el segundo como zona.

    Todas las series temporales se muestran cuando el primer menú del elemento Agregación se define como Sin agregar. Los ajustes predeterminados del elemento Agregación se determinan en función del tipo de métrica que hayas seleccionado.

  6. En el caso de las cuotas y otras métricas que registran una muestra al día, haga lo siguiente:
    1. En el panel Visualización, defina el Tipo de widget como Gráfico de barras apiladas.
    2. Define el periodo en al menos una semana.

Definir políticas de alertas

Consola

Puedes crear políticas de alertas para monitorizar los valores de las métricas y recibir notificaciones cuando esas métricas incumplan una condición.

  1. En la Google Cloud consola, ve a la página  Alertas:

    Ve a Alertas.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.

  2. Si no has creado tus canales de notificación y quieres recibir notificaciones, haz clic en Editar canales de notificación y añade tus canales de notificación. Vuelve a la página Alertas después de añadir tus canales.
  3. En la página Alertas, selecciona Crear política.
  4. Para seleccionar la métrica, despliega el menú Seleccionar una métrica y, a continuación, haz lo siguiente:
    1. Para limitar el menú a las entradas relevantes, introduce Internal Application Load Balancer Rule en la barra de filtro. Si no hay resultados después de filtrar el menú, desactive el interruptor Mostrar solo recursos y métricas activos.
    2. En Tipo de recurso, selecciona Regla de balanceador de carga de aplicaciones interno.
    3. Seleccione una Categoría de métrica y una Métrica y, a continuación, Aplicar.
  5. Haz clic en Siguiente.
  6. Los ajustes de la página Configurar activador de alerta determinan cuándo se activa la alerta. Seleccione un tipo de condición y, si es necesario, especifique un umbral. Para obtener más información, consulta el artículo Crear políticas de alertas de umbral de métricas.
  7. Haz clic en Siguiente.
  8. Opcional: Para añadir notificaciones a tu política de alertas, haz clic en Canales de notificación. En el cuadro de diálogo, selecciona uno o más canales de notificación y, luego, haz clic en Aceptar.
  9. Opcional: Actualiza la duración del cierre automático de incidentes. Este campo determina cuándo cierra Monitoring los incidentes si no hay datos de métricas.
  10. Opcional: Haz clic en Documentación y añade la información que quieras incluir en las notificaciones.
  11. Haz clic en Nombre de la alerta y escribe el que quieras asignar a la política de alertas.
  12. Haz clic enCreate Policy (Crear política).
Para obtener más información, consulta el resumen de alertas.

Definir paneles de control de monitorización personalizados

Consola

Puede crear paneles de control de Monitoring personalizados con métricas de balanceadores de carga de aplicaciones internos:

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

    Ir a Monitoring

  2. Selecciona Paneles > Crear panel.

  3. Haz clic en Añadir gráfico.

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

  5. Seleccione métricas y filtros. En el caso de las métricas, el tipo de recurso es Balanceador de carga HTTP/S interno.

  6. Haz clic en Guardar.

Frecuencia de los informes de métricas y retención

Las métricas de los balanceadores de carga se exportan a Monitoring en lotes con una granularidad de 1 minuto. Los datos de monitorización se conservan durante seis (6) semanas. El panel de control proporciona análisis de datos en intervalos predeterminados de 1H (una hora), 6H (seis horas), 1D (un día), 1W (una semana) y 6W (seis semanas). Puedes solicitar un análisis manualmente en cualquier intervalo de entre 6 semanas y 1 minuto.

Monitorizar métricas

Las siguientes métricas de los balanceadores de carga de aplicaciones internos se registran en Monitoring:

Métrica FQDN Descripción
Número de solicitudes loadbalancing.googleapis.com/https/internal/request_count Número de solicitudes atendidas por el balanceador de carga de aplicaciones interno.
Número de bytes de solicitudes loadbalancing.googleapis.com/https/internal/request_bytes Número de bytes enviados como solicitudes de clientes al balanceador de carga de aplicaciones interno.
Número de bytes de respuesta loadbalancing.googleapis.com/https/internal/response_bytes Número de bytes enviados como respuestas desde el balanceador de carga HTTP(S) interno al cliente.
Latencias totales loadbalancing.googleapis.com/https/internal/total_latencies

Distribución de la latencia total. La latencia total es el tiempo en milisegundos que transcurre entre el primer byte de la solicitud recibida por el proxy y el último byte de la respuesta enviada por el proxy. Incluye el tiempo que tarda el proxy en procesar la solicitud, el tiempo que tarda la solicitud en enviarse del proxy al backend, el tiempo que tarda el backend en procesar la solicitud, el tiempo que tarda la respuesta en enviarse de vuelta al proxy y el tiempo que tarda el proxy en procesar la respuesta y enviarla al cliente.

No incluye el tiempo de ida y vuelta entre el cliente y el proxy. Además, las pausas entre solicitudes en la misma conexión que usan Connection: keep-alive no afectan a la medición. Esta medición suele reducirse al percentil 95 en las vistas de Cloud Monitoring.

Latencias de backend loadbalancing.googleapis.com/https/internal/backend_latencies

Distribución de la latencia del backend. La latencia del backend es el tiempo en milisegundos que transcurre entre el último byte de la solicitud enviada al backend y el último byte de la respuesta recibida por el proxy. Incluye el tiempo que tarda el backend en procesar la solicitud y el tiempo que tarda en enviar la respuesta al proxy.

Dimensiones de filtro de métricas

Las métricas se agregan para cada balanceador de carga de aplicaciones interno. Puede filtrar las métricas agregadas por las siguientes dimensiones.

Propiedad Descripción
BACKEND_SCOPE La Google Cloud zona o región del grupo de backend que ha atendido la solicitud del cliente, o una cadena especial para los casos en los que no se ha asignado el grupo de backend. Ejemplos: us-central1-a, europe-west1-b, asia-east1, UNKNOWN.
PROXY_REGION Región del balanceador de carga de aplicación interno, del cliente y del backend. Ejemplos: us-central1, europe-west1 o asia-east1.
BACK-END Nombre del grupo de instancias de backend o del NEG que ha atendido la solicitud del cliente.
BACKEND_TARGET Nombre del servicio de backend que ha atendido la solicitud del cliente.
MATCHED_URL_RULE La regla de ruta o de ruta de acceso del mapa de URLs que coincide con el prefijo de la solicitud HTTP(S) del cliente (hasta 50 caracteres).

La métrica Response code class fraction se admite en todo el balanceador de carga. No se admite más granularidad.

Siguientes pasos