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 |
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 |
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: Full cache 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 |
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 |
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
- Para entender melhor como configurar métricas com base em registros para definir seus próprios valores de métricas com base nas solicitações registradas, consulte a Visão geral das métricas com base em registros.
- Para saber mais sobre os preços do Logging, consulte Preços do Google Cloud Observability.
- Para ler sobre como os registros de auditoria funcionam e como ativar e configurar registros de auditoria para a atividade do administrador, consulte a documentação dos Registros de auditoria do Cloud.