Visão geral da geração de registros de solicitações

O Media CDN registra cada solicitação HTTP no Cloud Logging. Essas solicitações incluem solicitações de clientes para o recurso EdgeCacheService e solicitações do recurso EdgeCacheOrigin para a origem configurada para preenchimentos de cache. Em geral, os registros são entregues quase em tempo real. Isso inclui a possibilidade de ser consultado no Logging e exportável para o Cloud Storage e o Pub/Sub.

As entradas de registro contêm os seguintes tipos de informações:

  • Informações gerais mostradas na maioria dos registros do Google Cloud, como gravidade, ID do projeto, número do projeto e carimbo de data/hora.
  • Campos de registro HttpRequest.
  • Metadados adicionais sobre a solicitação no structPayload, incluindo o seguinte:

    • ASN do cliente
    • Dados de local do cliente
    • ID (cidade) dos caches usados para atender à resposta
    • Tempo até o primeiro byte (TTFB) e tempo até o último byte (TTLB), em milissegundos, para a resposta em nível HTTP
    • Nome do host do SNI do TLS
    • Versão de TLS usada
    • Informações de dados comuns do cliente de mídia (CMCD, na sigla em inglês)

Campos específicos do cache

O objeto jsonPayload de um registro do Media CDN contém metadados específicos de como o Media CDN exibe um objeto, se o objeto foi armazenado em cache e se há estados de erro encontrados.

Esses campos e valores de exemplo são mostrados na tabela a seguir.

Campo Valor de exemplo Detalhes
backendInitialLatency 0.126644940s

A Duration que o back-end usa para responder inicialmente a uma solicitação. Medida a partir do momento em que a CDN termina de fazer o proxy da solicitação para a origem até que ela comece a receber bytes de resposta da origem.

Esse campo só aparece nos registros de preenchimento de cache de um recurso EdgeCacheOrigin.

backendLatency 0.126666342s

A duração que o back-end leva para responder totalmente a uma solicitação. Medida a partir do momento em que a CDN terminou de fazer o proxy da solicitação para a origem até que ela receba a resposta completa do back-end.

Esse campo aparece apenas nos registros de preenchimento de cache de um recurso EdgeCacheOrigin.

cacheId maa-123456 O código IATA (aeroporto) da cidade mais próxima do cache e um identificador opaco da instância do cache. Se várias camadas de armazenamento em cache forem necessárias para atender à solicitação devido a uma ausência total ou parcial no cache, a cadeia de locais de cache será fornecida. Por exemplo, del-234567, bom-345678, sin-456789, em que o cache mais à direita está mais próximo do usuário.
cacheKeyFingerprint f63925711b0dd8a9ff861cd303774e6e

Uma impressão digital opaca da chave de cache. As solicitações mapeadas para a mesma chave de cache, por exemplo, aquelas em que os parâmetros de consulta não estão incluídos ou em que o host não está incluído, precisam ter a mesma impressão digital.

Se o número total de solicitações for semelhante ao número total de impressões digitais exclusivas, isso poderá indicar que as chaves de cache são muito específicas.

cacheMode USE_ORIGIN_HEADERS O cdnPolicy.cacheMode configurado na rota que correspondeu a essa solicitação.
cacheStatus

Cache hit: hit

Full cache miss: fetch, miss, miss

O status do cache em cada nó de cache entre o usuário e a proteção de origem, em que o valor mais à direita representa o cache mais próximo do usuário. Para mais informações sobre como interpretar esse campo, consulte Valores de status do cache.
clientAsn O número do sistema autônomo (ASN), com base no endereço IP do cliente conectado.
clientCity Mountain View

Nome da cidade de origem da solicitação, por exemplo, Mountain View, Califórnia.

Ele também pode ser adicionado aos cabeçalhos de solicitação e resposta e espelha a variável de cabeçalho client_city.

clientRegionCode US

