Registro y supervisión de los complementos de Application Load Balancer y Cloud CDN

En esta página, se muestra cómo configurar y usar Cloud Logging y Cloud Monitoring con los complementos de Service Extensions para Cloud Load Balancing y Cloud CDN.

Logging

En esta sección, se describe el registro de los complementos del balanceador de cargas de aplicaciones. El registro es posible tanto desde la perspectiva del complemento como desde la del balanceador de cargas.

Mensajes de registro

Las extensiones de servicio admiten la generación de mensajes de registro durante la ejecución de tu complemento. El registro de grabación está inhabilitado de forma predeterminada. Para registrar los registros de un complemento, habilítalo cuando crees el complemento o lo actualices.

Los registros de registro del complemento se anotan con la siguiente información contextual:

  • Anotaciones de registro estándar, como la marca de tiempo y el nivel de registro
  • Es la identidad del complemento que generó el mensaje.
  • Es la devolución de llamada del complemento en la que se generó el mensaje de registro.
  • Es un identificador de seguimiento de requestId que ayuda a determinar el registro de solicitudes con el que se asocia un mensaje de registro.

Los registros pertinentes para las extensiones de servicio se encuentran en una de las siguientes categorías:

  • Mensajes de registro del complemento

    Se genera mediante una llamada de registro, como info!(...) para Rust, proxywasm.LogInfo(...) para Go o LOG_INFO para C++. Las extensiones de servicio exportan estos mensajes de registro a Cloud Logging. Puedes registrar los encabezados de solicitud y respuesta, y cualquier acción que haya realizado el complemento.

    Puedes ver estos mensajes con el servicio networkservices.googleapis.com.

  • Mensajes de registro de Cloud Load Balancing

    Puedes ver estos mensajes con el servicio loadbalancing.googleapis.com.

Registro desde la perspectiva del complemento

En esta sección, se describe el registro de Service Extensions desde la perspectiva del complemento.

Cómo habilitar el registro para un complemento

Las extensiones de servicio admiten la generación de mensajes de registro durante la ejecución de tu complemento. El registro de grabación está inhabilitado de forma predeterminada.

Para registrar los registros de un complemento, habilítalo cuando crees el complemento o lo actualices.

Para habilitar el registro de un complemento existente, usa el comando gcloud service-extensions wasm-plugins update:

gcloud service-extensions wasm-plugins update WASM_PLUGIN \
    --log-config=[LOG_CONFIG,...]

Reemplaza lo siguiente:

  • WASM_PLUGIN: Es el ID o el nombre completamente calificado del complemento.
  • LOG_CONFIG: Son las opciones de registro del complemento. Para habilitar el registro, configura la opción enable en true. Luego, especifica los siguientes detalles:

    • sample-rate: Es la tasa de muestreo de los registros de actividad como un valor entre 0 y 1. El valor 0 indica que no se almacenan mensajes de registro. El valor predeterminado 1 indica que se almacenan todos los mensajes de registro. Un valor de punto flotante entre 0.0 y 1.0 indica que se almacena un porcentaje de los mensajes de registro.
    • min-log-level: Es el nivel de gravedad mínimo de los mensajes de registro del complemento que se exportarán a Cloud Logging. El valor predeterminado es INFO.

Después de habilitar el registro para el complemento, puedes ver los mensajes que emiten las instrucciones de registro en el código del complemento en Cloud Logging.

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

Visualiza mensajes de registro de complementos

Para ver los registros, compila consultas en el Explorador de registros.

Puedes ver los registros de complementos como registros independientes de las Extensiones del servicio. En esta vista, cada mensaje de registro del complemento se registra en su propio registro y no se asocia automáticamente con la información del registro de solicitudes.

Estos mensajes de registro se encuentran en el registro networkservices.googleapis.com/wasm_plugin_activity con el tipo de recurso networkservices.googleapis.com/WasmPluginVersion.

