Error Reporting für Node.js einrichten

Mithilfe der Stackdriver Error Reporting-Bibliothek für Node.js können Sie Fehlerberichte von Node.js-Anwendungen an Stackdriver Error Reporting senden.

Error Reporting ist in einige Google Cloud Platform-Produkte wie Cloud Functions, App Engine, Compute Engine und Google Kubernetes Engine integriert. In Error Reporting sehen Sie die in Stackdriver Logging protokollierten Fehler der auf diesen Produkten ausgeführten Anwendungen. Weitere Informationen erhalten Sie im Abschnitt In Google Cloud Platform ausführen.

Sie können Fehlerdaten auch mithilfe von Stackdriver Logging an Error Reporting senden. Informationen zu den Datenformatierungsanforderungen finden Sie unter Formatierungsfehler in Stackdriver Logging.

Hinweis

  1. Melden Sie sich in Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, registrieren Sie sich hier für ein neues Konto.

  2. Wählen Sie ein GCP-Projekt aus oder erstellen Sie eines.

    Zur Seite "Ressourcen verwalten"

  3. Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Platform-Projekt aktiviert ist.

    Informationen zum Aktivieren der Abrechnung

  4. Aktivieren Sie die Error Reporting API .

    Aktivieren Sie die API

  5. Bereiten Sie Ihre Umgebung für die Node.js-Entwicklung vor.

    Einrichtungsleitfaden für Node.js aufrufen

Clientbibliothek installieren

Die Stackdriver Error Reporting-Bibliothek für Node.js ermöglicht es Ihnen, die von Node.js-Anwendungen gemeldeten Fehler zu überwachen und anzuzeigen. Wo die Anwendungen ausgeführt werden, ist in den meisten Fällen unerheblich.

  1. Installieren Sie das Paket mit npm:

    npm install --save @google-cloud/error-reporting
  2. Importieren Sie die Bibliothek und instanziieren Sie einen Client, um mit der Meldung von Fehlern zu starten:

    // Imports the Google Cloud client library
    const ErrorReporting = require('@google-cloud/error-reporting')
      .ErrorReporting;
    
    // On Node 6+ the following syntax can be used instead:
    // const {ErrorReporting} = require('@google-cloud/error-reporting');
    
    // With ES6 style imports via TypeScript or Babel, the following
    // syntax can be used instead:
    // import {ErrorReporting} from '@google-cloud/error-reporting';
    
    // Instantiates a client
    const errors = new ErrorReporting();
    
    // Reports a simple error
    errors.report('Something broke!');

Weitere Informationen zur Installation finden Sie in der Dokumentation zur Stackdriver Error Reporting-Bibliothek für Node.js. Probleme können Sie über die Problemverfolgung melden.

Clientbibliothek konfigurieren

Sie können das Verhalten der Stackdriver Error Reporting-Bibliothek für Node.js anpassen. Eine Liste der möglichen Konfigurationsoptionen finden Sie in der Konfiguration der Bibliothek. Sie haben die Möglichkeit, diese Optionen im Objekt options an den Konstruktor der Bibliothek zu übergeben.

Fehler melden

Sie können einen Fehler manuell durch Aufruf der Methode report melden, wie im folgenden Beispiel gezeigt:

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

// On Node 6+ the following syntax can be used instead:
// const {ErrorReporting} = require('@google-cloud/error-reporting');

// With ES6 style imports via TypeScript or Babel, the following
// syntax can be used instead:
// import {ErrorReporting} from '@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!');
});

Fehler mit Express.js melden

Mithilfe der Stackdriver Error Reporting-Bibliothek für Node.js kann Stackdriver Error Reporting in gängige Node.js-Web-Frameworks wie Express.js integriert werden:

const express = require('express');

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

// On Node 6+ the following syntax can be used instead:
// const {ErrorReporting} = require('@google-cloud/error-reporting');

