Como configurar o Stackdriver Trace para Node.js

O Stackdriver Trace pode ser ativado para aplicativos Node.js usando a biblioteca do Stackdriver Trace para Node.js.

Como instalar a biblioteca de cliente

  1. Antes de instalar a biblioteca do Stackdriver Trace para Node.js, verifique se você preparou seu ambiente para o desenvolvimento em Node.js.

  2. A maneira mais fácil de instalar a biblioteca do Stackdriver Trace para Node.js é com o npm:

    npm install --save @google-cloud/trace-agent
  3. Importe a biblioteca do Stackdriver Trace para Node.js na parte superior do script principal do aplicativo ou do ponto de entrada antes de qualquer outro código:

    require('@google-cloud/trace-agent').start();

Para saber mais ou informar problemas com a biblioteca do Stackdriver Trace para Node.js, consulte o repositório do código-fonte do agente.

Como configurar a biblioteca de cliente

É possível personalizar o comportamento da biblioteca do Stackdriver Trace para Node.js. Consulte a configuração da biblioteca no GitHub para ver uma lista das possíveis opções de configuração. Essas opções podem ser transmitidas no objeto options passado para o método start da biblioteca.

Como executar no Google Cloud Platform

A biblioteca do Stackdriver Trace para Node.js funciona sem a necessidade de fornecer manualmente credenciais de autenticação para instâncias em execução no Google Cloud Platform. Isso acontece desde que o escopo de acesso da API Stackdriver Trace esteja ativado nessa instância.

Ambiente flexível do App Engine

No ambiente flexível do App Engine, o escopo de acesso da API Stackdriver Trace é ativado por padrão. Além disso, a biblioteca do Stackdriver Trace para Node.js pode ser usada sem a necessidade de fornecer credenciais ou um código de projeto.

Ambiente padrão do App Engine

No ambiente padrão do App Engine, o escopo de acesso da API Stackdriver Trace é ativado por padrão. Além disso, a biblioteca do Stackdriver Trace para Node.js pode ser usada sem a necessidade de fornecer credenciais ou um código de projeto.

Google Kubernetes Engine

Para usar o Trace no GKE, adicione o escopo de acesso do OAuth trace.append ao criar um cluster.

Para criar um cluster usando o gcloud, faça o seguinte:

  1. Atualize o gcloud para a versão mais recente (opcional):
    gcloud components update
  2. Defina o código do projeto padrão:
    gcloud config set project [PROJECT_ID]
  3. Se você estiver trabalhando com clusters zonais, defina a zona de computação padrão:
    gcloud config set compute/zone [COMPUTE_ZONE]
  4. Se você estiver trabalhando com clusters regionais, defina a região de computação padrão:
    gcloud config set compute/region [COMPUTE_REGION]
  5. Execute o comando de criação:
    gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/trace.append

Para informações mais detalhadas sobre como criar um cluster, consulte Como criar um cluster.

Compute Engine

Para as instâncias do Compute Engine, é preciso ativar explicitamente o escopo de acesso trace.append da API Stackdriver Trace para cada instância de VM. Ao criar uma nova instância por meio do Console do Google Cloud Platform, selecione os seguintes valores na seção Identidade e acesso à API do painel Criar uma instância:

  1. Selecione a Conta de serviço padrão do Compute Engine como a Conta de serviço
  2. Selecione Permitir acesso completo a todas as APIs do Cloud em Escopos de acesso.

Para usar algo diferente da conta de serviço padrão do Compute Engine, consulte as seções Como criar e ativar contas de serviços para instâncias e Como executar localmente e em outro local. O importante é que a conta de serviço que você usa tenha o papel de agente do Cloud Trace.

Como executar localmente e em outro local

Para executar o Stackdriver Trace fora do GCP, é necessário fornecer o código de projeto do GCP e as credenciais da conta de serviço apropriadas diretamente para a biblioteca do Stackdriver Trace para Node.js. Sua conta de serviço precisa conter o papel de agente do Cloud Trace. Para mais instruções, consulte Como criar uma conta de serviço.

Código do projeto

Forneça o código do projeto à biblioteca do Stackdriver Trace para Node.js ao definir o valor projectId no objeto options passado para o método start da biblioteca ou a variável de ambiente GCLOUD_PROJECT:

Linux ou MacOS

export GCLOUD_PROJECT=your-project-id

Windows

set GCLOUD_PROJECT=your-project-id

PowerShell:

$env:GCLOUD_PROJECT="your-project-id"

Credenciais

As bibliotecas de cliente do GCP usam o Application Default Credentials (ADC) para localizar as credenciais do aplicativo. Você fornece credenciais à biblioteca do Stackdriver Trace para o Node.js ao definir a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS:

Linux/macOS

    export GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-accounts-private-key

Windows

    set GOOGLE_APPLICATION_CREDENTIALS=path-to-your-service-accounts-private-key

PowerShell:

    $env:GOOGLE_APPLICATION_CREDENTIALS="path-to-your-service-accounts-private-key"

Exemplo

require('@google-cloud/trace-agent').start({
  projectId: 'your-project-id',
  keyFilename: '/path/to/key.json'
});

Exemplo de app

if (process.env.NODE_ENV === 'production') {
  require('@google-cloud/trace-agent').start();
}

const express = require('express');
const got = require('got');

const app = express();
const DISCOVERY_URL = 'https://www.googleapis.com/discovery/v1/apis';

// This incoming HTTP request should be captured by Trace
app.get('/', async (req, res) => {
  // This outgoing HTTP request should be captured by Trace
  try {
    const { body } = await got(DISCOVERY_URL, { json: true });
    const names = body.items.map((item) => item.name);
    res
      .status(200)
      .send(names.join('\n'))
      .end();
  }
  catch (err) {
    console.error(err);
    res
      .status(500)
      .end();
  }
});

// Start the server
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
  console.log(`App listening on port ${PORT}`);
  console.log('Press Ctrl+C to quit.');
});

Como visualizar os traces

Após a implantação, você pode consultar os traces no visualizador de traces do Console do GCP.

Acesse a página do visualizador do Trace

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.