Journaux et métriques pour la mise en cache

Chaque requête Cloud CDN est consignée dans Cloud Logging. Pour savoir comment activer et désactiver la journalisation, consultez la Présentation de la journalisation et de la surveillance de l'équilibreur de charge d'application externe et de Cloud CDN.

Les journaux de Cloud CDN sont associés à l'équilibreur de charge d'application externe auquel vos backends Cloud CDN sont rattachés. Les journaux Cloud CDN sont d'abord indexés par règle de transfert, puis par mappage d'URL.

Pour afficher les journaux Cloud CDN, procédez comme suit.

Console

  1. Dans la console Google Cloud , accédez à la page Explorateur de journaux.

    Accéder à l'explorateur de journaux

  2. Dans le menu Ressource, sélectionnez Équilibreur de charge HTTP cloud.
  3. Affichez les journaux comme suit :
    • Afficher tous les journaux : sélectionnez le menu Ressource, puis Toutes les règles de transfert.
    • Afficher les journaux d'une règle de transfert : sélectionnez le nom de la règle de transfert dans la liste des règles de transfert.
    • Afficher les journaux d'un mappage d'URL utilisé par une règle de transfert : sélectionnez une règle de transfert, puis un mappage d'URL.

Requête diffusée à partir du backend

Pour confirmer qu'une requête est diffusée à partir d'un backend compatible avec Cloud CDN, vous devez rechercher trois champs principaux, comme suit :

  • httpRequest : Lorsqu'une requête est diffusée à partir d'un backend, vous pouvez constater que le cache est rempli et vous pouvez confirmer l'URL de la requête.
    • cacheFillBytes: NUMBER_OF_BYTES
    • cacheLookup: True
    • requestURL : URL
  • jsonPayload : dans le champ statusDetails, vous pouvez confirmer que la réponse a été diffusée à partir du backend.
    • statusDetails: "response_sent_by_backend"

Requête diffusée à partir du cache

L'entrée de journal suivante montre un succès de cache).

 {
    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"
}

Contenu consigné

Outre les informations générales contenues dans la plupart des journaux, telles que la sévérité, l'ID de projet, le numéro de projet et le code temporel, les journaux d'équilibreur de charge d'application externe et de Cloud CDN contiennent les éléments suivants :

  • Le champ de journal HttpRequest, qui enregistre le code d'état HTTP, le nombre d'octets renvoyés et si des opérations de recherche dans le cache et/ou de remplissage de cache ont été effectuées.

  • Le champ jsonPayload.cacheId, qui indique l'emplacement et l'instance de cache à partir desquels la réponse de cache a été diffusée. Par exemple, une réponse de cache diffusée à partir d'un cache situé à Amsterdam aura une valeur "cacheId" de AMS-85e2bd4b, où AMS correspond au code IATA et 85e2bd4b est un identifiant opaque de l'instance de cache (car certains emplacements Cloud CDN possèdent plusieurs caches distincts).

  • Les champs statusDetails et cacheDetail de jsonPayload.

Vous pouvez filtrer ces champs pour déterminer l'état de succès (hit), de défaut (miss) ou de revalidation de cache d'une requête diffusée par Cloud CDN :

  • Succès de cache (hit)