El sistema también puede agregar mensajes de registro informativos a este registro. Por ejemplo, si se produce un error en un complemento cuando una invocación de complemento supera los límites de CPU o memoria, se registra un mensaje con la gravedad ERROR. Estos mensajes también se pueden ver en Ver y filtrar errores.

Ejemplos de registros de complementos

Considera una entrada de registro de ejemplo de las extensiones del servicio. El valor de message se pasa a la llamada LOG_INFO del complemento. El valor de severity depende del nivel de registro que se usa en la llamada de registro del complemento. En la sección labels, el valor de la API es HTTP_REQUEST_HEADER, lo que indica que la operación registrada es la devolución de llamada del complemento on_http_request_headers.

{
  "insertId": "65224aac-0000-24bd-a0e1-582429bd544c@a1",
  "jsonPayload": {
    "@type": "type.googleapis.com/google.cloud.networkservices.logging.v1.WasmPluginLogEntry",
    "metroIataCode": "ber",
    "proxyRegionCode": "DE",
    "message": "[add_header_plugin.cc:26]::onRequestHeaders() AddHeaderStreamContext::onRequestHeaders called",
    "requestId": "effc0311-6716-431b-9e2a-7586835fdff1"
  },
  "resource": {
    "type": "networkservices.googleapis.com/WasmPluginVersion",
    "labels": {
      "plugin_version": "prod-1",
      "resource_container": "projects/123456789",
      "location": "global",
      "plugin_name": "add-headers-plugin-prod-resource"
    }
  },
  "timestamp": "2023-05-10T03:05:43.317015458Z",
  "severity": "INFO",
  "labels": {
    "networkservices.googleapis.com/operation": "HTTP_REQUEST_HEADERS"
  },
  "logName": "projects/123456789/logs/networkservices.googleapis.com%2Fwasm_plugin_activity",
  "trace": "projects/123456789/traces/effc0311-6716-431b-9e2a-7586835fdff1",
  "receiveTimestamp": "2023-05-10T03:05:44.207265284Z"
}

Limitaciones para el registro

Los complementos se limitan a registrar hasta 16 KiB de datos de carga útil por solicitud HTTP del cliente. Este importe se divide entre varias llamadas de registro asociadas a una solicitud HTTP determinada. El límite solo se aplica al texto del mensaje de registro, no a los metadatos adicionales que las extensiones del servicio agregan al registro.

Por ejemplo, si una devolución de llamada on_http_request_headers realiza dos llamadas de registro con mensajes de 4 KiB cada una y, luego, una devolución de llamada on_http_response_headers intenta realizar tres llamadas de registro con mensajes de 4 KiB cada una para la misma solicitud HTTP, se descarta el tercer mensaje de registro. Se agrega un mensaje de registro para registrar la cantidad de mensajes de registro generados por el complemento que se descartaron.

Registro desde la perspectiva del balanceador de cargas

En esta sección, se describe el registro de Service Extensions desde la perspectiva del balanceador de cargas.

Habilita el registro en un servicio de backend

Puedes habilitar el registro para los complementos del balanceador de cargas de aplicaciones cuando creas un servicio. Para ello, habilita el registro en el servicio de backend que es el destino de una solicitud.

Para habilitar el registro del servicio de backend de destino, 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

Reemplaza lo siguiente:

  • BACKEND_SERVICE: el nombre del servicio de backend
  • RATE: Un valor de 0.0 a 1.0, en el que 0.0 significa que no se registra ninguna solicitud, y 1.0, que se registran todas las solicitudes. El valor predeterminado es 1.0. Este parámetro de configuración solo es efectivo cuando se usa con el parámetro enable-logging. Cuando omites enable-logging, el registro se inhabilita.
  • REGION: la región del backend
  • LOGGING_OPTIONAL_MODE: Habilita el registro para los campos opcionales en uno de estos modos:

    • INCLUDE_ALL_OPTIONAL incluye todos los campos opcionales.
    • EXCLUDE_ALL_OPTIONAL (opción predeterminada) para excluir todos los campos opcionales
    • CUSTOM incluye una lista personalizada de campos opcionales.
  • OPTIONAL_FIELDS: Una lista separada por comas de los campos opcionales cuando seleccionas el modo CUSTOM

