Strumento App Node.js per Error Reporting

Puoi inviare report sugli errori alle applicazioni Error Reporting dalle applicazioni Node.js utilizzando la libreria di Error Reporting per Node.js.

Error Reporting è integrato con alcuni servizi Google Cloud, come Cloud Functions e App Engine, Compute Engine e Google Kubernetes Engine. Error Reporting mostra gli errori registrati in Cloud Logging dalle applicazioni in esecuzione su tali servizi. Per ulteriori informazioni, vai alla pagina In esecuzione su Google Cloud Platform in questa pagina.

Puoi anche inviare i dati di errore a Error Reporting utilizzando Logging. Per informazioni sui requisiti di formattazione dei dati, consulta Formattazione dei messaggi di errore in Logging.

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Attiva Error Reporting API .

    Abilita l'API

  5. Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  6. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  7. Attiva Error Reporting API .

    Abilita l'API

  8. Prepara l'ambiente per lo sviluppo di Node.js.

    Vai alla guida alla configurazione di Node.js

Installare la libreria client

La libreria Error Reporting per Node.js consente di monitorare e visualizzare gli errori segnalati dalle applicazioni Node.js in esecuzione praticamente ovunque.

  1. Usa npm per installare il pacchetto:

    npm install --save @google-cloud/error-reporting
  2. Importa la libreria e crea un'istanza di un client per iniziare a segnalare gli errori:

    // Imports the Google Cloud client library
    const {ErrorReporting} = require('@google-cloud/error-reporting');
    
    // Instantiates a client
    const errors = new ErrorReporting();
    
    // Reports a simple error
    errors.report('Something broke!');

Per ulteriori informazioni sull'installazione, consulta la documentazione per la libreria di Error Reporting per Node.js. Puoi anche segnalare i problemi utilizzando lo strumento Issue Tracker.

Configurazione della libreria client

Puoi personalizzare il comportamento della libreria di Error Reporting per Node.js. Consulta la configurazione della libreria per un elenco di possibili opzioni di configurazione. Queste opzioni possono essere passate nell'oggetto options passato al costruttore della libreria.

Errori nei report

Puoi segnalare manualmente un errore chiamando il metodo report, come mostrato nell'esempio seguente:

// Imports the Google Cloud client library
const {ErrorReporting} = require('@google-cloud/error-reporting');

// Instantiates a client
const errors = new ErrorReporting();

// Use the error message builder to customize all fields ...
const errorEvent = errors.event();

// Add error information
errorEvent.setMessage('My error message');
errorEvent.setUser('root@nexus');

// Report the error event
errors.report(errorEvent, () => {
  console.log('Done reporting error event!');
});

// Report an Error object
errors.report(new Error('My error message'), () => {
  console.log('Done reporting Error object!');
});

// Report an error by provided just a string
errors.report('My error message', () => {
  console.log('Done reporting error string!');
});

Segnalare errori con Express.js

La libreria Error Reporting per Node.js può integrare Error Reporting nei framework web Node.js più utilizzati, come Express.js:

const express = require('express');

// Imports the Google Cloud client library
const {ErrorReporting} = require('@google-cloud/error-reporting');

// Instantiates a client
const errors = new ErrorReporting();

const app = express();

app.get('/error', (req, res, next) => {
  res.send('Something broke!');
  next(new Error('Custom error message'));
});

app.get('/exception', () => {
  JSON.parse('{"malformedJson": true');
});

// Note that express error handling middleware should be attached after all
// the other routes and use() calls. See the Express.js docs.
app.use(errors.express);

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

Altre integrazioni

Per maggiori informazioni sulle integrazioni tra la libreria Error Reporting per Node.js e altri framework web Node.js, consulta il repository della libreria su GitHub.

In esecuzione su Google Cloud

Per utilizzare la libreria di Error Reporting per Node.js, è richiesto il ruolo Writer di Identity and Access Management per Error Reporting Writer. La maggior parte delle piattaforme di computing Google Cloud fornisce questo ruolo per impostazione predefinita.

Puoi configurare Error Reporting per Node.js nei seguenti ambienti Google Cloud.

Ambiente flessibile di App Engine

App Engine concede per impostazione predefinita il ruolo Writer Error Reporting.

La libreria Error Reporting per Node.js può essere utilizzata senza dover fornire esplicitamente le credenziali.

Error Reporting viene abilitato automaticamente per le applicazioni dell'ambiente flessibile di App Engine. Non sono richieste configurazioni aggiuntive.

Google Kubernetes Engine

Su GKE, devi aggiungere l'ambito di accesso cloud-platform durante la creazione del cluster, come illustrato nell'esempio seguente:

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

Compute Engine

Quando utilizzi le istanze VM di Compute Engine, aggiungi l'ambito di accesso cloud-platform a ogni istanza. Quando crei una nuova istanza tramite la console Google Cloud, puoi farlo nella sezione Identità e accesso API del riquadro Crea istanza. Utilizza l'account di servizio predefinito di Compute Engine o un altro account di servizio a tua scelta e seleziona Consenti l'accesso completo a tutte le API Cloud nella sezione Identità e accesso API. A prescindere dall'account di servizio selezionato, assicurati che gli sia stato concesso il ruolo di Writer Error Reporting nella sezione IAM e amministrazione della console Google Cloud.

Cloud Functions

Cloud Functions concede il ruolo Writer Error Reporting per impostazione predefinita.

La libreria Error Reporting per Node.js può essere utilizzata senza dover fornire esplicitamente le credenziali.

Cloud Functions è configurato in modo da utilizzare automaticamente Error Reporting. Le eccezioni JavaScript non gestite verranno visualizzate in Logging ed elaborate da Error Reporting senza dover utilizzare la libreria di Error Reporting per Node.js.

Pubblicazione locale e altrove

Per utilizzare la libreria di Error Reporting per Node.js al di fuori di Google Cloud, ad esempio per eseguire la libreria sulla tua workstation, sui computer del data center o sulle istanze VM di un altro cloud provider, devi fornire l'ID progetto Google Cloud e le credenziali dell'account di servizio appropriate direttamente nella libreria di Error Reporting per Node.js.

Puoi creare e ottenere le credenziali dell'account di servizio manualmente. Quando specifichi il campo Ruolo, utilizza il ruolo Writer errori. Per saperne di più sui ruoli di Identity and Access Management, vai alla Guida al controllo dell'accesso.

Esempio:

// Imports the Google Cloud client library
const {ErrorReporting} = require('@google-cloud/error-reporting');

// Instantiates a client
const errors = new ErrorReporting({
  projectId: 'your-project-id',
  keyFilename: '/path/to/key.json',
});

// Reports a simple error
errors.report('Something broke!');

Visualizzazione dei rapporti degli errori

Nella console Google Cloud, seleziona Error Reporting o fai clic sul pulsante seguente, quindi seleziona un progetto:

Vai a Error Reporting

Per ulteriori informazioni, consulta la sezione Visualizzare gli errori.