Geração de registros e monitoramento para plug-ins da Media CDN

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 a Media CDN.

Logging

Esta seção descreve os registros de extensões de serviço para plug-ins da Media CDN e como visualizar e correlacionar as informações em 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 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 requestId que 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 ou LOG_INFO para 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 de recursos EdgeCacheService com uma ação Wasm associada. Essas são entradas de registro regulares da Media CDN que podem ser visualizadas no serviço edgecache.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 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 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-in
  • LOG_CONFIG: opções de geração de registros para o plug-in. Para ativar a geração de registros, defina a opção enable como true. Em seguida, especifique os seguintes detalhes:

    • sample-rate: a taxa de amostragem dos registros de atividade como um valor entre 0 e 1. O valor 0 indica que as mensagens de registro não são armazenadas. O valor padrão 1 indica que todas as mensagens de registro são armazenadas. Um pontuação flutuante entre 0.0 e 1.0 indica 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.

Depois de ativar o registro em log para o plug-in, é possível conferir as mensagens emitidas por instruções de registro em log no código do plug-in em Cloud Logging.

Para ver os registros, no console do Google Cloud , acesse a página Análise de registros.

Ver mensagens de registro

É 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 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 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.

Também é possível conferir mensagens de registro correlacionadas com os registros de solicitações correspondentes da Media CDN na Análise de registros. Ao visualizar registros de solicitações, quando você expande uma entrada de registro de solicitação, os registros de plug-in relacionados à solicitação aparecem aninhados abaixo do registro de solicitação. Essa visualização ajuda você a entender os registros de plug-ins no contexto da solicitação associada.

Exemplos de registros

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.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"
}
A entrada de registro relacionada do CDN de mídia aparece da seguinte maneira. Os valores de requestId e trace nas duas mensagens de registro são iguais.
{
  "insertId": "6c95cc54-0000-26ba-ba73-f403043c328c@a1",
  "jsonPayload": {
    "cacheMode": "USE_ORIGIN_HEADERS",
    "@type": "type.googleapis.com/google.cloud.edgecache.v1.EdgeCacheLogEntry",
    "wasmAction": "add-headers-action-prod-resource",
    "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 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.

Monitoramento

Nesta seção, descrevemos como usar os painéis do Cloud Monitoring para conferir métricas de extensões de serviço dos 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 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:

  1. No console do Google Cloud , acesse a página Extensões de serviço.

    Acessar Extensões de serviço

  2. Clique na guia Plug-ins.
  3. Clique no nome de um plug-in.
  4. Na página Detalhes do plug-in, clique na guia Monitoramento.
  5. Na página Monitoramento, os gráficos de métricas mostram informações que podem ajudar você a monitorar a performance do plug-in.

  6. 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 header e HTTP response header são selecionados.
  7. 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.
  8. 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.

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 networkactions.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
DELTAINT641
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
DELTADISTRIBUTIONus
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
DELTADISTRIBUTIONus{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
GAUGEDISTRIBUTIONBy
Memória total alocada pelas VMs do plug-in Wasm, em bytes.

Métricas de plug-in para Media CDN

É possível monitorar as seguintes métricas para plug-ins na perspectiva da Media CDN. As strings de tipo de métrica seguem este prefixo: edgecache.googleapis.com/edge_cache_route_rule/network_actions/. O prefixo foi omitido das entradas na tabela.

Tipo de métrica Nome de exibição
Tipo, Tipo, Unidade
Descrição
wasm_action_invocation_count Contagem de invocações das extensões de serviço
DELTAINT641
O número de invocações das extensões de serviço processadas pelo Media CDN no período selecionado.
wasm_action_invocation_latencies Latência de invocação das extensões de serviço
DELTADISTRIBUTIONus
O tempo total, em milissegundos, que a Media CDN leva para despachar e executar o plug-in. A métrica inclui entradas delimitadas por rótulos para callbacks de extensões de serviço.