Configura Cloud Trace para Node.js

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Puedes habilitar Cloud Trace para las aplicaciones de Node.js mediante la biblioteca de Cloud Trace para Node.js.

Instala la biblioteca cliente

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

  2. Si deseas instalar la biblioteca de Cloud Trace para Node.js, usa npm:

    npm install --save @google-cloud/trace-agent
  3. Importa la biblioteca de Cloud 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();

Para obtener más información o informar problemas con la biblioteca de Cloud Trace para Node.js, consulta Repositorio de GitHub cloud-trace-nodejs del agente.

Configura la biblioteca cliente

Puedes personalizar el comportamiento de la biblioteca de Cloud Trace para Node.js. Consulta la configuración de la biblioteca en GitHub para obtener una lista de las opciones de configuración que puedes pasar al método start de la biblioteca mediante un objeto options.

En el siguiente ejemplo, se muestra cómo especificar el ID del proyecto de Google Cloud y cómo configurar la ruta de acceso a tu archivo de credenciales. Estas dos declaraciones son opcionales cuando ejecutas en Google Cloud:

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

Si ejecutas en la infraestructura de Google Cloud, no necesitas establecer projectId en tu ID del proyecto de Google Cloud. Si no configuras este campo, la biblioteca cliente para Node.js recopila de forma automática estos datos desde un servidor de metadatos de Google Cloud.

Si no ejecutas en la infraestructura de Google Cloud, debes proporcionar el ID del proyecto de Google Cloud a tu aplicación.

Sin importar tu infraestructura, para Node.js, cuando no configuras de forma explícita el ID del proyecto de Google Cloud, la biblioteca cloud-trace-nodejs determina de forma automática si se configuró la variable de entorno GCLOUD_PROJECT y, de ser así, la biblioteca usa el valor de GCLOUD_PROJECT como el ID del proyecto de Google Cloud. Para obtener más información sobre el archivo de descubrimiento, ve a cloud-trace-nodejs/src/index. Para configurar la variable de entorno, sigue estos pasos:

Linux o macOS

export GCLOUD_PROJECT=your-project-id

Windows

set GCLOUD_PROJECT=your-project-id

PowerShell:

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

Configura tu plataforma

Puedes usar Cloud Trace en Google Cloud y otras plataformas.

Ejecuta en Google Cloud

Cuando tu aplicación se ejecuta en Google Cloud, no necesitas proporcionar credenciales de autenticación en el formato de una cuenta de servicio a la biblioteca cliente. Sin embargo, debes asegurarte de que tu plataforma de Google Cloud tenga habilitado el permiso de acceso a la API de Cloud Trace.

Para obtener una lista de los entornos de Google Cloud compatibles, consulta Compatibilidad de entornos.

Para las siguientes opciones de configuración, la configuración predeterminada del permiso de acceso habilita la API de Cloud Trace:

  • Entorno flexible de App Engine
  • Entorno estándar de App Engine

  • Google Kubernetes Engine (GKE)

  • Compute Engine

  • Cloud Run

Si usas permisos de acceso personalizados, debes asegurarte de que el permiso de acceso a la API de Cloud Trace esté habilitado:

  • Para obtener información sobre cómo configurar los permisos de acceso de tu entorno mediante Google Cloud Console, consulta Configura tu proyecto de Google Cloud.

  • Para los usuarios de gcloud, especifica los niveles de acceso con la marca --scopes y, también, incluye el permiso de acceso a la API de Cloud Trace trace.append. Por ejemplo, para crear un clúster de GKE solo con la API de Cloud Trace habilitada, sigue estos pasos:

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

Ejecuta de forma local y en otros lugares

Si tu aplicación se ejecuta fuera de Google Cloud, debes proporcionar credenciales de autenticación en forma de una cuenta de servicio a la biblioteca cliente. La cuenta de servicio debe contener la función de agente de Cloud Trace. Para obtener más instrucciones, consulta Cómo crear una cuenta de servicio.

Las bibliotecas cliente de Google Cloud usan las credenciales predeterminadas de la aplicación (ADC) para encontrar las credenciales de tu aplicación.

Puedes proporcionar estas credenciales de tres maneras:

  • Ejecución gcloud auth application-default login

  • Coloca la cuenta de servicio en una ruta predeterminada para tu sistema operativo. A continuación, se enumeran las rutas de acceso predeterminadas para Windows y Linux:

    • Windows: %APPDATA%/gcloud/application_default_credentials.json

    • Linux: $HOME/.config/gcloud/application_default_credentials.json

  • Establece la variable de entorno GOOGLE_APPLICATION_CREDENTIALS en la ruta a tu cuenta de servicio:

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"

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, {responseType: 'json'});
    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 Google Cloud Console.

Ir a la página del Lector de seguimiento

Soluciona problemas

Para obtener información sobre cómo solucionar problemas con Cloud Trace, ve a la página de solución de problemas.

Recursos