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 cliente para o recurso EdgeCacheService e solicitações do recurso EdgeCacheOrigin para a origem configurada para preenchimentos de cache. Os registros geralmente são enviados quase em tempo real. Isso inclui a capacidade de consulta no Logging e exportação para o Cloud Storage e o Pub/Sub.

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

  • Informações gerais exibidas 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.
  • Outros metadados sobre a solicitação no structPayload, incluindo:

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

Campos específicos do cache

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

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

Campo Valor de exemplo Detalhes
backendInitialLatency 0.126644940s

O tempo que o back-end leva para responder inicialmente a uma solicitação. É medida a partir do momento em que o CDN termina de encaminhar a solicitação para a origem até o momento em que o CDN começa a receber bytes de resposta da origem.

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

backendLatency 0.126666342s

O tempo que o back-end leva para responder totalmente a uma solicitação. É medida a partir do momento em que o CDN termina de encaminhar a solicitação para a origem até o momento em que o CDN recebe 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ários níveis de cache forem necessários para atender à solicitação devido a uma falha total ou parcial, a cadeia de locais de cache será fornecida. Por exemplo, del-234567, bom-345678, sin-456789, em que o cache mais à direita é o mais próximo do usuário.
cacheKeyFingerprint f63925711b0dd8a9ff861cd303774e6e

Uma impressão digital opaca da chave de cache. As solicitações que mapeiam para a mesma chave de cache, por exemplo, solicitações em que os parâmetros de consulta não estão incluídos ou 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 únicas, isso poderá indicar que as chaves de cache são muito específicas.

cacheMode USE_ORIGIN_HEADERS A cdnPolicy.cacheMode configurada 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 o escudo 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 ASN (número de sistema autônomo), 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 espelhe a variável de cabeçalho client_city.

clientRegionCode US

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

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

cmcd As chaves CMCD na solicitação do cliente que ajudam a informar a qualidade do serviço do lado do cliente. A CDN de mídia oferece suporte a 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 final), nor (próxima solicitação de objeto), nrr (próxima solicitação de intervalo), ot (tipo de objeto), rtp (taxa de transferência máxima solicitada), sf (formato de streaming), su (inicialização), tb (taxa de bits máxima) 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 o momento em que 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 o momento em que o proxy começa a receber bytes de solicitação até que ele termine de gravar a resposta para o 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 onde a resposta foi usada como proxy.
originalRequestId 19d92668-3948-49d8-9244-25f8252043e4 O identificador exclusivo atribuído à solicitação que gerou essa resposta. Preenchido apenas se for diferente de request_id para respostas em cache.
originIp O endereço IP usado para entrar em contato com o recurso EdgeCacheOrigin de onde a resposta foi usada como proxy.
proxyRegionCode US O país (ou região) em que o proxy está localizado. Esse é um código de região Unicode CLDR, como "US" ou "FR". Na maioria dos países, esses códigos correspondem diretamente a códigos ISO-3166-2.
proxyStatus Uma lista de proxies HTTP intermediários no caminho de resposta. O valor é definido pela RFC 9209. Isso corresponde à variável de cabeçalho dinâmico 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 do TLS ou do QUIC. O nome do host é convertido em letras minúsculas, e qualquer ponto à direita é removido.
tlsVersion TLS 1.3 Versão de TLS negociada entre o cliente e o CDN durante o handshake SSL. Os valores possíveis incluem TLS 1, TLS 1.1, TLS 1.2 e TLS 1.3.

Exemplo de entrada de registro

Confira a seguir um exemplo de entrada de registro para uma resposta enviada do 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 de registro, os registros podem ser amostrados ou filtrados 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 suas ferramentas de análise de registros.

Políticas de retenção

A geração de registros oferece suporte à configuração de políticas de retenção personalizadas, inclusive por coletor.

A seguir