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 do Service Extensions para o Media CDN.

Logging

Esta seção descreve os logs do Service Extensions para plug-ins do Media CDN e como visualizar e correlacionar as informações nas mensagens de registro.

Mensagens de registro

Service Extensions oferece 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 gravar registros de um plug-in, ative-o ao criar o plug-in ou atualizar.

Os registros de plug-ins 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 requestId que ajuda a determinar o registro de solicitação ao qual uma mensagem de registro está associada.

Os registros relevantes para Service Extensions estão em uma das seguintes categorias:

  • Mensagens de registro de plug-ins

    Geradas por uma chamada de registro, 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 que o plug-in realizou.

    Essas mensagens podem ser visualizadas usando o networkservices.googleapis.com serviço.

  • Mensagens de registro do Media CDN

    Mensagens de registro do Media CDN para solicitações HTTP a EdgeCacheService recursos com uma ação Wasm associada. Essas são entradas de registro normais do Media CDN que podem ser visualizadas no edgecache.googleapis.com serviço.

Ativar o registro de um plug-in

Service Extensions oferece 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 gravar registros de um plug-in, ative-o ao criar o plug-in ou atualizar.

Para ativar o registro de um plug-in atual, use o gcloud beta service-extensions wasm-plugins update comando:

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 registro do plug-in. Para ativar o registro, defina a opção enable como true. Em seguida, especifique os seguintes detalhes:

    • sample-rate: a taxa de amostragem dos registros de atividades 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 mínimo de gravidade das mensagens de registro de plug-ins a serem exportadas para o Cloud Logging. O valor padrão é INFO.

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

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

Visualizar mensagens de registro

Os registros podem ser visualizados criando consultas na Análise de registros.

É possível visualizar os registros de plug-ins como registros de Service Extensions independentes. Nessa visualização, cada mensagem de registro de plug-in é gravada 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 exceder os limites de CPU ou memória, uma mensagem de gravidade ERROR será registrada. Essas mensagens também podem ser encontradas em Visualizar e filtrar erros.

Também é possível visualizar 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 de plug-ins 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 registro

Considere um exemplo de entrada de registro de Service Extensions. 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 do Media CDN relacionada aparece da seguinte maneira. Os valores 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",
    "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 registro associadas a uma determinada solicitação HTTP. O limite se aplica apenas ao texto da mensagem de registro, não a metadados adicionais adicionados ao registro por Service Extensions.

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

Esta seção descreve como usar os painéis do Cloud Monitoring para visualizar as métricas de Service Extensions para plug-ins do Media CDN.

Para informações detalhadas sobre os tipos de métricas de Service Extensions, consulte a Google Cloud página de métricas.

Visualizar o painel do Monitoring para Service Extensions

Para visualizar o painel do Monitoring para Service Extensions, faça o seguinte:

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

    Acessar Service Extensions

  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 a monitorar a performance do plug-in.

  6. Para visualizar 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 visualizar 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.
  8. Para mudar o período em que você quer visualizar os dados, selecione um período predefinido no seletor de horário 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-ins para Service Extensions

É possível monitorar as seguintes métricas de plug-ins na perspectiva de Service Extensions. 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
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 de CPU do plug-in Wasm
DELTADISTRIBUTIONus{CPU}
O tempo de uso da CPU das invocações de plug-ins, em microssegundos.
memory/bytes_used Uso da memória do plug-in Wasm
GAUGEDISTRIBUTIONBy
Memória total alocada pelas VMs de plug-ins Wasm, em bytes.

Métricas de plug-ins para o Media CDN

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

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