Anfrageprotokollierung – Übersicht

Media CDN protokolliert jede HTTP-Anfrage in Cloud Logging. Dazu gehören clientseitige Anfragen an die EdgeCacheService-Ressource und Anfragen von der EdgeCacheOrigin-Ressource an den konfigurierten Ursprung für Cache-Füllungen. Logs werden in der Regel nahezu in Echtzeit gesendet. Dazu gehört, dass die Daten in Logging abgefragt und in Cloud Storage und Pub/Sub exportiert werden können.

Folgende Informationen sind in Ihnen enthalten:

  • Allgemeine Informationen, die in den meisten Google Cloud-Logs angezeigt werden, wie Wichtigkeit, Projekt-ID, Projektnummer und Zeitstempel.
  • HttpRequest-Logfelder
  • Zusätzliche Metadaten zur Anfrage innerhalb von structPayload, einschließlich:

    • ASN des Clients
    • Clientstandortdaten
    • ID (Stadt) der Caches, die zum Ausführen der Antwort verwendet werden
    • „Zeit bis zum ersten Byte“ (TTFB) und „Zeit bis zum letzten Byte“ (TTLB) in Millisekunden für die Antwort auf HTTP-Ebene
    • TLS SNI-Hostname
    • Verwendete TLS-Version
    • Informationen zu Common Media Client Data (CMCD)

Cache-spezifische Felder

Das jsonPayload-Objekt eines Media CDN-Logs enthält Metadaten, die angeben, wie Media CDN ein Objekt bereitstellt, ob das Objekt im Cache gespeichert wurde und welche Fehlerzustände aufgetreten sind.

Diese Felder sowie Beispielwerte sind in der folgenden Tabelle aufgeführt.

Feld Beispielwert Details
backendInitialLatency 0.126644940s

Die Dauer, die das Backend benötigt, um auf eine Anfrage zu antworten. Gemessen ab dem Zeitpunkt, an dem das CDN die Weiterleitung der Anfrage an den Ursprung beendet hat, bis das CDN beginnt, Antwortbytes vom Ursprung zu empfangen.

Dieses Feld erscheint in den Logs nur, wenn der Cache von einer EdgeCacheOrigin-Ressource gefüllt wird.

backendLatency 0.126666342s

Die Dauer, die das Backend benötigt, um vollständig auf eine Anfrage zu antworten. Gemessen ab dem Zeitpunkt, an dem das CDN die Weiterleitung der Anfrage an den Ursprung beendet hat, bis das CDN die vollständige Antwort vom Backend erhalten hat.

Dieses Feld erscheint in den Logs nur, wenn der Cache von einer EdgeCacheOrigin-Ressource gefüllt wird.

cacheId maa-123456 Der IATA-Code (Flughafencode) der dem Cache nächstgelegenen Stadt und eine intransparente Kennzeichnung der Cache-Instanz. Wenn mehrere Cache-Ebenen erforderlich sind, um die Anforderung aufgrund eines vollständigen oder teilweisen Cache-Fehlers zu bedienen, wird die Kette der Cache-Speicherorte angegeben, z. B. del-234567, bom-345678, sin-456789, wobei der Cache ganz rechts dem Nutzer am nächsten ist.
cacheKeyFingerprint f63925711b0dd8a9ff861cd303774e6e

Ein intransparenter Fingerabdruck des Cache-Schlüssels. Anfragen, die demselben Cache-Schlüssel zugeordnet sind, z. B. Anfragen, bei denen Suchparameter nicht enthalten sind oder nicht der Host enthalten ist, sollten denselben Fingerabdruck haben.

Wenn die Gesamtzahl der Anfragen der Gesamtzahl der Fingerabdrücke ähnelt, kann dies darauf hindeuten, dass Ihre Cache-Schlüssel zu spezifisch sind.

cacheMode USE_ORIGIN_HEADERS Der cdnPolicy.cacheMode, der auf der Route konfiguriert wurde, die dieser Anfrage entspricht.
cacheStatus