Después de habilitar el registro en el servicio de backend, las solicitudes HTTP o HTTPS se registran con las solicitudes de registros de Cloud Logging.

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

Registra mensajes para un servicio de backend

En general, las entradas de registro del balanceador de cargas de aplicaciones contienen información útil para supervisar y depurar el tráfico HTTP o HTTPS. Las entradas de registro contienen los siguientes tipos de información:

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

Los registros de solicitudes para los balanceadores de cargas HTTP y HTTPS contienen un objeto service_extension_info en la carga útil de JSON de la entrada de registro del balanceador de cargas con la siguiente información:

Campo Tipo Descripción
backend_target_name cadena Es el nombre del destino de backend de la extensión.
backend_target_type cadena Es el tipo de destino de backend.
chain cadena Nombre de la cadena de extensión dentro del recurso de extensión de servicio que coincide con la solicitud.
extension cadena Nombre de la extensión dentro de la cadena de extensión.
grpc_status enum Es el estado más reciente en la transmisión de gRPC. Para obtener más información, consulta códigos de estado de gRPC.
per_processing_request_info array Es una lista de estadísticas de ProcessingRequest para las extensiones de ext_proc o estadísticas de CheckRequest para las extensiones de ext_authz que se producen en la transmisión de gRPC.
per_processing_request_info[].event_type enum Es el tipo de evento de ProcessingRequest. Puede ser uno de los siguientes: REQUEST_HEADERS, REQUEST_BODY, RESPONSE_HEADERS o RESPONSE_BODY.
per_processing_request_info[].latency duración Es la duración desde que se envía el primer byte del mensaje ProcessingRequest a la extensión hasta que se recibe el último byte del mensaje ProcessingResponse.
resource cadena Nombre del recurso de extensión

Supervisión

En esta sección, se describe cómo puedes usar los paneles de Cloud Monitoring para ver las métricas de los complementos del balanceador de cargas de aplicaciones que se configuran con extensiones de servicio. Puedes supervisar los complementos desde la perspectiva del complemento o del balanceador de cargas.

Supervisión desde la perspectiva de los complementos

En esta sección, se describe el monitoreo de Service Extensions desde la perspectiva de los complementos.

Para obtener información detallada sobre los tipos de métricas de las extensiones de servicio, consulta la página Métricas deGoogle Cloud .

Visualiza el panel de Monitoring de las extensiones de servicio

Para ver el panel de Supervisión de las extensiones de servicio, haz lo siguiente:

  1. En la consola de Google Cloud , ve a la página Extensiones de servicio.

    Ir a Extensiones del servicio

  2. Haz clic en la pestaña Complementos.
  3. Haz clic en el nombre de un complemento.
  4. En la página Detalles del complemento, haz clic en la pestaña Monitoring.
  5. En la página Monitoring, los gráficos de métricas muestran información que puede ayudarte a supervisar el rendimiento del complemento.

  6. Para ver las métricas de las operaciones del ciclo de vida del complemento, selecciona valores de la lista Filtro de operación. De forma predeterminada, se seleccionan los valores HTTP request header y HTTP response header.
  7. Para ver las métricas de una versión específica del complemento, selecciona un valor de la lista Filtro de versión del complemento. De forma predeterminada, se muestran las métricas de todas las versiones.
  8. Para cambiar el período para el que deseas ver los datos, selecciona un período predefinido en el selector de tiempo o haz clic en Personalizado y define una hora de inicio y de finalización. De forma predeterminada, el selector se establece en 1 day.

Métricas de complementos para las extensiones del servicio

Puedes supervisar las siguientes métricas de los complementos desde la perspectiva de las extensiones de servicio. Estas métricas tienen el prefijo networkservices.googleapis.com/wasm_plugin/. El prefijo se omitió en las entradas de la tabla.

