Jika error aplikasi Anda tidak muncul di Error Reporting, ikuti langkah-langkah di bawah ini untuk memecahkan masalah.
Sebelum memulai
Pastikan Error Reporting dapat menganalisis log Anda.
Error Reporting adalah layanan global yang dibangun di Cloud Logging dan dapat menganalisis entri log saat semua hal berikut berlaku:
- Entri log disimpan dalam bucket log di lokasi
global
. - Kunci enkripsi yang dikelola pelanggan (Customer-Managed Encryption Key/CMEK) dinonaktifkan di bucket log. Untuk mengetahui informasi cara menentukan konfigurasi CMEK untuk bucket log, lihat Memverifikasi pengaktifan kunci.
- Bucket log memenuhi salah satu dari hal berikut:
- Bucket log disimpan dalam project yang sama tempat log berasal.
- Log dirutekan ke project, lalu project tersebut menyimpan log tersebut dalam bucket log yang dimilikinya.
Untuk melihat apakah Error Reporting dapat menganalisis log, pastikan Anda menyimpan log di bucket di region
global
dengan sumber dan project Google Cloud tujuan yang sama.Untuk melihat daftar sink yang telah Anda konfigurasi, jalankan perintah berikut:
gcloud logging sinks list
Perintah tersebut menampilkan output yang mirip dengan berikut ini:
NAME DESTINATION FILTER _Default logging.googleapis.com/projects/my-team-project/locations/global/buckets/_Default NOT LOG_ID("cloudaudit.googleapis.com/activity") AND NOT LOG_ID("externalaudit.googleapis.com/activity") AND NOT LOG_ID("cloudaudit.googleapis.com/system_event") AND NOT LOG_ID("externalaudit.googleapis.com/system_event") AND NOT LOG_ID("cloudaudit.googleapis.com/access_transparency") AND NOT LOG_ID("externalaudit.googleapis.com/access_transparency") _Required logging.googleapis.com/projects/my-team-project/locations/global/buckets/_Required LOG_ID("cloudaudit.googleapis.com/activity") OR LOG_ID("externalaudit.googleapis.com/activity") OR LOG_ID("cloudaudit.googleapis.com/system_event") OR LOG_ID("externalaudit.googleapis.com/system_event") OR LOG_ID("cloudaudit.googleapis.com/access_transparency") OR LOG_ID("externalaudit.googleapis.com/access_transparency") logs-from-samples logging.googleapis.com/projects/my-team-project/locations/global/buckets/sample-bucket (empty filter) regional_logs logging.googleapis.com/projects/my-team-project/locations/europe-west1/buckets/bucket_for_regional_logs (empty filter) test-logs logging.googleapis.com/projects/team-b-project/locations/global/buckets/test-bucket (empty filter)
Dalam contoh ini, project Google Cloud sumber log adalah
my-team-project
. Sebagai hasilnya:- Error Reporting dapat menganalisis log yang dirutekan oleh sink
_Default
,_Required
, danlogs-from-samples
karena keduanya merutekan log ke bucket yang berada di regionglobal
dalam project yang sama. - Error Reporting tidak dapat menganalisis log yang disimpan di bucket log bernama
test-logs
karena sink dimy-team-project
merutekan log ke bucket log dalam project yang berbeda. - Error Reporting tidak dapat menganalisis log yang dirutekan oleh sink
regional_logs
karena metode tersebut merutekan log ke bucket regional di regioneurope-west1
.
- Entri log disimpan dalam bucket log di lokasi
Pastikan Anda telah menginstal Google Cloud CLI.
Pastikan Anda telah mengaktifkan komponen
beta
untuk gcloud CLI.
Saat menggunakan log
Bagian ini memberikan dukungan pemecahan masalah saat data error Anda ditulis ke bucket Cloud Logging, dan Anda mengandalkan Error Reporting untuk menganalisis bucket log tersebut secara otomatis.
Membuat contoh entri log
Untuk mengonfirmasi setelan project, Anda dapat secara terprogram membuat entri log yang akan diambil oleh Error Reporting dengan perintah gcloud
berikut:
gcloud logging write --payload-type=json test-errors-log \
'{"serviceContext":
{"service": "manual-testing"},
"message": "Test Error\n at /test.js:42:42",
"context": {"httpRequest":
{"url": "/test","method": "GET","responseStatusCode": 500}}}'
Kemudian, buka Error Reporting dan pastikan Anda melihat error yang baru dibuat.
Konfirmasi format entri log
Buka halaman Cloud Logging dan temukan entri log yang berisi data pengecualian yang dikirim dari aplikasi Anda.
Pastikan entri log menggunakan format yang diharapkan.
Saat menggunakan Error Reporting API
Mengaktifkan API
Pada panel navigasi konsol Google Cloud, pilih APIs & Services, klik Enable APIs and Services, lalu aktifkan Error Reporting API:
Buka setelan Error Reporting API
Mengirim error pengujian
Coba kirim error ke layanan secara manual.
Anda dapat melaporkan error pengujian ke Error Reporting menggunakan perintah gcloud
berikut:
gcloud beta error-reporting events report --service Manual --service-version test1 \
--message "java.lang.TestError: msg
at com.example.TestClass.test(TestClass.java:51)
at com.example.AnotherClass(AnotherClass.java:25)"
Anda dapat menggunakan perintah cURL untuk menguji panggilan REST API. Ganti PROJECT_ID
dan API_KEY
dengan nilai yang valid sebelum mengirim perintah berikut:
curl -X POST -H "Content-Type: application/json" \
-d '{"message":"java.lang.TestError: msg\n\tat com.example.TestClass.test(TestClass.java:51)\n\tat com.example.AnotherClass(AnotherClass.java:25)","serviceContext":{"service":"manual-testing"}}' \
https://clouderrorreporting.googleapis.com/v1beta1/projects/PROJECT_ID/events:report?key=API_KEY
Konfirmasi payload yang dikirim
Pastikan aplikasi Anda mengirimkan data pengecualian ke API dalam format yang benar dan berisi atribut yang diperlukan.