Menginstrumentasikan aplikasi Node.js untuk Pelaporan Error

Anda dapat mengirim laporan error ke Error Reporting dari aplikasi Node.js menggunakan library Error Reporting untuk Node.js. Gunakan library Pelaporan Error untuk Node.js guna membuat grup error untuk kasus berikut:

  • Bucket log yang berisi entri log Anda memiliki kunci enkripsi yang dikelola pelanggan (CMEK).
  • Bucket log memenuhi salah satu hal berikut:
    • Bucket log disimpan di project yang sama dengan tempat entri log berasal.
    • Entri log dirutekan ke project, lalu project tersebut menyimpan entri log tersebut di bucket log yang dimilikinya.
  • Anda ingin melaporkan peristiwa error kustom.

Pelaporan Error terintegrasi dengan beberapa layanan Google Cloud, seperti Cloud Functions dan App Engine, Compute Engine, dan Google Kubernetes Engine. Error Reporting menampilkan error yang dicatat ke dalam log Cloud Logging oleh aplikasi yang berjalan di layanan tersebut. Untuk mengetahui informasi selengkapnya, buka Berjalan di Google Cloud di halaman ini.

Anda juga dapat mengirim data error ke Error Reporting menggunakan Logging. Untuk informasi tentang persyaratan pemformatan data, baca Memformat pesan error di Logging.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Error Reporting API .

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Error Reporting API .

    Enable the API

  8. Siapkan lingkungan Anda untuk pengembangan Node.js.

    Buka panduan penyiapan Node.js

Menginstal library klien

Library Pelaporan Error untuk Node.js memungkinkan Anda memantau dan melihat error yang dilaporkan oleh aplikasi Node.js yang berjalan hampir di mana saja.

  1. Gunakan npm untuk menginstal paket:

    npm install --save @google-cloud/error-reporting
  2. Impor library dan buat instance klien untuk mulai melaporkan error:

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

Untuk informasi selengkapnya tentang penginstalan, baca dokumentasi untuk library Pelaporan Error untuk Node.js. Anda juga dapat melaporkan masalah menggunakan issue tracker.

Mengonfigurasi library klien

Anda dapat menyesuaikan perilaku library Pelaporan Error untuk Node.js. Lihat konfigurasi library untuk mengetahui daftar opsi konfigurasi yang mungkin. Opsi ini dapat diteruskan dalam objek options yang diteruskan ke konstruktor library.

Integrasi lainnya

Untuk mengetahui informasi selengkapnya tentang integrasi antara library Pelaporan Error untuk Node.js dan framework web Node.js lainnya, lihat repositori library di GitHub.

Menjalankan aplikasi di Google Cloud

Untuk membuat grup error menggunakan projects.events.report, akun layanan Anda memerlukan peran Error Reporting Writer (roles/errorreporting.writer).

Beberapa layanan Google Cloud secara otomatis memberikan peran Penulis Pelaporan Error (roles/errorreporting.writer) ke akun layanan yang sesuai. Namun, Anda harus memberikan peran ini ke akun layanan yang sesuai untuk beberapa layanan.

Cloud Run dan Cloud Run Functions

Akun layanan default yang digunakan oleh Cloud Run memiliki izin peran Penulis Pelaporan Error (roles/errorreporting.writer).

Library Pelaporan Error untuk Node.js dapat digunakan tanpa perlu memberikan kredensial secara eksplisit.

Cloud Run dikonfigurasi untuk menggunakan Error Reporting secara otomatis. Pengecualian JavaScript yang tidak ditangani akan muncul di Logging dan diproses oleh Error Reporting tanpa perlu menggunakan library Error Reporting untuk Node.js.

Contoh:

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

Lingkungan fleksibel App Engine

App Engine secara otomatis memberikan peran Penulis Pelaporan Error (roles/errorreporting.writer) ke akun layanan default Anda.

Library Pelaporan Error untuk Node.js dapat digunakan tanpa perlu memberikan kredensial secara eksplisit.

Pelaporan Error diaktifkan secara otomatis untuk aplikasi lingkungan fleksibel App Engine. Tidak diperlukan penyiapan tambahan.

Google Kubernetes Engine

Untuk menggunakan Pelaporan Error dengan Google Kubernetes Engine, lakukan tindakan berikut:

  1. Pastikan akun layanan yang akan digunakan oleh penampung Anda telah diberikan peran Error Reporting Writer (roles/errorreporting.writer).

    Anda dapat menggunakan akun layanan default Compute Engine atau akun layanan kustom.

    Untuk mengetahui informasi tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

  2. Buat cluster dan berikan cakupan akses cloud-platform ke cluster.

    Misalnya, perintah pembuatan berikut menentukan cakupan akses cloud-platform dan akun layanan:

    gcloud container clusters create CLUSTER_NAME --service-account  SERVICE_ACCT_NAME --scopes=cloud-platform
    

Compute Engine

Untuk menggunakan Pelaporan Error dengan instance VM Compute Engine, lakukan langkah berikut:

  1. Pastikan akun layanan yang akan digunakan oleh instance VM Anda telah diberikan peran Error Reporting Writer (roles/errorreporting.writer).

    Anda dapat menggunakan akun layanan default Compute Engine atau akun layanan kustom.

    Untuk mengetahui informasi tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

  2. Di Konsol Google Cloud, buka halaman Instance VM:

    Buka instance VM

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Compute Engine.

  3. Pilih instance VM yang ingin Anda terima cakupan akses cloud-platform.

  4. Klik Berhenti, lalu klik Edit.

  5. Di bagian Identity and API access, pilih akun layanan yang memiliki peran Error Reporting Writer (roles/errorreporting.writer).

  6. Di bagian Access scopes, pilih Allow full access to all Cloud APIs, lalu simpan perubahan Anda.

  7. Klik Mulai/Lanjutkan.

Contoh

Anda dapat melaporkan error secara manual dengan memanggil metode report, seperti yang terlihat dalam contoh berikut:

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

Melaporkan error dengan Express.js

Library Pelaporan Error untuk Node.js dapat mengintegrasikan Pelaporan Error ke dalam framework web Node.js populer seperti 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.');
});

Menjalankan aplikasi di lingkungan pengembangan lokal

Untuk menggunakan library Pelaporan Error untuk Node.js di lingkungan pengembangan lokal, seperti menjalankan library di workstation Anda sendiri, Anda harus memberikan library Pelaporan Error untuk Node.js dengan kredensial default aplikasi lokal. Untuk mengetahui informasi selengkapnya, lihat Mengautentikasi ke Error Reporting.

Untuk menggunakan contoh Node.js di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

  1. Install the Google Cloud CLI.
  2. To initialize the gcloud CLI, run the following command:

    gcloud init
  3. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

Untuk informasi selengkapnya, lihat Set up authentication for a local development environment.

Metode projects.events.report juga mendukung kunci API. Jika ingin menggunakan kunci API untuk autentikasi, Anda tidak perlu menyiapkan file Kredensial Default Aplikasi lokal. Untuk informasi selengkapnya, lihat Membuat kunci API dalam dokumentasi autentikasi Google Cloud.

Contoh:

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

Melihat laporan error

Di konsol Google Cloud, buka halaman Pelaporan Error:

Buka Error Reporting

Anda juga dapat menemukan halaman ini menggunakan kotak penelusuran.

Untuk mengetahui informasi selengkapnya, lihat Melihat Error.