Cada solicitud de Cloud CDN se registra en Cloud Logging. Para obtener información sobre cómo habilitar e inhabilitar el registro, consulta la información general sobre el registro y la monitorización de balanceadores de carga de aplicación externos y Cloud CDN.
Los registros de Cloud CDN están asociados al balanceador de carga de aplicaciones externo al que están conectados tus backends de Cloud CDN. Los registros de Cloud CDN se indexan primero por regla de reenvío y, después, por mapa de URLs.
Para ver los registros de Cloud CDN, siga estos pasos.
Consola
- En la Google Cloud consola, ve a la página Explorador de registros.
- En el menú Recurso, selecciona Balanceador de carga HTTP de Cloud.
- Para ver los registros, sigue estos pasos:
- Ver todos los registros: selecciona el menú Recurso y, a continuación, Todas las reglas de reenvío.
- Ver los registros de una regla de reenvío: selecciona el nombre de la regla de reenvío en la lista de reglas de reenvío.
- Ver los registros de un mapa de URLs usado por una regla de reenvío: selecciona una regla de reenvío y, a continuación, un mapa de URLs.
Solicitud atendida desde el backend
Para confirmar que una solicitud se sirve desde un backend con Cloud CDN habilitado, hay tres campos principales que debes buscar, como se indica a continuación:
httpRequest
: Cuando una solicitud se sirve desde un backend, puedes ver que la caché se rellena y confirmar la URL de la solicitud.cacheFillBytes:
NUMBER_OF_BYTEScacheLookup: True
requestURL
: URL
jsonPayload
: en el campostatusDetails
, puedes confirmar que el backend ha proporcionado la respuesta.statusDetails: "response_sent_by_backend"
Solicitud servida desde la caché
La siguiente entrada de registro muestra un acierto de caché.
{ insertId: "1oek5rg3l3fxj7" jsonPayload: { @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry" cacheId: "SFO-fbae48ad" statusDetails: "response_from_cache" } httpRequest: { requestMethod: "GET" requestUrl: "http://LOAD_BALANCER_IP_ADDRESS/static/us/three-cats.jpg" requestSize: "577" status: 304 responseSize: "157" userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36" remoteIp: "CLIENT_IP_ADDRESS" cacheHit: true cacheLookup: true } resource: { type: "http_load_balancer" labels: { zone: "global" url_map_name: "URL_MAP_NAME" forwarding_rule_name: "FORWARDING_RULE_NAME" target_proxy_name: "TARGET_PROXY_NAME" backend_service_name: "" project_id: "PROJECT_ID" } } timestamp: "2020-06-08T23:41:30.078651Z" severity: "INFO" logName: "projects/PROJECT_ID/logs/requests" trace: "projects/PROJECT_ID/traces/241d69833e64b3bf83fabac8c873d992" receiveTimestamp: "2020-06-08T23:41:30.588272510Z" spanId: "7b6537d3672e08e1" }
Qué se registra
Además de la información general que contienen la mayoría de los registros, como la gravedad, el ID del proyecto, el número del proyecto y la marca de tiempo, los registros del balanceador de carga de aplicaciones externo y de Cloud CDN contienen lo siguiente:
El campo de registro HttpRequest, que registra el código de estado HTTP, los bytes devueltos y si se ha realizado una búsqueda en caché o se ha rellenado la caché.
El campo
jsonPayload.cacheId
, que indica la ubicación y la instancia de caché desde las que se ha enviado la respuesta de caché. Por ejemplo, una respuesta de caché servida desde una caché de Ámsterdam tendría un valor de cacheId deAMS-85e2bd4b
, dondeAMS
es el código IATA y85e2bd4b
es un identificador opaco de la instancia de caché (porque algunas ubicaciones de Cloud CDN tienen varias cachés independientes).Los campos
statusDetails
ycacheDetail
jsonPayload
.
Puedes filtrar por los siguientes campos para determinar el estado de acierto, fallo o revalidación de la caché de una solicitud atendida por Cloud CDN:
Hit de caché
jsonPayload.statusDetails=("response_from_cache" OR "byte_range_caching")
o
httpRequest.cacheHit=true
httpRequest.cacheValidatedWithOriginServer!=true
Cache Hit Validated With Origin Server (Acierto de caché validado con el servidor de origen)
jsonPayload.statusDetails="response_from_cache_validated"
o
httpRequest.cacheHit=true
httpRequest.cacheValidatedWithOriginServer=true
Fallo de caché
jsonPayload.statusDetails="response_sent_by_backend"
o
httpRequest.cacheHit!=true
httpRequest.cacheLookup=true
También puedes observar el estado de la caché del lado del cliente configurando un encabezado de respuesta personalizado con cdn_cache_status
.
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 del registro.
La codificación UTF-8 se aplica obligatoriamente en estos campos. Los caracteres que no son caracteres UTF-8 se sustituyen por signos de interrogación.
Cuando Cloud CDN responde a una solicitud de un cliente iniciando solicitudes de validación o solicitudes de intervalo de bytes, omite el campo serverIp
de la entrada de registro de Cloud Logging correspondiente a la solicitud del cliente. Esto se debe a que Cloud CDN puede enviar solicitudes a varias direcciones IP de servidor en respuesta a una sola solicitud de cliente.
Cada solicitud iniciada por Cloud CDN crea una entrada de registro de Cloud Logging. La entrada de registro resultante contiene un campo parentInsertId
dentro de jsonPayload
. Puede usar este campo para identificar el insertId
de la entrada de registro de la solicitud de un solo cliente que ha provocado que Cloud CDN inicie la solicitud de validación o la solicitud de intervalo de bytes. Además, la entrada de registro identifica a Cloud CDN como user-agent.
Monitorizar Cloud CDN
Cloud CDN exporta datos de monitorización a Cloud Monitoring. La monitorización se usa para supervisar el estado de un despliegue de Cloud CDN.
Cloud Monitoring proporciona un conjunto de definiciones de paneles de control disponibles en GitHub en el repositorio monitoring-dashboard-samples como archivos JSON. En el directorio dashboards/networking
, hay un panel de control específico de Cloud CDN llamado cloud-cdn-monitoring.json
. Sube este panel de control personalizado a Monitoring
siguiendo las instrucciones de
Instalar paneles de control de ejemplo.
Monitorizar consultas de ejemplo de Cloud CDN
Monitoring te permite crear paneles de control personalizados. Los paneles de control pueden usar cualquiera de las métricas de monitorización de los balanceadores de carga de aplicación externos. A continuación, se muestran algunos ejemplos de fragmentos de PromQL que puedes pegar en paneles de control de Monitoring personalizados.
Número de bytes de las solicitudes desglosado por resultado de caché
Esta consulta se centra en los backends que tienen habilitado Cloud CDN, lo que se hace incluyendo cache_result!="DISABLED"
.
sum by (cache_result) ( rate({"loadbalancing.googleapis.com/https/response_bytes_count", monitored_resource="https_lb_rule", cache_result!="DISABLED"}[1m]) )
Latencia TCP de ida y vuelta del cliente en el percentil 95 de un backend de destino específico
Esta consulta incluye backend_target_name="example-backend"
,
lo que reduce el tráfico al backend example-backend
. Un backend puede ser un segmento de Cloud Storage, un grupo de VMs de Compute Engine o un backend externo.
histogram_quantile( 0.95, sum by (proxy_continent, le) ( rate({"loadbalancing.googleapis.com/https/frontend_tcp_rtt_bucket", monitored_resource="https_lb_rule", backend_target_name="example-backend" }[1m]) ) )
Número de solicitudes desglosado por clase de código de respuesta de los backends habilitados para Cloud CDN
Esta consulta desglosa el tráfico por clase de código de respuesta (2xx, 3xx, 4xx y 5xx) para ayudar a separar los éxitos de los clientes, los errores de los clientes y los errores del servidor.
sum by (response_code_class) ( count_over_time( {"loadbalancing.googleapis.com/https/request_count", monitored_resource="https_lb_rule", cache_result!="DISABLED" }[1h] ) )
Número de solicitudes desglosado por país de origen
Esta consulta muestra el tráfico desglosado por país de origen, que se determina mediante las direcciones IP de los clientes.
sum by (client_country) ( rate({"loadbalancing.googleapis.com/https/request_count", monitored_resource="https_lb_rule"}[1m]) )
Siguientes pasos
Para obtener más información sobre el registro, incluido cómo exportar registros a BigQuery, Pub/Sub o Cloud Storage, y cómo configurar métricas basadas en registros para la monitorización y las alertas, consulta la documentación de Cloud Logging.
Para obtener información sobre los campos incluidos en la entrada de registro
httpRequest
, consultaHttpRequest
.