Tipo de métrica Nombre visible
Clase, Tipo, Unidad
Descripción
invocation_count Recuento de invocaciones del complemento de Wasm
DELTAINT641
Es la cantidad de invocaciones del complemento durante el período seleccionado. Cada invocación de devolución de llamada del complemento se cuenta como una invocación independiente del complemento.
invocation_latencies Latencia de invocación del complemento de Wasm
DELTADISTRIBUTIONus
Es el tiempo de ejecución local del complemento, en milisegundos. La métrica incluye entradas delimitadas por etiquetas para cada devolución de llamada.
cpu/usage_times Uso de CPU normalizado del complemento de Wasm
DELTADISTRIBUTIONus{CPU}
Es el tiempo de uso de CPU de las invocaciones del complemento, en microsegundos.
memory/bytes_used Uso de memoria del complemento de Wasm
GAUGEDISTRIBUTIONBy
Memoria total asignada por las VMs del complemento de Wasm, en bytes.

Supervisión desde la perspectiva del balanceador de cargas

En esta sección, se describe la supervisión de Service Extensions para complementos desde la perspectiva del balanceador de cargas.

Visualiza el panel de Monitoring para Cloud Load Balancing

Los balanceadores de cargas de aplicaciones exportan datos de supervisión a Cloud Monitoring.

Usa 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

Para ver un panel predefinido, sigue estos pasos:

  1. En la consola de Google Cloud , ve a la página Descripción general de los paneles.

    Ir a Descripción general de los paneles

  2. En la sección Categorías, haz clic en GCP.
    • Para ver una lista de paneles de todos tus balanceadores de cargas, en la lista de Paneles de GCP, haz clic en el panel llamado Balanceadores de cargas de Google Cloud. Para ver el panel de un balanceador de cargas específico, ubica el balanceador de cargas en la lista y haz clic en su nombre.
    • Para ver los paneles predefinidos solo de tus balanceadores de cargas, selecciona el panel adecuado.

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 Cloud Monitoring.

Métricas del complemento para Cloud Load Balancing

Puedes supervisar las siguientes métricas para los complementos desde la perspectiva de Cloud Load Balancing.

Estas métricas tienen el prefijo loadbalancing.googleapis.com/. El prefijo se omite en las entradas de la tabla.

Tipo de métrica Nombre visible
Clase, Tipo, Unidad
Descripción
https/backend_request_count,
https/external/regional/backend_request_count,
https/internal/backend_request_count
Recuento de solicitudes de backend
DELTAINT641
Es la cantidad de veces que se llama a un complemento desde el balanceador de cargas de aplicaciones.
https/backend_request_bytes_count,
https/external/regional/backend_request_bytes_count,
https/internal/backend_request_bytes_count
Bytes de solicitudes de backend
DELTAINT64By
Cantidad de bytes enviados desde el balanceador de cargas al complemento.
https/backend_response_bytes_count,
https/external/regional/backend_response_bytes_count,
https/internal/backend_response_bytes_count
Bytes de respuesta del backend
DELTAINT64By
Es la cantidad de bytes que el balanceador de cargas recibe del backend de la extensión.

Cómo ver las métricas de los complementos

Para ver las métricas de un complemento específico, haz lo siguiente:

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

    Ir al Explorador de métricas

  2. En el elemento Métrica, expande el menú Seleccionar una métrica. A continuación, sigue estos pasos:

    1. En la lista de recursos, selecciona la regla del balanceador de cargas de aplicaciones adecuada.

    2. En la lista de categorías de métricas, selecciona Https.

    3. En la lista de métricas, selecciona una métrica de complemento.

    4. Haz clic en Aplicar.

  3. En el elemento Filter, haz lo siguiente:

    1. Selecciona la etiqueta backend_target_type y establece el valor en WASM_PLUGIN.

    2. Selecciona la etiqueta backend_target_name y establece el nombre del complemento como el valor.

Para obtener más información sobre los tipos de métricas del balanceador de cargas, consulta la sección loadbalancing de la página de métricas de Google Cloud .