O país (ou região) associado ao endereço IP do cliente. Este é um código de região Unicode CLDR, como US ou FR. Na maioria dos países, esses códigos correspondem diretamente aos códigos ISO-3166-2.

Ele também pode ser adicionado aos cabeçalhos de solicitação e resposta e espelha a variável de cabeçalho client_region.

cmcd As chaves CMCD na solicitação do cliente que ajudam a informar a qualidade de serviço do lado do cliente. O Media CDN é compatível com dados transmitidos por cabeçalhos de solicitação HTTP ou parâmetros de consulta e não registra valores para as seguintes chaves: dl (prazo), nor (próxima solicitação de objeto), nrr (próxima solicitação de intervalo), ot (tipo de objeto), rtp (capacidade máxima solicitada), sf (formato de streaming), su (inicialização), tb (maior taxa de bits) ou v (versão do CMCD).
enforcedSecurityPolicy A política de segurança de borda do Google Cloud Armor que se aplica à solicitação do cliente. Isso inclui informações adicionais sobre o nome da política, a prioridade e a ação tomada.
httpTtfb 0.157228207s A duração desde quando o proxy começa a receber bytes de solicitação até o primeiro byte da resposta ser enviado (não recebido).
latency 0.157415635s A duração desde quando o proxy começa a receber bytes de solicitação até terminar de gravar a resposta ao cliente.
location O cabeçalho Location na resposta.
metroIataCode MAA O código IATA (aeroporto) da cidade mais próxima do proxy.
origin O recurso EdgeCacheOrigin de que a resposta foi enviada por proxy.
originalRequestId 19d92668-3948-49d8-9244-25f8252043e4 O identificador exclusivo atribuído à solicitação que gerou essa resposta originalmente. Preenchido apenas se for diferente de request_id para respostas armazenadas em cache.
originIp O endereço IP usado para entrar em contato com o recurso EdgeCacheOrigin do qual a resposta foi encaminhada por proxy.
proxyRegionCode US O país (ou região) em que o proxy está localizado. Este é um código regional Unicode CLDR, como US ou FR. Na maioria dos países, esses códigos correspondem diretamente aos códigos ISO-3166-2.
proxyStatus Uma lista de proxies HTTP intermediários no caminho de resposta. O valor é definido pela RFC 9209 (link em inglês). Isso corresponde à variável de cabeçalho dinâmica proxy_status.
rangeHeader O cabeçalho Range na solicitação.
requestId 4bde6381-cd17-47e1-8c2a-1aaa424a1156 O identificador exclusivo atribuído à solicitação pelo proxy.
tlsCipherSuite 009C O pacote de criptografia negociado durante o handshake de TLS. O valor corresponde a quatro dígitos hexadecimais definidos pelo Registro do pacote de criptografia TLS da IANA. Por exemplo, 009C para TLS_RSA_WITH_AES_128_GCM_SHA256. Esse valor fica em branco para conexões de cliente não criptografadas.
tlsSniHostname Indicação do nome do servidor (conforme definido na RFC 6066), caso ele seja fornecido pelo cliente durante o handshake de TLS ou QUIC. O nome do host é convertido em letras minúsculas, e todos os pontos são removidos.
tlsVersion TLS 1.3 Versão de TLS negociada entre o cliente e o CDN durante o handshake de SSL. Os valores possíveis incluem TLS 1, TLS 1.1, TLS 1.2 e TLS 1.3.

Exemplo de entrada de registro

Veja a seguir um exemplo de entrada de registro para uma resposta exibida pelo cache:

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

É possível configurar a geração de registros de solicitações de algumas maneiras. Para reduzir o volume de registros e as cobranças gerais do Logging, é possível criar amostras ou filtrar os registros conforme necessário.

Também é possível encaminhar registros para o Pub/Sub, o Cloud Storage ou o BigQuery para análise no Google Cloud ou nas ferramentas de análise de registros atuais.

Políticas de retenção

O Logging é compatível com a configuração de políticas de retenção personalizadas, inclusive por coletor.

A seguir