Cómo configurar Stackdriver Trace para Node.js

Se puede habilitar Stackdriver Trace para aplicaciones Node.js mediante la biblioteca de Stackdriver Trace para Node.js.

Instala la biblioteca cliente

  1. Antes de instalar la biblioteca de Stackdriver Trace para Node.js, asegúrate de preparar tu entorno para el desarrollo de Node.js.

  2. La forma más fácil de instalar la biblioteca de Stackdriver Trace para Node.js es con npm:

    npm install --save @google-cloud/trace-agent
  3. Importa la biblioteca de Stackdriver Trace para Node.js al comienzo de la secuencia de comandos principal o el punto de entrada de la aplicación antes de cualquier otro código:

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

Con el fin de obtener más información o informar problemas con la biblioteca de Stackdriver Trace para Node.js, consulta el repositorio de código fuente del agente.

Cómo configurar la biblioteca cliente

Puedes personalizar el comportamiento de la biblioteca de Stackdriver Trace para Node.js. Consulta la configuración de la biblioteca en GitHub a fin de obtener una lista de posibles opciones de configuración. Estas opciones se pueden pasar en el objeto options al método start de la biblioteca.

Ejecución en Google Cloud Platform

La biblioteca de Stackdriver Trace para Node.js debería funcionar sin la necesidad de proporcionar credenciales de autenticación de manera manual para las instancias que se ejecutan en Google Cloud Platform, siempre y cuando el nivel de acceso a la API de Stackdriver Trace esté habilitado en esa instancia.

Entorno flexible de App Engine

En el entorno flexible de App Engine, el nivel de acceso a la API de Stackdriver Trace está habilitado de manera predeterminada, y la biblioteca de Stackdriver Trace para Node.js se puede usar sin proporcionar credenciales o un ID del proyecto.

Entorno estándar de App Engine

En el entorno estándar de App Engine, el nivel de acceso a la API de Stackdriver Trace está habilitado de manera predeterminada, y la biblioteca de Stackdriver Trace para Node.js se puede usar sin proporcionar credenciales o un ID del proyecto.

Google Kubernetes Engine

En GKE, agrega el nivel de acceso de OAuth trace.append cuando crees el clúster:

gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/trace.append

No puedes cambiar los niveles de acceso del clúster una vez creado.

Compute Engine

Para las instancias de VM de Compute Engine, debes habilitar explícitamente el nivel de acceso a la API de Stackdriver Trace trace.append para cada instancia de VM. Cuando crees una instancia nueva con Google Cloud Platform Console, selecciona los siguientes valores en la sección Identidad y acceso a la API en el panel Crear una instancia:

  1. Selecciona Cuenta de servicio predeterminada de Compute Engine para Cuenta de servicio.
  2. Selecciona Permitir el acceso total a todas las API de Cloud para Niveles de servicio.

Para usar una cuenta que no sea la cuenta de servicio predeterminada de Compute Engine, consulta las secciones Cómo crear y habilitar cuentas de servicio para instancias y Cómo ejecutar de manera local y en otro lugar. Lo importante es que la cuenta de servicio que uses tenga la función de Agente de Cloud Trace.

Cómo ejecutar de manera local y en otro lugar

Para ejecutar Stackdriver Trace fuera de GCP, debes proporcionar tu ID del proyecto de GCP y las credenciales de la cuenta de servicio correspondiente directamente a la biblioteca de Stackdriver Trace para Node.js. Si deseas obtener más información, consulta Cómo proporcionar credenciales a la aplicación.

ID del proyecto

El ID del proyecto de la biblioteca de Stackdriver Trace para Node.js se proporciona mediante la configuración del valor projectId en el objeto options que se pasó al método start de la biblioteca o la configuración de la variable de entorno GCLOUD_PROJECT:

Linux o macOS

export GCLOUD_PROJECT=your-project-id

Windows

set GCLOUD_PROJECT=your-project-id

PowerShell:

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

Credenciales

Las bibliotecas cliente de GCP usan las credenciales predeterminadas de la aplicación (ADC) para encontrar las credenciales de tu aplicación. Las credenciales de la biblioteca de Stackdriver Trace para Node.js se proporcionan mediante la configuración de la variable de entorno 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"

Ejemplo

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

Aplicación de muestra

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.');
});

Cómo ver los seguimientos

Después de la implementación, puedes ver los seguimientos en el lector de seguimiento de GCP Console.

Ir a la página del Lector de seguimiento

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.