Memeriksa aplikasi yang mengalami error untuk menemukan error menggunakan Error Reporting

Error Reporting menyediakan satu tempat untuk memantau kondisi error dari semua aplikasi dan layanan dalam project Google Cloud dan dari aplikasi Amazon Elastic Compute Cloud (EC2).

Dalam panduan ini, kita akan mempelajari cara melakukan hal-hal berikut:

  1. Simulasikan error dari layanan di project Google Cloud .

  2. Gunakan Error Reporting untuk melihat error dan mengubah status error sehingga orang lain di tim Anda tahu bahwa masalah tersebut sedang ditangani.

  3. Siapkan notifikasi agar Anda tahu saat jenis error baru terjadi.


Untuk mengikuti panduan langkah demi langkah tugas ini langsung di Google Cloud konsol, klik Pandu saya:

Pandu saya


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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  6. Buka Cloud Shell untuk Google Cloud project Anda. Saat dimulai, pesan Menghubungkan akan ditampilkan.

    Buka Cloud Shell.

Menyimulasikan error

  1. Untuk menghasilkan 11 contoh error, jalankan skrip berikut di Cloud Shell:

      COUNTER=0
      while [  $COUNTER -lt 11 ]; do
          gcloud beta error-reporting events report --service tutorial --service-version v$((COUNTER/10+1)) \
              --message "java.lang.RuntimeException: Error rendering template $COUNTER
                at com.example.TestClass.test(TestClass.java:51)
                at com.example.AnotherClass(AnotherClass.java:25)
                at javax.servlet.http.HttpServlet.service (HttpServlet.java:617)
                at javax.servlet.http.HttpServlet.service (HttpServlet.java:717)"
          if [ $COUNTER -eq 10 ]; then
            echo "All sample errors reported."
          fi
          let COUNTER=COUNTER+1
      done
    

    Setelah skrip selesai membuat semua error, skrip akan mencetak baris berikut:

    All sample errors reported.

Melihat error di Error Reporting

  1. Di konsol Google Cloud , buka halaman Error Reporting:

    Buka Error Reporting

    Anda juga dapat menemukan halaman ini dengan menggunakan kotak penelusuran.

    Dasbor Pelaporan Error menampilkan daftar ringkasan setiap error yang ditemukan dan jumlah kemunculan setiap error. Jika Muat ulang otomatis diaktifkan, Pelaporan Error akan otomatis memuat ulang daftar error setiap 10 detik.

    Screenshot berikut menunjukkan contoh halaman pelaporan error:

    Antarmuka pengguna yang menampilkan daftar error.

  2. Klik nama error untuk melihat halaman detail error, yang berisi semua informasi yang tersedia tentang error. Jika Gemini diaktifkan di project, Anda dapat menggunakan Gemini untuk mendapatkan saran pemecahan masalah.

Mengonfigurasi notifikasi

Anda dapat mengonfigurasi Pelaporan Error untuk memberi tahu Anda saat jenis error baru muncul. Notifikasi tidak dikirim saat ada kemunculan baru error yang sudah ada:

  1. Di konsol Google Cloud , buka halaman Error Reporting:

    Buka Error Reporting

    Anda juga dapat menemukan halaman ini dengan menggunakan kotak penelusuran.

  2. Untuk mengaktifkan notifikasi email, klik Lainnya dan pilih Aktifkan notifikasi error baru untuk project dari menu drop-down.

  3. Untuk menghasilkan jenis error baru, klik Activate Cloud ShellTombol Activate Shell dan jalankan skrip berikut:

      COUNTER=0
      while [ $COUNTER -lt 3 ]; do
            gcloud beta error-reporting events report --service tutorial --service-version v1 \
                --message "java.lang.ArrayIndexOutOfBoundsException: $COUNTER
                  at com.example.AppController.createUser(AppController.java:42)
                  at com.example.User(User.java:31)
                  at javax.servlet.http.HttpServlet.service (HttpServlet.java:617)
                  at javax.servlet.http.HttpServlet.service (HttpServlet.java:717)"
          if [ $COUNTER -eq 10 ]; then
            echo "All sample errors reported."
          fi
          let COUNTER=COUNTER+1
      done
    

    Setelah skrip selesai membuat semua error, skrip akan mencetak baris berikut:

    All sample errors reported.

  4. Periksa email Anda untuk melihat pesan dari "Stackdriver Notifications".

Membuat pesan error dari aplikasi App Engine

Meskipun pesan contoh yang Anda buat dari skrip sepenuhnya menyimulasikan kondisi error di Error Reporting, jika Anda ingin membuat error dari layanan nyata yang berjalan di project Anda, ikuti langkah-langkah di bagian ini. Google Cloud

Men-deploy aplikasi

Untuk mendownload dan men-deploy aplikasi ke App Engine, lakukan hal berikut:

  1. Download dan konfigurasi aplikasi dari project GitHub python-docs-samples:

    1. Clone project ke Cloud Shell Anda:

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      

      Git akan menampilkan pesan yang mirip dengan ini:

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      Cloning into 'python-docs-samples'...
      
    2. Buat lingkungan Python yang terisolasi dan aktifkan:

      cd python-docs-samples/appengine/standard_python3/hello_world
      virtualenv env -p python3
      source env/bin/activate
      
    3. Instal dependensi:

      pip install -r requirements.txt
      
  2. Pastikan penginstalan dan konfigurasi aplikasi berhasil:

    1. Jalankan aplikasi:

      python main.py
      
    2. Untuk melihat aplikasi di halaman web lokal, klik link yang ditampilkan di Cloud Shell. Halaman web menampilkan Hello World!.

    3. Untuk menghentikan aplikasi yang sedang berjalan, masukkan Ctrl-C di Cloud Shell.

  3. Upload aplikasi Anda ke App Engine:

    gcloud app deploy
    

    Jika diminta untuk memilih region deployment, pilih salah satu yang dekat dengan Anda. Masukkan Y saat ditanya apakah Anda ingin melanjutkan. Setelah beberapa saat, upload akan selesai.

  4. Lihat aplikasi Anda di browser dengan menjalankan perintah berikut di Cloud Shell:

    gcloud app browse
    

    Jika Google Cloud CLI tidak dapat menemukan browser Anda, perintah sebelumnya akan menampilkan pesan error dan link. Klik link yang ditampilkan. Pesan Hello, World! ditampilkan di browser.

Menghasilkan error

Untuk membuat error yang ditangkap dan ditampilkan oleh Pelaporan Error, lakukan hal berikut:

  1. Mengedit main.py dan mengubahnya

    return 'Hello World!
    

    sampai

    return 'Hello World!' + 1000
    

    Saat dijalankan, perubahan ini menyebabkan pengecualian TypeError Python karena menggabungkan string dan bilangan bulat adalah tindakan ilegal.

  2. Upload aplikasi yang telah diubah ke App Engine:

    gcloud app deploy
    
  3. Kembali ke tab browser yang berisi aplikasi yang sedang berjalan, lalu muat ulang halaman. Karena perubahan Anda, halaman akan menampilkan pesan error, bukan Hello, World!:

    Internal Server Error
    The server encountered an internal error and was unable to complete your
    request. Either the server is overloaded or there is an error in the
    application.
    

    Jika Anda tidak melihat pesan ini, tunggu sebentar dan muat ulang lagi. Mungkin perlu waktu beberapa saat sebelum versi baru diaktifkan.

Melihat error di Error Reporting

Untuk melihat error, ikuti petunjuk di bagian sebelumnya Melihat error di Pelaporan Error.

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Langkah berikutnya