Cache hit: hit

Full cache miss: fetch, miss, miss

Der Cache-Status an jedem Cache-Knoten zwischen dem Nutzer und dem Ursprungsschild, wobei der Wert ganz rechts den Cache darstellt, der dem Nutzer am nächsten ist. Weitere Informationen zur Interpretation dieses Felds finden Sie unter Cache-Statuswerte.
clientAsn Die ASN (autonome Systemnummer), die auf der IP-Adresse des verbindenden Clients basiert.
clientCity Mountain View

Der Name der Stadt, aus der die Anfrage stammt, z. B. Mountain View, Kalifornien.

Er kann auch den Anfrage- und Antwortheadern hinzugefügt werden und spiegelt die Headervariable client_city wider.

clientRegionCode US

Das Land oder die Region, das bzw. die der IP-Adresse des Clients zugeordnet ist. Dies ist ein Unicode-CLDR-Regionscode wie US oder FR. Für die meisten Länder entsprechen diese Codes den ISO-3166-2-Codes.

Er kann auch den Anfrage- und Antwortheadern hinzugefügt werden und spiegelt die Headervariable client_region wider.

cmcd Die CMCD-Schlüssel in der Clientanfrage, die zur Bestimmung der clientseitigen Dienstqualität beitragen. Media CDN unterstützt Daten, die über HTTP-Anfrageheader oder Abfrageparameter übertragen werden, und protokolliert keine Werte für die folgenden Schlüssel: dl (Deadline), nor (nächste Objektanfrage), nrr (nächste Bereichsanfrage), ot (Objekttyp), rtp (angeforderter maximaler Durchsatz), sf (Streamingformat), su (Start), tb (höchste Bitrate) oder v (CMCD-Version).
enforcedSecurityPolicy Die Google Cloud Armor-Edge-Sicherheitsrichtlinie, die auf die Anfrage des Clients angewendet wurde. Dazu gehören zusätzliche Informationen über den Namen der Richtlinie, die Priorität und die ergriffene Maßnahme.
httpTtfb 0.157228207s Die Dauer ab dem Zeitpunkt, an dem der Proxy beginnt, Anfragebyte zu empfangen, bis das erste Byte der Antwort gesendet (nicht empfangen) wird.
latency 0.157415635s Die Dauer ab dem Zeitpunkt, an dem der Proxy beginnt, Anfragebytes zu empfangen, bis er die Antwort an den Client geschrieben hat.
location Der Header Location in der Antwort.
metroIataCode MAA Der IATA-Code (Flughafencode) der Stadt, die dem Proxy am nächsten liegt.
origin Die Ressource EdgeCacheOrigin, von der die Antwort weitergeleitet wurde.
originalRequestId 19d92668-3948-49d8-9244-25f8252043e4 Die eindeutige Kennung, die der Anfrage zugewiesen wurde, die ursprünglich diese Antwort erzeugt hat. Wird nur ausgefüllt, wenn sie sich von der request_id für im Cache gespeicherte Antworten unterscheidet.
originIp Die IP-Adresse, mit der die Ressource EdgeCacheOrigin kontaktiert wird, von der die Antwort weitergeleitet wurde.
proxyRegionCode US Das Land (oder die Region), in dem sich der Proxy befindet. Dies ist ein Unicode-CLDR-Regionscode wie US oder FR. Für die meisten Länder entsprechen diese Codes den ISO-3166-2-Codes.
proxyStatus Eine Liste der vermittelnden HTTP-Proxys im Antwortpfad. Der Wert ist in RFC 9209 definiert. Dies entspricht der dynamischen Headervariablen proxy_status.
rangeHeader Der Header Range in der Anfrage.
requestId 4bde6381-cd17-47e1-8c2a-1aaa424a1156 Die eindeutige Kennung, die der Anfrage vom Proxy zugewiesen ist.
tlsCipherSuite 009C Die Cipher Suite, die während des TLS-Handshakes ausgehandelt wird. Der Wert besteht aus vier Hexadezimalziffern, die von der IANA TLS Cipher Suite Registry definiert werden, z. B. 009C für TLS_RSA_WITH_AES_128_GCM_SHA256. Bei unverschlüsselten Clientverbindungen ist dieser Wert leer.
tlsSniHostname Angabe des Servernamens (wie in RFC 6066 definiert), falls vom Client während des TLS- oder QUIC-Handshake angegeben. Der Hostname wird in Kleinbuchstaben konvertiert und alle nachgestellten Punkte werden entfernt.
tlsVersion TLS 1.3 Die TLS-Version, die während des SSL-Handshakes zwischen dem Client und dem CDN ausgehandelt wird. Mögliche Werte sind TLS 1, TLS 1.1, TLS 1.2 und TLS 1.3.

