Registro y supervisión de los complementos de Media CDN

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

Logging

En esta sección, se describen los registros de extensiones de servicio para los complementos de Media CDN y cómo puedes ver y correlacionar la información en los mensajes de registro.

Mensajes de registro

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

Los registros de complementos 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 requestId que ayuda a determinar el registro de solicitudes con el que está asociado un mensaje de registro.

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

  • Mensajes de registro de complementos

    Se genera con una llamada de registro, como info!(...) para Rust, proxywasm.LogInfo(...) para Go o LOG_INFO para C++. Service Extensions exporta 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 Media CDN

    Mensajes de registro de Media CDN para solicitudes HTTP a recursos de EdgeCacheService con un CdnEdgeExtension asociado. Estas son entradas de registro normales de Media CDN que puedes ver en el servicio edgecache.googleapis.com.

Habilita el registro para un complemento

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

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

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

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

Reemplaza lo siguiente:

  • WASM_PLUGIN: el ID o el nombre completamente calificado del complemento
  • LOG_CONFIG: Son las opciones de registro para el complemento. Para habilitar el registro, configura la opción enable como 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 los mensajes de registro no se almacenan. 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 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

Los registros se pueden ver creando consultas en el Explorador de registros.

Puedes ver los registros de complementos como registros independientes de extensiones de 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 de registro de la solicitud.

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

Es posible que el sistema también agregue mensajes de registro informativos a este registro. Por ejemplo, si hay una falla del complemento cuando una invocación de complemento supera los límites de CPU o memoria, se registra un mensaje de gravedad ERROR. Estos mensajes también se pueden ver en Visualiza y filtra errores.

También puedes ver los mensajes de registro correlacionados con los registros de solicitudes de Media CDN correspondientes en el Explorador de registros. Cuando ves los registros de solicitudes y expandes una entrada de registro de solicitud, los registros del complemento relacionados con la solicitud aparecen anidados en el registro de solicitud. Esta vista te ayuda a comprender los registros de complementos en el contexto de su solicitud asociada.

Muestras de registros

Considera una entrada de registro de ejemplo de Service Extensions. El valor de message se pasa a la llamada LOG_INFO del complemento. El valor de severity depende del nivel de registro que se use 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.networkactions.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": "networkactions.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": {
    "networkactions.googleapis.com/operation": "HTTP_REQUEST_HEADERS"
  },
  "logName": "projects/123456789/logs/networkactions.googleapis.com%2Fwasm_plugin_activity",
  "trace": "projects/123456789/traces/effc0311-6716-431b-9e2a-7586835fdff1",
  "receiveTimestamp": "2023-05-10T03:05:44.207265284Z"
}
La entrada de registro de Media CDN relacionada aparece de la siguiente manera. Los valores de requestId y trace en ambos mensajes de registro son los mismos.
{
  "insertId": "6c95cc54-0000-26ba-ba73-f403043c328c@a1",
  "jsonPayload": {
    "cacheMode": "USE_ORIGIN_HEADERS",
    "@type": "type.googleapis.com/google.cloud.edgecache.v1.EdgeCacheLogEntry",
        "serviceExtensionInfo": [
      {
        "serviceExtension": "projects/123456789/locations/global/cdnEdgeExtensions/my-cdn-edge-extension",
        "chain": "edge-plugin-chain",
        "extension": "auth-and-header-plugin",
        "grpcStatus": "OK",
        "processingRequests": [
          {
            "eventType": "RESPONSE_HEADERS",
            "processingEffect": "CONTENT_MODIFIED"
          }
        ]
      }
    ],
    "cacheKeyFingerprint": "f04d02bb12f2e79e",
    "proxyStatus": "Google-Edge-Cache",
    "clientCity": "Erlangen",
    "clientAsn": "8881",
    "origin": "example-origin",
    "cacheId": "ber",
    "tlsVersion": "NONE",
    "latency": "0.002840304s",
    "originIp": "142.250.145.128",
    "requestId": "effc0311-6716-431b-9e2a-7586835fdff1",
    "clientRegionCode": "DE",
    "originalRequestId": "7656c418-df7c-4ae5-9db5-4f247ec5a82c",
    "httpTtfb": "0.002814903s",
    "metroIataCode": "BER",
    "proxyRegionCode": "DE",
    "cacheStatus": "hit"
  },
  "httpRequest": {
    "requestMethod": "GET",
    "requestUrl": "https://example.com/image.jpg",
    "requestSize": "1631",
    "status": "200",
    "responseSize": "402907",
    "userAgent": "Wtrace",
    "remoteIp": "2001:1438:1:19::5",
    "protocol": "HTTP/1.1"
  },
  "resource": {
    "type": "edgecache.googleapis.com/EdgeCacheRouteRule",
    "labels": {
      "location": "global",
      "route_destination": "projects/123456789/locations/global/edgeCacheOrigins/example-origin",
      "matched_path": "/turing/",
      "route_type": "ORIGIN",
      "path_matcher_name": "routes",
      "resource_container": "projects/123456789",
      "service_name": "example-service"
    }
  },
  "timestamp": "2023-05-10T03:05:43.321347304Z",
  "logName": "projects/bdn-prober/logs/edgecache.googleapis.com%2Fedge_cache_request",
  "trace": "projects/1069774196212/traces/effc0311-6716-431b-9e2a-7586835fdff1",
  "receiveTimestamp": "2023-05-10T03:05:49.919781008Z"
}

