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 Cloud Load Balancing e o Cloud CDN.
Logging
Esta seção descreve o registro em registros para plug-ins do balanceador de carga de aplicativo. É possível fazer o registro do ponto de vista do plug-in e do balanceador de carga.
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 fica desativada por padrão. Para registrar os registros de um plug-in, ative-o ao criar ou atualizar o plug-in.
Os registros de log do 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 rastreamento
requestIdque ajuda a determinar o registro de solicitação associado a uma mensagem de registro.
Os registros relevantes para as extensões de serviço estão em uma das seguintes categorias:
Mensagens de registro do plug-in
Gerado por uma chamada de geração de registros, 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 Cloud Load Balancing
É possível ver essas mensagens usando o serviço
loadbalancing.googleapis.com.
Registro do ponto de vista do plug-in
Esta seção descreve o registro do Service Extensions na perspectiva do plug-in.
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 fica desativada por padrão.
Para registrar os registros de um plug-in, ative-o ao criar o plug-in ou atualizá-lo.
Para ativar o registro em um plug-in atual, use o comando gcloud service-extensions wasm-plugins update:
gcloud 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 atividade 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 de gravidade mínimo 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 plug-ins
É possível ver os registros criando consultas no Explorador de registros.
É possível ver os registros de plug-in como registros independentes de extensões de serviço. Nessa visualização, cada mensagem de registro do plug-in é gravada em um registro próprio e não é associada automaticamente às informações de registro de solicitação.
Essas mensagens de registro estão no registro
networkservices.googleapis.com/wasm_plugin_activity com o tipo de recurso
networkservices.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 exceder os limites de CPU ou memória, uma mensagem de gravidade ERROR será registrada. Essas mensagens também podem ser vistas em Ver e filtrar erros.
Exemplos de registros de plug-ins
Considere um exemplo de entrada de registro das 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.networkservices.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": "networkservices.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": {
"networkservices.googleapis.com/operation": "HTTP_REQUEST_HEADERS"
},
"logName": "projects/123456789/logs/networkservices.googleapis.com%2Fwasm_plugin_activity",
"trace": "projects/123456789/traces/effc0311-6716-431b-9e2a-7586835fdff1",
"receiveTimestamp": "2023-05-10T03:05:44.207265284Z"
}
Limitações para geração de registros
Os plug-ins são limitados a registrar até 16 KiB de dados de payload por solicitação HTTP do cliente. Esse valor é dividido em 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 incluídos no registro pelo Service Extensions.
Por exemplo, se um callback on_http_request_headers fizer duas chamadas de registro
com mensagens de 4 KiB cada, e 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 terceira 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.
Registro em log da perspectiva do balanceador de carga
Esta seção descreve o registro em registros do Service Extensions na perspectiva do balanceador de carga.
Ativar a geração de registros em um serviço de back-end
É possível ativar a geração de registros para plug-ins do balanceador de carga de aplicativo ao criar um serviço. Para isso, ative a geração de registros no serviço de back-end que é o destino de uma solicitação.
Para ativar a geração de registros para o serviço de back-end de destino, use o
comando gcloud compute backend-services update.
gcloud compute backend-services update BACKEND_SERVICE \
--enable-logging \
--logging-sample-rate=RATE \
--region=REGION \
--logging-optional=LOGGING_OPTIONAL_MODE \
--logging-optional-fields=OPTIONAL_FIELDS
Substitua:
BACKEND_SERVICE: o nome do serviço de back-endRATE: um valor de0.0a1.0, em que0.0significa que nenhuma solicitação é registrada e1.0significa que 100% das solicitações são registradas. O valor padrão é1.0. Essa configuração só é eficaz quando usada com o parâmetroenable-logging. Quando você omiteenable-logging, a geração de registros é desativada.REGION: a região do back-endLOGGING_OPTIONAL_MODE: ativa a geração de registros para campos opcionais em um destes modos:INCLUDE_ALL_OPTIONALinclui todos os campos opcionais.EXCLUDE_ALL_OPTIONAL(padrão) exclui todos os campos opcionais.CUSTOMinclui uma lista personalizada de campos opcionais.
OPTIONAL_FIELDS: uma lista separada por vírgulas de campos opcionais ao selecionar o modoCUSTOM
Depois de ativar a geração de registros no serviço de back-end, as solicitações HTTP ou HTTPS serão registradas usando o Cloud Logging.
Para ver os registros, no console do Google Cloud , acesse a página Análise de registros.
Registrar mensagens de um serviço de back-end
Em geral, as entradas de registro do balanceador de carga de aplicativo contêm informações úteis para monitorar e depurar o tráfego HTTP ou HTTPS. As entradas de registro contêm os seguintes tipos de informação:
- Informações mostradas na maioria dos registros do Google Cloud , como gravidade, ID do projeto, número do projeto e carimbo de data/hora, conforme descrito no registro LogEntry.
- Campos de registro HttpRequest.
Os registros de solicitação para balanceadores de carga HTTP e HTTPS contêm um objeto service_extension_info
no payload JSON da entrada de registro do balanceador de carga com as seguintes
informações:
| Campo | Tipo | Descrição |
|---|---|---|
backend_target_name |
string | Nome do destino de back-end da extensão. |
backend_target_type |
string | Tipo do destino de back-end. |
chain |
string | Nome da cadeia de extensão no recurso de extensão de serviço que corresponde à solicitação. |
extension |
string | Nome da extensão na cadeia de extensão. |
grpc_status |
enum | O status mais recente no fluxo gRPC. Para mais informações, consulte códigos de status do gRPC. |
per_processing_request_info |
matriz | Uma lista de estatísticas ProcessingRequest para extensões ext_proc ou CheckRequest para extensões ext_authz que ocorrem no fluxo gRPC.
|
per_processing_request_info[].event_type |
enum | O tipo de evento de ProcessingRequest. Pode ser um destes:
REQUEST_HEADERS, REQUEST_BODY,
RESPONSE_HEADERS ou RESPONSE_BODY.
|
per_processing_request_info[].latency |
duration | A duração entre o momento em que o primeiro byte da mensagem ProcessingRequest
é enviado para a extensão e o momento em que o último byte da
mensagem ProcessingResponse é recebido. |
resource |
string | Nome do recurso de extensão |
Monitoramento
Esta seção descreve como usar os painéis do Cloud Monitoring para visualizar métricas de plug-ins do balanceador de carga de aplicativo configurados usando extensões de serviço. É possível monitorar os plug-ins pela perspectiva deles ou do balanceador de carga.
Monitoramento do ponto de vista dos plug-ins
Esta seção descreve o monitoramento de extensões de serviço na perspectiva de plug-ins.
Para informações detalhadas sobre os tipos de métricas das extensões de serviço, consulte a página Google Cloud métricas.
Ver o painel do Monitoring para extensões de serviço
Para acessar o painel do Monitoring para 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 Plug-ins.
- 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 conferir 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 mostradas para todas as versões.
- Para mudar o período em que você quer ver os dados, 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 você a monitorar a performance do plug-in.
Métricas de plug-in para extensões de serviço
É possível monitorar as seguintes métricas para plug-ins na perspectiva de extensões de serviço. Essas métricas têm o prefixo
networkservices.googleapis.com/wasm_plugin/. O prefixo foi omitido das entradas na tabela.
| Tipo de métrica | Nome de exibição
Tipo, 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 do plug-in conta como uma invocação 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 delimitadas por rótulos para cada callback. |
cpu/usage_times
|
Uso normalizado da CPU do plug-in Wasm
DELTA, DISTRIBUTION, us{CPU}
O tempo de uso da CPU das invocações de 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. |
Monitoramento da perspectiva do balanceador de carga
Nesta seção, descrevemos o monitoramento de extensões de serviço para plug-ins na perspectiva do balanceador de carga.
Conferir o painel do Monitoring para o Cloud Load Balancing
Os balanceadores de carga de aplicativo exportam dados de monitoramento para o Cloud Monitoring.
Use as métricas do Monitoring para:
- avaliar a configuração, o uso e o desempenho de um balanceador de carga;
- resolver problemas;
- Melhorar a utilização de recursos e a experiência do usuário
Para acessar um painel predefinido, siga estas etapas:
- No console Google Cloud , acesse a página Visão geral dos painéis.
- Na seção Categorias, clique em GCP.
- Para conferir uma lista de painéis de todos os balanceadores de carga, na lista Painéis do GCP, clique no painel chamado Balanceadores de carga do Google Cloud. Para visualizar o painel de um balanceador de carga específico, localize o balanceador de carga na lista e clique no nome dele.
- Para conferir os painéis predefinidos apenas para seus balanceadores de carga, selecione o painel adequado.
Além dos painéis predefinidos no Monitoring, é possível criar painéis personalizados, configurar alertas e consultar as métricas por meio da API Cloud Monitoring.
Métricas de plug-in para o Cloud Load Balancing
É possível monitorar as seguintes métricas para plug-ins do ponto de vista do Cloud Load Balancing.
Essas métricas têm o prefixo loadbalancing.googleapis.com/. O prefixo foi omitido das entradas na tabela.
| Tipo de métrica | Nome de exibição
Tipo, Tipo, Unidade Descrição |
|---|---|
https/backend_request_count,
https/external/regional/backend_request_count,
https/internal/backend_request_count
|
Contagem de solicitações de back-end
DELTA, INT64, 1
O número de vezes que um plug-in é chamado pelo balanceador de carga de aplicativo. |
https/backend_request_bytes_count,
https/external/regional/backend_request_bytes_count,
https/internal/backend_request_bytes_count
|
Bytes da solicitação de back-end
DELTA, INT64, By
O número de bytes enviados do balanceador de carga para o plug-in. |
https/backend_response_bytes_count,
https/external/regional/backend_response_bytes_count,
https/internal/backend_response_bytes_count
|
Bytes de resposta do back-end
DELTA, INT64, By
O número de bytes recebidos pelo balanceador de carga do back-end da extensão. |
Ver métricas de plug-in
Para conferir as métricas de um plug-in específico, faça o seguinte:
No console do Google Cloud , acesse a página do Metrics explorer.
No elemento Métrica, expanda o menu Selecionar uma métrica. Em seguida, faça o seguinte:
Na lista de recursos, selecione a regra apropriada do balanceador de carga de aplicativo.
Na lista de categorias de métricas, selecione Https.
Na lista de métricas, selecione uma métrica de plug-in.
Clique em Aplicar.
No elemento Filtro, faça o seguinte:
Selecione o rótulo backend_target_type e defina o valor como
WASM_PLUGIN.Selecione o rótulo backend_target_name e defina o nome do plug-in como valor.
Para mais informações sobre os tipos de métricas do balanceador de carga, consulte a seção loadbalancing da página de métricas do Google Cloud .