Beispiel für einen Logeintrag

Im Folgenden finden Sie ein Beispiel für einen Logeintrag für eine Antwort, die aus dem Cache bereitgestellt wird:

{
  "insertId": "617fa16e-0000-2ac9-9993-d4f547fe67d4@a1",
  "jsonPayload": {
    "@type": "type.googleapis.com/google.cloud.edgecache.v1.EdgeCacheLogEntry",
    "tlsVersion": "TLS 1.3",
    "tlsCipherSuite": "009C", // hex digits for the cipher negotiated
    "cacheId": "maa-132eed13faa13",
    "clientAsn": "9299", // AS the client is associated with
    "origin": "example_origin",
    "clientRegionCode": "IN",
    "metroIataCode": "bom",
    "clientCity": "Mumbai", // City name, in English
    "latency": "0.005105200s",
    "proxyStatus": "Google-Edge-Cache",
    "httpTtfb": "0.005056080s",
    "cacheMode": "FORCE_CACHE_ALL",
    "cacheKeyFingerprint": "c360ac18849b6336",
    "cacheStatus": "hit,stale",
    "enforcedSecurityPolicy": {
      "outcome": "ACCEPT",
      "configuredAction": "ACCEPT",
      "name": "example_policy",
      "priority": 1000
    },
    "originalRequestId": "19d92668-3948-49d8-9244-25f8252043e5",
    "proxyRegionCode": "IN",
    "requestId": "4bde6381-cd17-47e1-8c2a-1aaa424a1156",
    "originIp": "74.125.128.128"
  },
  "httpRequest": {
    "requestMethod": "GET",
    "requestUrl": "https://example.com/image.jpg",
    "requestSize": "3545",
    "status": 200,
    "responseSize": "3716",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36",
    "remoteIp": "62.36.0.43",
    "protocol": "HTTP/2"
  },
  "resource": {
    "type": "edgecache.googleapis.com/EdgeCacheRouteRule",
    "labels": {
      "matched_path": "/",
      "path_matcher_name": "routes",
      "service_name": "example_service",
      "resource_container": "projects/123456789",
      "location": "global",
      "route_destination": "projects/123456789/locations/global/edgeCacheOrigins/example_origin",
      "route_type": "ORIGIN"
    }
  },
  "timestamp": "2022-11-19T00:24:13.695328200Z",
  "logName": "projects/my-project/logs/edgecache.googleapis.com%2Fedge_cache_request",
  "receiveTimestamp": "2022-11-19T00:24:16.715871645Z"
}

Es gibt mehrere Möglichkeiten, das Anfrage-Logging zu konfigurieren. Sie können die Logs optional nach Bedarf erfassen oder filtern, um das Logvolumen und die allgemeinen Logging-Gebühren zu reduzieren.

Sie können Logs auch zur Analyse in Google Cloud oder mit Ihren vorhandenen Log-Analysetools an Pub/Sub, Cloud Storage oder BigQuery weiterleiten.

Aufbewahrungsrichtlinien

Logging unterstützt die Festlegung benutzerdefinierter Aufbewahrungsrichtlinien, auch auf einer Pro-Senke-Basis.

Nächste Schritte