// With ES6 style imports via TypeScript or Babel, the following
// syntax can be used instead:
// import {ErrorReporting} from '@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.');
});

Sonstige Integrationen

Weitere Informationen zu Integrationen der Stackdriver Error Reporting-Bibliothek für Node.js und andere Node.js-Web-Frameworks erhalten Sie im Repository der Bibliothek auf GitHub.

In Google Cloud Platform ausführen

Für die Verwendung der Stackdriver Error Reporting-Bibliothek für Node.js ist die Cloud IAM-Rolle Error Reporting-Schreiber erforderlich. Die meisten Compute-Plattformen von Google Cloud Platform stellen diese Rolle standardmäßig zur Verfügung.

Flexible App Engine-Umgebung

In der App Engine wird die Rolle des Error Reporting-Schreibers standardmäßig zugewiesen.

Die Stackdriver Error Reporting-Bibliothek für Node.js kann verwendet werden, ohne dass Anmeldeinformationen explizit angegeben werden müssen.

Error Reporting wird für Anwendungen in flexiblen App Engine-Umgebungen automatisch aktiviert. Es ist keine zusätzliche Einrichtung erforderlich.

GKE

In GKE müssen Sie beim Erstellen des Clusters den Zugriffsbereich cloud-platform wie im folgenden Beispielbefehl einrichten:

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

Compute Engine

Wenn Sie Compute Engine-VM-Instanzen verwenden, ergänzen Sie jede Instanz um den Zugriffsbereich cloud-platform. Neue Instanzen können Sie über die Google Cloud Platform Console im Feld Instanz erstellen unter Identität und API-Zugriff erstellen. Verwenden Sie das Compute Engine-Standarddienstkonto oder ein anderes Dienstkonto und wählen Sie im Abschnitt Identität und API-Zugriff die Option Uneingeschränkten Zugriff auf alle Cloud APIs zulassen aus. Achten Sie bei jedem ausgewählten Dienstkonto darauf, dass diesem im Abschnitt IAM & Verwaltung der GCP Console die Rolle Error Reporting-Schreiber zugewiesen ist.

Cloud Functions

In Cloud Functions wird die Rolle des Error Reporting-Schreibers standardmäßig zugewiesen.

Die Stackdriver Error Reporting-Bibliothek für Node.js kann verwendet werden, ohne dass Anmeldeinformationen explizit angegeben werden müssen.

Cloud Functions ist automatisch für die Verwendung von Error Reporting konfiguriert. Unverarbeitete JavaScript-Ausnahmen werden in Stackdriver Logging angezeigt und von Error Reporting verarbeitet, ohne dass dafür die Stackdriver Error Reporting-Bibliothek für Node.js angewendet werden muss.

Lokal und extern ausführen

Wenn Sie die Stackdriver Error Reporting-Bibliothek für Node.js außerhalb der Google Cloud Platform verwenden möchten, übergeben Sie Ihre GCP-Projekt-ID und die entsprechenden Dienstkonto-Anmeldedaten direkt an die Stackdriver Error Reporting-Bibliothek für Node.js. Dies gilt für die Ausführung der Bibliothek auf Ihrer eigenen Workstation, auf den Computern Ihres Rechenzentrums oder auf den VM-Instanzen eines anderen Cloudanbieters. Weitere Informationen finden Sie unter Dienstkonto-Anmeldedaten manuell abrufen und bereitstellen.

Beispiel:

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

// On Node 6+ the following syntax can be used instead:
// const {ErrorReporting} = require('@google-cloud/error-reporting');

// With ES6 style imports via TypeScript or Babel, the following
// syntax can be used instead:
// import {ErrorReporting} from '@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!');

Fehlerberichte ansehen

Nach der Bereitstellung können Sie Fehlerberichte im Error Reporting-Dashboard der Cloud Platform Console ansehen.

Error Reporting-Dashboard aufrufen

Weitere Informationen finden Sie unter Fehler anzeigen.

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Stackdriver Error Reporting