Ativar indicadores de telemetria em bibliotecas de cliente do Node.js

Google Cloud oferece monitoramento, geração de registros e diagnósticos avançados para aplicativos Node.js.

As bibliotecas de cliente do Node.js são instrumentadas para emitir dados de rastreamento. A instrumentação é opcional. É necessário ativá-la explicitamente. Este documento descreve os indicadores disponíveis e como ativá-los.

Indicadores disponíveis

As bibliotecas de cliente do Node.js são instrumentadas para gerar os seguintes indicadores:

  1. Períodos INFO para cada solicitação lógica do cliente. Normalmente, uma única chamada de método na estrutura do cliente recebe um período desse tipo (por exemplo, chamar accessSecretVersion em um SecretManagerServiceClient).
  2. Períodos INFO para cada tentativa de RPC de baixo nível. Normalmente, um único método na estrutura do cliente recebe um período desse tipo, mas pode haver mais se a biblioteca precisar tentar novamente a RPC.

Esses períodos e registros seguem as convenções semânticas do OpenTelemetry com Google Cloud atributos adicionais. Os períodos e registros precisam ser adequados para o monitoramento de produção. Os indicadores incluem atributos padrão do OpenTelemetry (por exemplo, http.response.status_code e rpc.system.name).

Para uma lista completa de atributos padrão, consulte as convenções semânticas HTTP e gRPC do OpenTelemetry.

Ativar indicadores de telemetria

Para proteger dados sensíveis, os indicadores de telemetria são desativados por padrão.

No Node.js, é necessário configurar o cliente para emitir rastros e configurar assinantes e exportadores para enviar esses indicadores a um serviço externo.

Para configurar o cliente, defina a seguinte variável de ambiente:

export GOOGLE_SDK_NODE_ENABLE_TRACING=true

Quando o rastreamento está ativado e o aplicativo tem um período ativo do OpenTelemetry no contexto atual ao chamar um método de biblioteca de cliente, a biblioteca de cliente vincula automaticamente os períodos como filhos do período ativo.

Exportar rastros

Depois que a telemetria é ativada nas bibliotecas de cliente, o aplicativo precisa ser configurado para coletar e exportar esses dados para o serviço de observabilidade.

Para instruções detalhadas sobre como configurar os dados de correlação de rastreamento do OpenTelemetry, consulte o exemplo de observabilidade no repositório do Node.js.

Para exportar os tracing períodos gerados pelas Google Cloud bibliotecas de cliente para o OpenTelemetry, é necessário configurar um provedor de rastreador e um exportador:

const cloudTraceExporter = new TraceExporter();
const spanProcessor = new BatchSpanProcessor(cloudTraceExporter);

const provider = new NodeTracerProvider({
  spanProcessors: [spanProcessor],
});
provider.register();