Cada solicitud de Cloud CDN se registra en Cloud Logging. Para obtener información sobre cómo habilitar e inhabilitar el registro, consulta el balanceador de cargas de aplicaciones externo. y Cloud CDN, registros y Descripción general de Monitoring
Los registros de Cloud CDN están asociados con el balanceador de cargas de aplicaciones externo al que Los backends de Cloud CDN están conectados. Los registros de Cloud CDN se indexan primero mediante la regla de reenvío y, luego, mediante el mapa de URL.
Para ver los registros de Cloud CDN, sigue los pasos a continuación.
Console
- En la consola de Google Cloud, ve a la página Explorador de registros.
- En el menú Recurso, selecciona Balanceador de cargas de HTTP de Cloud.
- Visualiza los registros de la siguiente manera:
- Ver todos los registros: Selecciona el menú Recurso y, luego, Todas las reglas de reenvío.
- Ver los registros de una regla de reenvío: Selecciona el nombre de la regla de reenvío de la lista de reglas de reenvío.
- Visualiza los registros de un mapa de URL usado por una regla de reenvío: Selecciona un regla de reenvío y, luego, selecciona un mapa de URL.
Solicitud entregada desde el backend
A fin de confirmar que una solicitud se entrega desde un backend con Cloud CDN habilitado, debes buscar tres campos principales, como los siguientes:
httpRequest
: Cuando se entrega una solicitud desde un backend, puedes ver que la caché está llena y confirmar la URL de la solicitud.cacheFillBytes:
NUMBER_OF_BYTEScacheLookup: True
requestURL
: URL
jsonPayload
: En el campostatusDetails
, puedes confirmar que el backend entregó la respuesta.statusDetails: "response_sent_by_backend"
Solicitud entregada desde la caché
En la siguiente entrada de registro, se 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 se encuentra en la mayoría de los registros, como la gravedad, el ID del proyecto, el número y la marca de tiempo del proyecto, Balanceador de cargas de aplicaciones externo y Cloud CDN registros contienen lo siguiente:
El registro HttpRequest que captura el código de estado HTTP, los bytes mostrados y si un Se realizó una búsqueda en caché o se completó el llenado de caché.
El campo
jsonPayload.cacheId
, que indica la ubicación y la instancia de caché desde la que se entregó la respuesta de caché. Por ejemplo, una respuesta almacenada en caché que se entrega desde una caché en Ámsterdam tendrá un valor de caché deAMS-85e2bd4b
, en el queAMS
es el código IATA y85e2bd4b
es un identificador opaco de la instancia de caché (porque algunas ubicaciones de Cloud CDN tienen varias caché discretas)Los campos
statusDetails
ycacheDetail
dejsonPayload
.
Puedes filtrar los siguientes campos para determinar el estado de acierto, error o revalidación de caché de una solicitud que entrega Cloud CDN:
Acierto de caché
jsonPayload.statusDetails=("response_from_cache" OR "byte_range_caching")
o
httpRequest.cacheHit=true
httpRequest.cacheValidatedWithOriginServer!=true
Acierto de caché validado con el servidor de origen
jsonPayload.statusDetails="response_from_cache_validated"
o
httpRequest.cacheHit=true
httpRequest.cacheValidatedWithOriginServer=true
Error de caché
jsonPayload.statusDetails="response_sent_by_backend"
o
httpRequest.cacheHit!=true
httpRequest.cacheLookup=true
Los campos de registro de tipo booleano suelen aparecer solo si tienen el valor true
. Si un campo booleano tiene un valor false
, ese campo se omite del registro.
La codificación UTF-8 se aplica a estos campos. Los caracteres que no son caracteres UTF-8 se reemplazan con signos de interrogación.
Cuando Cloud CDN entrega una solicitud de cliente iniciando la validación
o solicitudes de rango de bytes, omite el campo serverIp
del
Entrada de registro de Cloud Logging para la solicitud del cliente. Esto se debe a que Cloud CDN puede enviar solicitudes a varias direcciones IP de servidores en respuesta a una sola solicitud del cliente.
Cada solicitud que inicia Cloud CDN crea una entrada de registro de Cloud Logging. La entrada de registro resultante contiene un campo parentInsertId
dentro de jsonPayload
. Puedes usar este campo a fin de identificar el insertId
de la entrada de registro para la única solicitud del cliente que requiere que Cloud CDN inicie la solicitud de validación o de rango de bytes. Además, la entrada de registro identifica a Cloud CDN como el usuario-agente.
Monitoring para Cloud CDN
Cloud CDN exporta los datos de supervisión a Cloud Monitoring. Monitoring se usa para supervisar el estado de una implementación de Cloud CDN.
Cloud Monitoring proporciona un conjunto de definiciones de panel disponibles en GitHub en el repositorio de monitoring-dashboard-samples como archivos JSON. En el archivo de herramientas de redes, hay un panel específico de Cloud CDN llamado cloud-cdn-monitoring.json
. Para subir este panel personalizado a Monitoring, sigue las instrucciones que se encuentran en Instala paneles de muestra.
Supervisa las consultas de ejemplo de Cloud CDN
Monitoring te permite crear paneles personalizados. Los paneles pueden usar cualquiera de las métricas de supervisión para balanceadores de cargas de aplicaciones externos. A continuación, se muestran algunos ejemplos de fragmentos de MQL que puedes pegar en paneles de Monitoring personalizados.
Recuento de bytes de solicitudes desglosados por resultado de caché
Esta consulta se centra en los backends que tienen Cloud CDN habilitado, lo que se incluye agregando filter (metric.cache_result
!= 'DISABLED')
.
fetch https_lb_rule | metric 'loadbalancing.googleapis.com/https/response_bytes_count' | filter (metric.cache_result != 'DISABLED') | align rate(1m) | every 1m | group_by [metric.cache_result], [value_response_bytes_count_aggregate: aggregate(value.response_bytes_count)]
Latencia de TCP de ida y vuelta del cliente al 95% para un destino de backend específico
Esta consulta incluye filter (resource.backend_target_name = 'example-backend')
, que reduce el tráfico al backend de example-backend
. Un backend puede ser un bucket de Cloud Storage, un grupo de VM de Compute Engine o un backend externo.
fetch https_lb_rule | metric 'loadbalancing.googleapis.com/https/frontend_tcp_rtt' | filter (resource.backend_target_name = 'example-backend') | group_by 1m, [value_frontend_tcp_rtt_aggregate: aggregate(value.frontend_tcp_rtt)] | every 1m | group_by [metric.proxy_continent], [value_frontend_tcp_rtt_aggregate_percentile: percentile(value_frontend_tcp_rtt_aggregate, 95)]
Recuento de solicitudes desglosado por clase de código de respuesta para los backends habilitados para Cloud CDN
Esta consulta divide el tráfico por clase de código de respuesta (2xx, 3xx, 4xx, 5xx) para ayudar a separar los éxitos del cliente, los errores del cliente y los errores del servidor.
fetch https_lb_rule | metric 'loadbalancing.googleapis.com/https/request_count' | filter (metric.cache_result != 'DISABLED') | group_by 1h, [row_count: row_count()] | every 1h | group_by [metric.response_code_class], [row_count_aggregate: aggregate(row_count)]
Recuento de solicitudes desglosado por país de origen
En esta consulta, se muestra el tráfico desglosado por país de origen, que se determina mediante direcciones IP de cliente.
fetch https_lb_rule | metric 'loadbalancing.googleapis.com/https/request_count' | align rate(1m) | every 1m | group_by [metric.client_country], [value_request_count_aggregate: aggregate(value.request_count)]
¿Qué sigue?
A fin de 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 supervisar y crear alertas, consulta la Documentación de Cloud Logging.
Para obtener información sobre los campos que se incluyen en la entrada de registro
httpRequest
, consultaHttpRequest
.