Nesta página, mostramos como configurar e usar o Cloud Logging e o Cloud Monitoring com plug-ins de extensões de serviço para o Media CDN.
Logging
Nesta seção, descrevemos os registros das extensões de serviço para plug-ins do Media CDN e como visualizar e correlacionar as informações nas mensagens de registro.
Mensagens de registro
As extensões de serviço oferecem suporte à geração de mensagens de registro durante a execução do plug-in. A gravação de registros está desativada por padrão. Para registrar os registros de um plug-in, ative-o ao criar o plug-in ou atualizá-lo.
Os registros de plug-in são anotados com as seguintes informações contextuais:
- Anotações de registro padrão, como carimbo de data/hora e nível de registro.
- A identidade do plug-in que gerou a mensagem.
- O callback do plug-in em que a mensagem de registro foi gerada.
- Um identificador de trace
requestIdque ajuda a determinar o registro de solicitação ao qual uma mensagem de registro está associada.
Os registros pertinentes às Extensões de Serviço estão em uma das seguintes categorias:
Mensagens de registro do plug-in
Gerada por uma chamada de registro, como
info!(...)para Rust,proxywasm.LogInfo(...)para Go ouLOG_INFOpara C++. As extensões de serviço exportam essas mensagens de registro para o Cloud Logging. É possível registrar cabeçalhos de solicitação e resposta e todas as ações realizadas pelo plug-in.É possível ver essas mensagens usando o serviço
networkservices.googleapis.com.Mensagens de registro do Media CDN
Mensagens de registro do Media CDN para solicitações HTTP para recursos
EdgeCacheServicecom umCdnEdgeExtensionassociado. Essas são entradas de registro regulares do Media CDN que podem ser visualizadas no serviçoedgecache.googleapis.com.
Ativar a geração de registros para um plug-in
As extensões de serviço oferecem suporte à geração de mensagens de registro durante a execução do plug-in. A gravação de registros está desativada por padrão.
Para registrar os registros de um plug-in, ative-o ao criar o plug-in ou atualizá-lo.
Para ativar a geração de registros em um plug-in, use o
comando gcloud beta service-extensions wasm-plugins update:
gcloud beta service-extensions wasm-plugins update WASM_PLUGIN \
--log-config=[LOG_CONFIG,...]
Substitua:
WASM_PLUGIN: o ID ou o nome totalmente qualificado do plug-inLOG_CONFIG: opções de geração de registros para o plug-in. Para ativar a geração de registros, defina a opçãoenablecomotrue. Em seguida, especifique os seguintes detalhes:sample-rate: a taxa de amostragem dos registros de atividades como um valor entre0e1. O valor0indica que as mensagens de registro não são armazenadas. O valor padrão1indica que todas as mensagens de registro são armazenadas. Um pontuação flutuante entre0.0e1.0indica que uma porcentagem das mensagens de registro é armazenada.min-log-level: o nível mínimo de gravidade das mensagens de registro do plug-in a serem exportadas para o Cloud Logging. O valor padrão éINFO.
Para ver os registros, no console do Google Cloud , acesse a página Análise de registros.
Ver mensagens de registro
Para ver os registros, crie consultas na Análise de Registros.
É possível ver os registros de plug-ins como registros independentes de extensões de serviço. Nessa visualização, cada mensagem de registro do plug-in é registrada no próprio registro e não é associada automaticamente às informações de registro de solicitação.
Essas mensagens de registro estão no registro networkactions.googleapis.com/wasm_plugin_activity com o tipo de recurso networkactions.googleapis.com/WasmPluginVersion.
O sistema também pode adicionar mensagens de registro informativas a esse registro.
Por exemplo, se houver uma falha de plug-in quando uma invocação de plug-in
exceder os limites de CPU ou memória, uma mensagem de gravidade ERROR será registrada. Essas
mensagens também podem ser vistas em Visualizar e filtrar erros.
Também é possível ver mensagens de registro correlacionadas com os registros de solicitação do Media CDN correspondentes na Análise de registros. Ao visualizar os registros de solicitação, quando você expande uma entrada de registro de solicitação, os registros do plug-in relacionados à solicitação aparecem aninhados no registro de solicitação. Essa visualização ajuda a entender os registros de plug-ins no contexto da solicitação associada.
Exemplos de registros
Considere um exemplo de entrada de registro de extensões de serviço. O valor de
message é transmitido para a chamada LOG_INFO do plug-in. O valor severity
depende do nível de registro usado na chamada de registro do plug-in. Na seção labels,
o valor da API é HTTP_REQUEST_HEADER, o que indica que a operação
registrada é o callback do plug-in on_http_request_headers.
{
"insertId": "65224aac-0000-24bd-a0e1-582429bd544c@a1",
"jsonPayload": {
"@type": "type.googleapis.com/google.cloud.networkactions.logging.v1.WasmPluginLogEntry",
"metroIataCode": "ber",
"proxyRegionCode": "DE",
"message": "[add_header_plugin.cc:26]::onRequestHeaders() AddHeaderStreamContext::onRequestHeaders called",
"requestId": "effc0311-6716-431b-9e2a-7586835fdff1"
},
"resource": {
"type": "networkactions.googleapis.com/WasmPluginVersion",
"labels": {
"plugin_version": "prod-1",
"resource_container": "projects/123456789",
"location": "global",
"plugin_name": "add-headers-plugin-prod-resource"
}
},
"timestamp": "2023-05-10T03:05:43.317015458Z",
"severity": "INFO",
"labels": {
"networkactions.googleapis.com/operation": "HTTP_REQUEST_HEADERS"
},
"logName": "projects/123456789/logs/networkactions.googleapis.com%2Fwasm_plugin_activity",
"trace": "projects/123456789/traces/effc0311-6716-431b-9e2a-7586835fdff1",
"receiveTimestamp": "2023-05-10T03:05:44.207265284Z"
}
requestId e trace nas duas mensagens de registro são os mesmos.
{
"insertId": "6c95cc54-0000-26ba-ba73-f403043c328c@a1",
"jsonPayload": {
"cacheMode": "USE_ORIGIN_HEADERS",
"@type": "type.googleapis.com/google.cloud.edgecache.v1.EdgeCacheLogEntry",
"serviceExtensionInfo": [
{
"serviceExtension": "projects/123456789/locations/global/cdnEdgeExtensions/my-cdn-edge-extension",
"chain": "edge-plugin-chain",
"extension": "auth-and-header-plugin",
"grpcStatus": "OK",
"processingRequests": [
{
"eventType": "RESPONSE_HEADERS",
"processingEffect": "CONTENT_MODIFIED"
}
]
}
],
"cacheKeyFingerprint": "f04d02bb12f2e79e",
"proxyStatus": "Google-Edge-Cache",
"clientCity": "Erlangen",
"clientAsn": "8881",
"origin": "example-origin",
"cacheId": "ber",
"tlsVersion": "NONE",
"latency": "0.002840304s",
"originIp": "142.250.145.128",
"requestId": "effc0311-6716-431b-9e2a-7586835fdff1",
"clientRegionCode": "DE",
"originalRequestId": "7656c418-df7c-4ae5-9db5-4f247ec5a82c",
"httpTtfb": "0.002814903s",
"metroIataCode": "BER",
"proxyRegionCode": "DE",
"cacheStatus": "hit"
},
"httpRequest": {
"requestMethod": "GET",
"requestUrl": "https://example.com/image.jpg",
"requestSize": "1631",
"status": "200",
"responseSize": "402907",
"userAgent": "Wtrace",
"remoteIp": "2001:1438:1:19::5",
"protocol": "HTTP/1.1"
},
"resource": {
"type": "edgecache.googleapis.com/EdgeCacheRouteRule",
"labels": {
"location": "global",
"route_destination": "projects/123456789/locations/global/edgeCacheOrigins/example-origin",
"matched_path": "/turing/",
"route_type": "ORIGIN",
"path_matcher_name": "routes",
"resource_container": "projects/123456789",
"service_name": "example-service"
}
},
"timestamp": "2023-05-10T03:05:43.321347304Z",
"logName": "projects/bdn-prober/logs/edgecache.googleapis.com%2Fedge_cache_request",
"trace": "projects/1069774196212/traces/effc0311-6716-431b-9e2a-7586835fdff1",
"receiveTimestamp": "2023-05-10T03:05:49.919781008Z"
}
Limitações
Os plug-ins são limitados ao registro de até 16 KiB de dados de payload por solicitação HTTP do cliente. Esse valor é dividido entre várias chamadas de geração de registros associadas a uma determinada solicitação HTTP. O limite se aplica apenas ao texto da mensagem de registro, não aos metadados adicionais adicionados ao registro de registro pelas extensões de serviço.
Por exemplo, se um callback on_http_request_headers fizer duas chamadas de registro
com mensagens de 4 KiB cada e, em seguida, um callback on_http_response_headers
tentar fazer três chamadas de registro com mensagens de 4 KiB cada para a mesma
solicitação HTTP, a quinta mensagem de registro será descartada. Uma mensagem de registro é adicionada
para registrar o número de mensagens de registro geradas pelo plug-in que foram descartadas.
Monitoramento
Nesta seção, descrevemos como usar os painéis do Cloud Monitoring para conferir as métricas de extensões de serviço para plug-ins do Media CDN.
Para informações detalhadas sobre os tipos de métricas das Extensões de Serviço, consulte a página de métricas do Google Cloud .
Acessar o painel do Monitoring para extensões de serviço
Para acessar o painel do Monitoring para as Extensões de Serviço, faça o seguinte:
- No console do Google Cloud , acesse a página Extensões de serviço.
- Clique na guia Plugins.
- Clique no nome de um plug-in.
- Na página Detalhes do plug-in, clique na guia Monitoramento.
- Para conferir as métricas das operações do ciclo de vida do plug-in, selecione valores na lista
Filtro de operação. Por padrão, os valores
HTTP request headereHTTP response headersão selecionados. - Para ver as métricas de uma versão específica do plug-in, selecione um valor na lista Filtro de versão do plug-in. Por padrão, as métricas são exibidas para todas as versões.
- Para mudar o período dos dados que você quer ver, selecione um
período predefinido no seletor de tempo ou clique em Personalizado e defina um
horário de início e de término. Por padrão, o seletor é definido como
1 day.
Na página Monitoramento, os gráficos de métricas mostram informações que podem ajudar a monitorar o desempenho do plug-in.
Métricas de plug-in para extensões de serviço
É possível monitorar as seguintes métricas para plug-ins da
perspectiva das extensões de serviço. Essas métricas têm o prefixo
networkactions.googleapis.com/wasm_plugin/. O prefixo é omitido das entradas na tabela.
| Tipo de métrica | Nome de exibição
Classe, Tipo, Unidade Descrição |
|---|---|
invocation_count
|
Contagem de invocações do plug-in Wasm
DELTA, INT64, 1
O número de invocações do plug-in no período selecionado. Cada invocação de callback de plug-in conta como uma invocação de plug-in separada. |
invocation_latencies
|
Latência de invocação do plug-in Wasm
DELTA, DISTRIBUTION, us
O tempo de execução local, em milissegundos, do plug-in. A métrica inclui entradas delineadas por rótulo para cada callback. |
cpu/usage_times
|
Uso de CPU normalizado do plug-in Wasm
DELTA, DISTRIBUTION, us{CPU}
O tempo de uso da CPU das invocações do plug-in, em microssegundos. |
memory/bytes_used
|
Uso de memória do plug-in Wasm
GAUGE, DISTRIBUTION, By
Memória total alocada pelas VMs do plug-in Wasm, em bytes. |
Métricas de monitoramento de extensões de serviço para o Media CDN
É possível monitorar as extensões de borda do Media CDN na perspectiva de EdgeCacheService no Metrics Explorer do Monitoring:
No console do Google Cloud , acesse a página do Metrics Explorer.
Selecione o recurso monitorado Extensão de serviço do Media CDN.
Selecione a categoria de métrica Extensão.
Filtre pelo rótulo
extension_servicedefinido como o nome do plug-in.
Em Pré-lançamento, é possível monitorar as seguintes métricas
para extensões no Media CDN. Essas métricas têm o prefixo
networkactions.googleapis.com.
O prefixo é omitido das entradas na tabela a seguir.
A tabela a seguir mostra o tipo de métrica, o nome de exibição, o tipo, a unidade e a descrição de cada métrica.
| Tipo de métrica | Nome de exibição
Classe, Tipo, Unidade Descrição |
|---|---|
extension/invocation_count
|
Contagem de invocações de extensão
DELTA, INT64, 1
O número de invocações enviadas à extensão. |
extension/invocation_latencies
|
Latências de invocação de extensão
DELTA, DISTRIBUTION, ms
A distribuição calculada com base na latência de cada invocação de extensão. Aplicável apenas a extensões de frase de destaque. Não há suporte para plug-ins. |
extension/sent_chunks_count
|
Contagem de blocos enviados pela extensão
DELTA, INT64, 1
Aplicável apenas aos eventos request_body e response_body.
O número de blocos de dados enviados para a extensão. |
extension/received_chunks_count
|
Contagem de blocos recebidos pela extensão
DELTA, INT64, 1
Aplicável apenas aos eventos request_body e response_body.
O número de blocos recebidos da extensão. |
extension/failed_open_count
|
Invocações com falha da extensão com fail-open
DELTA, INT64, 1
O número de vezes que uma invocação falhou quando o sistema foi configurado para fail-open e a solicitação foi autorizada a continuar. |
extension/mutation_rejections_count
|
Contagem de rejeições de mutação de extensão
DELTA, INT64, 1
O número de invocações que solicitaram mutações de cabeçalho da solicitação, corpo ou trailer, mas foram rejeitadas. As rejeições podem ocorrer por vários motivos, como quando a mutação é inválida ou excede os limites de tamanho. |
extension/sent_bytes_count
|
Contagem de bytes enviados pela extensão
DELTA, INT64, By
O número de bytes enviados para a extensão. |
extension/received_bytes_count
|
Contagem de bytes recebidos da extensão
DELTA, INT64, By
O número de bytes recebidos da extensão. |