Limitaciones

Los complementos se limitan a registrar hasta 16 KiB de datos de carga útil por solicitud HTTP del cliente. Este importe se divide en varias llamadas de registro asociadas con una solicitud HTTP determinada. El límite se aplica solo al texto del mensaje de registro, no a los metadatos adicionales que las extensiones de 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 quinto mensaje de registro. Se agrega un mensaje de registro para registrar la cantidad de mensajes de registro generados por el complemento que se descartaron.

Supervisión

En esta sección, se describe cómo puedes usar los paneles de Cloud Monitoring para ver las métricas de las extensiones de servicio de los complementos de Media CDN.

Para obtener información detallada sobre los tipos de métricas de Service Extensions, consulta la página Métricas de Google Cloud .

Visualiza el panel de Monitoring para las extensiones de servicio

Para ver el panel de Monitoring de Service Extensions, 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 Plugins.
  3. Haz clic en el nombre de un complemento.
  4. En la página Detalles del complemento, haz clic en la pestaña Supervisión.
  5. En la página Supervisión, 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 operaciones. 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 del 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 extensiones de servicio

Puedes supervisar las siguientes métricas para los complementos desde la perspectiva de Service Extensions. Estas métricas tienen el prefijo networkactions.googleapis.com/wasm_plugin/. El prefijo se omite 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
DELTA, INT64, 1
Es la cantidad de invocaciones del complemento durante el período seleccionado. Cada invocación de devolución de llamada del complemento cuenta como una invocación independiente.
invocation_latencies Latencia de invocación del complemento de Wasm
DELTA, DISTRIBUTION, us
Es el tiempo de ejecución local, en milisegundos, del complemento. 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
DELTA, DISTRIBUTION, us{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
GAUGE, DISTRIBUTION, By
Es la memoria total asignada por las VMs del complemento de Wasm, en bytes.

Métricas de supervisión de extensiones de servicio para Media CDN

Puedes supervisar las extensiones perimetrales de Media CDN desde la perspectiva de EdgeCacheService en el Explorador de métricas de Monitoring:

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

    Ir al Explorador de métricas

  2. Selecciona el recurso supervisado Extensión de servicio de Media CDN.

  3. Selecciona la categoría de métrica Extensión.

  4. Filtra por la etiqueta extension_service establecida en el nombre de tu complemento.

En la versión preliminar, puedes supervisar las siguientes métricas para las extensiones en Media CDN. Estas métricas tienen el prefijo networkactions.googleapis.com. El prefijo se omite en las entradas de la siguiente tabla.

En la siguiente tabla, se proporcionan el tipo de métrica, el nombre visible, la clase, el tipo, la unidad y la descripción de cada métrica.

Tipo de métrica Nombre visible
Clase, tipo, unidad
Descripción
extension/invocation_count Recuento de invocaciones de extensiones
DELTA, INT64, 1
Es la cantidad de invocaciones enviadas a la extensión.
extension/invocation_latencies Latencias de invocación de extensiones
DELTA, DISTRIBUTION, ms
La distribución calculada a partir de la latencia de cada invocación de extensión. Solo se aplica a las extensiones de texto destacado y no se admite para los complementos.
extension/sent_chunks_count Recuento de fragmentos enviados por la extensión
DELTA, INT64, 1
Solo se aplica a los eventos request_body y response_body. Es la cantidad de fragmentos de datos que se enviaron a la extensión.
extension/received_chunks_count Recuento de fragmentos recibidos por la extensión
DELTA, INT64, 1
Solo se aplica a los eventos request_body y response_body. Es la cantidad de fragmentos recibidos de la extensión.
extension/failed_open_count Invocaciones fallidas de la extensión con fail-open
DELTA, INT64, 1
La cantidad de veces que falló una invocación cuando el sistema se configuró para fail-open y se permitió que la solicitud continuara.
extension/mutation_rejections_count Recuento de rechazos de mutaciones de extensiones
DELTA, INT64, 1
La cantidad de invocaciones que solicitaron mutaciones de encabezado, cuerpo o final, pero se rechazaron. Los rechazos pueden ocurrir por varios motivos, como cuando la mutación no es válida o supera los límites de tamaño.
extension/sent_bytes_count Recuento de bytes enviados de la extensión
DELTA, INT64, By
Es la cantidad de bytes enviados a la extensión.
extension/received_bytes_count Recuento de bytes recibidos de la extensión
DELTA, INT64, By
Es la cantidad de bytes recibidos de la extensión.