Cada solicitud de Cloud CDN se registra en Cloud Logging. Para obtener información sobre cómo habilitar o inhabilitar registros, consulta la descripción general del registro y la supervisión del balanceador de cargas de aplicaciones externo y de Cloud CDN.
Los registros para Cloud CDN están asociados con el balanceador de cargas de aplicaciones externo al que se vinculan tus backends de Cloud CDN. Los registros de Cloud CDN se indexan primero con la regla de reenvío y, luego, con el mapa de URLs.
Para ver los registros de Cloud CDN, sigue los pasos a continuación.
Consola
- En la consola de Google Cloud , accede a la página Explorador de registros.
- En el menú Recurso, selecciona Balanceador de cargas HTTP de Cloud.
- Consulta los registros de la siguiente manera:
- Consulta todos los registros: Selecciona el menú Recurso y, luego, Todas las reglas de reenvío.
- Consulta 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.
- Consulta los registros de un mapa de URLs que utiliza una regla de reenvío: Selecciona una regla de reenvío y, luego, un mapa de URLs.
Solicitud entregada desde el backend
Para 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: TruerequestURL: 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 de proyecto y la marca de tiempo, los registros del balanceador de cargas de aplicaciones externo y de Cloud CDN contienen la siguiente información:
Los campos de registro HttpRequest, que capturan el código de estado HTTP, los bytes que se devuelven y si se realizó una búsqueda o un relleno 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 queAMSes el código IATA y85e2bd4bes un identificador opaco de la instancia de caché (porque algunas ubicaciones de Cloud CDN tienen varias caché discretas)Los campos
statusDetailsycacheDetaildejsonPayload
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!=trueAcierto de caché validado con el servidor de origen
jsonPayload.statusDetails="response_from_cache_validated"o
httpRequest.cacheHit=true
httpRequest.cacheValidatedWithOriginServer=trueError de caché
jsonPayload.statusDetails="response_sent_by_backend"o
httpRequest.cacheHit!=true
httpRequest.cacheLookup=true
Como alternativa, puedes observar el estado de la caché desde el 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 un valor false, ese campo se omite del registro.
La codificación UTF-8 se aplica a estos campos. Los caracteres que no son UTF-8 se reemplazan por signos de interrogación.
Cuando Cloud CDN entrega una solicitud del cliente con el inicio
de solicitudes de validación o solicitudes de rango de bytes, omite el campo serverIp de la
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 datos de supervisión a Cloud Monitoring. Monitoring se usa para supervisar el estado de una implementación de Cloud CDN.
Cloud Monitoring brinda
paneles predefinidos
que están habilitados de forma predeterminada para obtener estadísticas rápidas sobre el estado y
el rendimiento del sistema. Monitoring también ofrece un conjunto de
paneles personalizados. Las
definiciones
de estos paneles personalizados están disponibles en
GitHub en el
repositorio monitoring-dashboard-samples
como archivos JSON. En el directorio dashboards/networking, hay un
panel personalizado 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.
Paneles predefinidos
Cloud Monitoring ofrece paneles predefinidos para Cloud CDN. Estos paneles muestran métricas clave que te permiten supervisar la distribución de tráfico y la eficacia de la caché sin necesidad de realizar una configuración manual.
Visualiza paneles predefinidos
Realiza los siguientes pasos para acceder a los paneles predefinidos:
En la consola de Google Cloud , ve a la página Cloud CDN.
Haz clic en el nombre del origen cuyos paneles deseas ver.
En la página Detalles del origen, haz clic en Monitoring.
Los paneles predefinidos aparecen de forma predeterminada.
Métricas en los paneles
Los paneles predefinidos brindan las siguientes métricas clave sobre tus orígenes de CDN:
Distribución del tráfico de clientes
Un mapa geográfico dinámico que muestra la fuente de las solicitudes de los clientes. Este mapa brinda una descripción general visual y global de dónde se origina el tráfico. Puedes ajustar el filtro de período para analizar los patrones de distribución de tráfico en plazos específicos.
Métricas principales
En la siguiente tabla, se describen las métricas principales que se muestran en el panel.
Métricas Descripción Solicitudes totales Es el recuento agregado de todas las solicitudes HTTP/HTTPS que procesó Cloud CDN, ya sea que se hayan entregado desde la caché o desde el servicio de backend de origen. El gráfico muestra el recuento de solicitudes a lo largo del tiempo. Salida de caché Es el volumen total de datos, en bytes, que se entregó desde el almacenamiento en caché perimetral de Cloud CDN. El gráfico de barras muestra el volumen de salida a lo largo del tiempo. Proporción de errores total Es el porcentaje de todas las solicitudes que generaron un código de estado de error 4xxo5xx. Esta métrica es un indicador principal del estado general del servicio.Proporción de error de 4xx Es el porcentaje de solicitudes que generaron un código de estado del lado del cliente. Estos son códigos 4xx, como 404 Not Foundo403 Forbidden. Estos errores indican problemas con el contenido solicitado o los permisos del cliente.Proporción de error de 5xx Es el porcentaje de solicitudes que generaron un código de estado del lado del servidor. Estos son códigos 5xx, como 502 Bad Gatewayo503 Service Unavailable. Estos errores indican problemas con el servicio de origen del backend o la configuración del balanceador de cargas.Tasa de aciertos de caché Es la proporción, expresada como porcentaje, de las solicitudes que se entregan directamente desde la caché de Cloud CDN en comparación con la cantidad total de solicitudes. Relleno de caché total Es el volumen total de datos, en bytes, recuperados del backend de origen y almacenados en la caché de Cloud CDN.
Paneles personalizados
Monitoring te permite crear paneles personalizados. Los paneles pueden usar cualquiera de las métricas de supervisión para los balanceadores de cargas de aplicaciones externos. A continuación, se muestran algunos ejemplos de fragmentos de PromQL 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, para lo que se debe incluir
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 de TCP de ida y vuelta del cliente al 95% para un destino de backend específico
Esta consulta incluye 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.
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])
)
)
Recuento de solicitudes desglosado por clase de código de respuesta para los backends habilitados por 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 y los errores del cliente, 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]
)
)
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 con direcciones IP del cliente.
sum by (client_country) (
rate({"loadbalancing.googleapis.com/https/request_count", monitored_resource="https_lb_rule"}[1m])
)
¿Qué sigue?
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 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.