Node.js-Apps für Error Reporting instrumentieren

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

Error Reporting ist in einige Google Cloud-Dienste wie Cloud Functions, App Engine, Compute Engine und Google Kubernetes Engine eingebunden. In Error Reporting sehen Sie die in Cloud Logging protokollierten Fehler der auf diesen Diensten ausgeführten Anwendungen. Weitere Informationen finden Sie auf dieser Seite im Abschnitt Auf der Google Cloud Platform ausführen.

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

Hinweis

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist

  4. Error Reporting API aktivieren.

    Aktivieren Sie die API

  5. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  6. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist

  7. Error Reporting API aktivieren.

    Aktivieren Sie die API

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

    Einrichtungsleitfaden für Node.js aufrufen

Clientbibliothek installieren

Mit der Error Reporting-Bibliothek für Node.js können Sie die von Node.js-Anwendungen gemeldeten Fehler im Blick behalten und abrufen. Dabei ist es in den meisten Fällen unerheblich, wo die Anwendungen ausgeführt werden.

  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 beginnen:

    // 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!');

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

Clientbibliothek konfigurieren

Das Verhalten der Error Reporting-Bibliothek für Node.js kann angepasst werden. 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 auch manuell melden. Dazu rufen Sie die Methode report wie im folgenden Beispiel gezeigt auf:

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

Fehler mit Express.js melden

Mit der Error Reporting-Bibliothek für Node.js lässt sich Error Reporting in gängige Node.js-Web-Frameworks wie Express.js einbinden:

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

Sonstige Integrationen

Weitere Informationen zur Einbindung der Error Reporting-Bibliothek für Node.js und andere Node.js-Web-Frameworks finden Sie im Repository der Bibliothek auf GitHub.

In Google Cloud ausführen

Zur Verwendung der Error Reporting-Bibliothek für Node.js ist die Rolle Error Reporting-Autor von Identity and Access Management erforderlich. Die meisten Computing-Plattformen von Google Cloud stellen diese Rolle standardmäßig zur Verfügung.

Sie können Error Reporting für Node.js in den folgenden Google Cloud-Umgebungen konfigurieren.

Flexible App Engine-Umgebung

In App Engine wird die Rolle Error Reporting-Autor standardmäßig zugewiesen.

Die Error Reporting-Bibliothek für Node.js kann verwendet werden, ohne dass Anmeldedaten 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.

Google Kubernetes Engine

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

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

Compute Engine

Wenn Sie Compute Engine-VM-Instanzen verwenden, fügen Sie der jeweiligen Instanz den Zugriffsbereich für cloud-platform hinzu. Wenn Sie über die Google Cloud Console eine neue Instanz erstellen, können Sie dies im Bereich Instanz erstellen im Bereich Identität und API-Zugriff tun. 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 darauf, dass jedem ausgewählten Dienstkonto im Abschnitt IAM & amp; Verwaltung der Google Cloud Console die Rolle Error Reporting-Autor zugewiesen ist.

Cloud Functions

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

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

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

Lokal und extern ausführen

Wenn Sie die Error Reporting-Bibliothek für Node.js außerhalb von Google Cloud verwenden möchten, beispielsweise auf Ihrer eigenen Workstation, auf den Computern Ihres Rechenzentrums oder auf den VM-Instanzen eines anderen Cloud-Anbieters, müssen Sie Ihre Google Cloud-Projekt-ID und die entsprechenden Dienstkonto-Anmeldedaten direkt in der Error Reporting-Bibliothek für Node.js angeben.

Sie können Anmeldeinformationen für Dienstkonten manuell erstellen und abrufen. Geben Sie dafür im Feld Rolle die Rolle Error Reporting-Autor an. Weitere Informationen zu den IAM-Rollen finden Sie in der Anleitung zur Zugriffssteuerung.

Beispiel:

// 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!');

Fehlerberichte ansehen

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

Error Reporting-Dashboard aufrufen

Weitere Informationen finden Sie unter Fehler anzeigen.