Configurer la journalisation des requêtes

Cette page explique comment configurer la journalisation des requêtes pour Media CDN.

Activer les journaux

Logging est désactivé par défaut pour réduire la quantité de données stockée. Les journaux sont acheminés, filtrés et stockés dans Cloud Logging.

  • Activez la journalisation pour un service Media CDN spécifique:

    gcloud edge-cache services update YOUR_SERVICE \
       --enable-logging \
       --logging-sample-rate=1.0
    
  • Désactivez la journalisation:

    gcloud edge-cache services update YOUR_SERVICE \
       --no-enable-logging
    
  • Pour obtenir l'état actuel de journalisation d'un service:

    gcloud edge-cache services describe YOUR_SERVICE
    

    Le résultat ressemble à ce qui suit :

    ...
    logConfig:
     enable: true
     sampleRate: 1.0
    ...
    

Définir le taux d'échantillonnage des journaux

Pour de grands volumes de requêtes, il peut être préférable d'échantillonner les journaux plutôt que de journaliser chaque requête et de vous appuyer sur des métriques de surveillance et d'enquête proactives.

Pour n'ingérer et stocker les journaux que pour 10% de vos requêtes, définissez logConfig.sampleRate sur 0.1:

gcloud edge-cache services update YOUR_SERVICE \
    --enable-logging \
    --logging-sample-rate=0.1

Logging doit être activé pour modifier le taux d'échantillonnage.

Sauf indication contraire, le taux d'échantillonnage par défaut est de 0 (0%), ce qui signifie que chaque requête pour le service configuré est journalisée.

Journaux de requête

Pour interroger des journaux, vous pouvez utiliser l'explorateur de journaux dans la console Google Cloud ou Google Cloud CLI.

Pour afficher les journaux dans la console Google Cloud, filtrez le type de ressource sur Media CDN et (éventuellement) sur un nom de projet ou de service.

La requête de journalisation suivante affiche les journaux de tous vos services Media CDN:

resource.type="edgecache.googleapis.com/EdgeCacheRouteRule"

Pour filtrer les journaux associés à une ressource EdgeCacheService et à un projet spécifiques, étendez cette requête:

resource.type="edgecache.googleapis.com/EdgeCacheRouteRule"
resource.labels.resource_container="projects/12345678"
resource.labels.service_name="MY_PROJECT"

Pour rechercher des noms partiels ou utiliser des expressions régulières, consultez la section Comparaisons des langages de requêtes de journalisation.

Exemple : Identifier les défauts de cache (miss)

Une requête pour un objet peut résulter en un défaut de cache (miss), mais peut entraîner un remplissage de cache pour les raisons suivantes:

  • Valeur TTL (Time To Live) trop courte
  • Clé de cache trop spécifique.
  • Trop peu de requêtes pour justifier la mise en cache.

Pour identifier les défauts de cache, vous pouvez filtrer les journaux dans l'explorateur de journaux.

La requête de journalisation suivante affiche les requêtes pouvant être mises en cache (recherchées), mais qui nécessitent un remplissage à partir de l'origine :

resource.type="edgecache.googleapis.com/EdgeCacheRouteRule"
resource.labels.resource_container="projects/12345678"
resource.labels.service_name="MY_PROJECT"
jsonPayload.cacheStatus="miss"

Si vous devez filtrer par URL spécifique, filtrez sur le champ httpRequest.requestUrl:

httpRequest.requestUrl = "URL"

Pour filtrer sur une partie de l'URL, telle que le composant de chemin d'accès, utilisez l'opérateur has:

# `:` is the `has` comparison operator

httpRequest.requestUrl: "/videos/1381381_1080.mp4"
# You can use `OR` or `AND` to filter on multiple values

httpRequest.requestUrl: ("https://media-test.example.com/" OR "https://canary.example.net")

Pour en savoir plus sur la syntaxe complète de Logging pour la mise en correspondance et le filtrage, consultez Écrire des requêtes avancées à l'aide du langage de requête Logging.

Filtrer les journaux stockés

Pour filtrer les journaux avant de les stocker (par exemple, pour ne capturer que des champs pertinents afin de réduire le volume total de journaux à stocker et à interroger), vous pouvez configurer des filtres d'exclusion, qui vous permettent de définir une requête (filtre) qui inclut ou exclut des champs avant le stockage.

Vous pouvez également configurer plusieurs filtres, par exemple pour capturer tous les défauts de cache ou toutes les requêtes portant sur un nom d'hôte spécifique, et ne prélever qu'un échantillon de tous les journaux.

Acheminer les journaux

Media CDN s'intègre directement à Cloud Logging, ce qui vous aide à agréger et à acheminer vos journaux comme suit:

  • vers des destinations de stockage telles que Cloud Storage et BigQuery ;

  • Aux sujets Pub/Sub auxquels les destinations tierces peuvent s'abonner pour accéder aux journaux

Pour en savoir plus sur le routage des journaux depuis Logging, consultez la page Présentation du routage et du stockage.

Étape suivante