Setelah tugas transformasi data dimulai, hasil transformasi dikirim ke Logstore tujuan berdasarkan aturan routing. Jika tugas gagal—misalnya, tidak ada log yang dihasilkan di Logstore tujuan atau terjadi penundaan signifikan—topik ini menjelaskan cara melakukan troubleshooting terhadap masalah tersebut.
Analisis error
Saat terjadi error, mengidentifikasi tahap di mana error tersebut muncul membantu Anda menemukan akar permasalahan secara lebih efisien.
Berdasarkan Cara kerja, tugas transformasi data terdiri dari empat tahap utama.
Error dapat terjadi pada tahap mana pun. Penyebab, dampak, dan metode troubleshooting berbeda-beda untuk setiap tahap.
Mulai mesin transformasi data.
Error pada tahap ini umumnya terjadi ketika mesin transformasi data mendeteksi masalah dalam aturan DSL Anda saat startup, sehingga pemeriksaan keamanan internal gagal.
Jika terjadi error pada tahap ini, tugas transformasi data akan berhenti. Anda harus memperbaiki aturan DSL dan me-restart tugas tersebut. Jika restart berhasil, tugas akan kembali berjalan normal tanpa kehilangan data atau redundansi data.
Untuk informasi tentang cara melakukan troubleshooting error pada tahap ini, lihat Error startup mesin transformasi data.
Baca data dari Logstore sumber.
Error pada tahap ini dapat disebabkan oleh masalah akses ke Logstore sumber, yang mungkin berasal dari kesalahan konfigurasi, masalah jaringan, atau perubahan pengaturan Logstore.
Tugas transformasi data akan terus mencoba ulang hingga berhasil atau dihentikan secara manual. Setelah berhasil, tugas kembali berjalan normal tanpa kehilangan data.
Jika error terjadi setelah sebagian data telah dibaca, layanan menyimpan checkpoint dan terus mencoba ulang. Setelah berhasil mencoba ulang, pembacaan dilanjutkan dari checkpoint tersebut, sehingga mencegah kehilangan atau duplikasi data. Jika tugas dihentikan selama proses mencoba ulang, tidak akan terjadi kehilangan atau duplikasi data.
Untuk informasi tentang cara melakukan troubleshooting error pada tahap ini, lihat Error pembacaan Logstore sumber.
Transformasi event log.
Error pada tahap ini terutama terjadi ketika sebagian atau seluruh event log tidak kompatibel dengan aturan transformasi.
Pada tahap ini, error dipicu oleh event log yang tidak kompatibel dengan aturan transformasi. Error diklasifikasikan sebagai level
WARNINGatauERROR, yang ditunjukkan oleh bidanglogging.levelnamedalam log pemrosesan.Untuk error level
ERROR, event log yang bersangkutan akan dibuang dan tidak termasuk dalam output hasil transformasi.Untuk error level
WARNING, seperti ketika suatu event tidak sesuai dengan aturan ekspresi reguler, langkah DSL saat ini dilewati untuk event tersebut, dan pemrosesan dilanjutkan ke langkah berikutnya.
Untuk informasi tentang cara melakukan troubleshooting error pada tahap ini, lihat Error aturan transformasi.
Ekspor ke Logstore tujuan.
Error pada tahap ini dapat disebabkan oleh masalah akses ke Logstore tujuan, yang mungkin berasal dari kesalahan konfigurasi, masalah jaringan, atau perubahan pengaturan Logstore.
Tugas transformasi data akan terus mencoba ulang hingga berhasil atau dihentikan secara manual. Setelah berhasil, tugas kembali berjalan normal tanpa kehilangan data.
Jika terjadi error setelah sebagian data diekspor—misalnya, Anda memiliki dua tujuan dan satu berhasil sementara yang lain gagal—tugas akan menyimpan checkpoint dan terus mencoba ulang. Setelah berhasil mencoba ulang, tidak akan terjadi kehilangan atau duplikasi data. Namun, jika Anda menghentikan dan me-restart tugas selama proses ini, tugas akan dilanjutkan dari checkpoint terakhir. Dalam kasus ini, tidak ada data yang hilang, tetapi redundansi data mungkin terjadi.
Untuk informasi tentang cara melakukan troubleshooting error pada tahap ini, lihat Troubleshoot error penulisan untuk Logstore tujuan.
Troubleshooting umum
Verifikasi bahwa data sedang ditulis ke Logstore tujuan.
Untuk memeriksa apakah data baru-baru ini ditulis ke Logstore tujuan, lihat datanya di halaman consumption preview Logstore tujuan tersebut.
CatatanMenanyakan (query) Logstore secara langsung mungkin tidak akurat karena alasan berikut:
Transformasi data memproses log berdasarkan waktu penerimaannya. Jika Anda memproses log historis, waktu penulisannya mungkin tidak termasuk dalam rentang waktu kueri Anda.
Anda hanya dapat melakukan kueri terhadap log historis setelah log tersebut diindeks, yang biasanya membutuhkan beberapa menit. Oleh karena itu, data dari tugas yang menulis log historis mungkin belum dapat diakses segera.
Periksa status tugas transformasi data.
Periksa progres tugas untuk memastikan apakah tugas telah dimulai. Untuk informasi lebih lanjut, lihat Lihat status tugas transformasi data. Tugas dengan rentang waktu tetap akan berhenti otomatis setelah mencapai waktu akhir.
Periksa kelompok konsumen yang terkait dengan tugas tersebut. Pastikan kelompok tersebut diaktifkan dan statusnya terus diperbarui.
Di halaman Consumer Group Status, periksa kolom Latest Data Consumption Time untuk setiap shard guna memastikan apakah timestamp-nya terus diperbarui. Jika timestamp tidak berubah, berarti kelompok konsumen tidak mengonsumsi data seperti yang diharapkan.
Lihat Lihat log error untuk memeriksa adanya exception. Kemudian, gunakan informasi dalam Analisis error untuk menemukan penyebab dan menyelesaikan masalah tersebut.
Periksa apakah Logstore sumber menghasilkan data.
Verifikasi bahwa log ada di Logstore sumber dalam rentang waktu tugas transformasi data.
Jika tidak ada waktu akhir yang dikonfigurasi, periksa apakah log baru terus dihasilkan di Logstore sumber. Tugas transformasi data tidak dapat berjalan jika tidak ada log baru dan tidak ada log historis dalam rentang waktu yang ditentukan.
Jika Anda memilih rentang waktu historis, verifikasi bahwa log ada di Logstore sumber dalam rentang tersebut.
Klik Ubah aturan transformasi tugas transformasi data untuk tugas tersebut, pilih rentang waktu yang relevan, lalu periksa apakah log mentah tersedia.
Periksa kemungkinan masalah dalam aturan transformasi.
Periksa aturan transformasi Anda untuk kode yang mungkin menyebabkan masalah. Contoh:
Aturan tersebut memodifikasi waktu log, sehingga log tersebut berada di luar rentang waktu kueri.
Aturan transformasi membuang log berdasarkan kondisi tertentu.
Sebagai contoh, kode berikut membuang semua log di mana bidang
nametidak ada atau kosong. Logika sebelumnya bertanggung jawab untuk membuat bidangname. Jika logika sebelumnya bermasalah dan bidangnametidak dibuat dengan benar, maka tidak akan ada log yang dihasilkan.# .... Logika sebelumnya. # .... Membangun bidang name... e_keep(e_search('name: "?"'))Jika logika Anda menarik data dari sumber pihak ketiga untuk enrichment, periksa apakah set data pihak ketiga tersebut terlalu besar. Hal ini dapat menyebabkan tugas transformasi data berada dalam status initializing dalam waktu lama sebelum mulai mengonsumsi data. Contoh:
e_dict_map(res_rds_mysql(..database="userinfo", table="user"), "username", ["city", "school", "age"])
Klik Ubah aturan transformasi tugas transformasi data untuk tugas tersebut, pilih rentang waktu, lalu klik Preview Data untuk melihat hasilnya.
Jika Anda dapat mereproduksi masalah tersebut, Anda dapat melakukan debugging dengan memberi komentar pada pernyataan tertentu dan melihat pratinjau hasilnya lagi.
Konfirmasi bahwa jumlah shard sesuai ekspektasi.
Jika Anda menemukan bahwa transformasi data terlalu lambat, pertimbangkan apakah konfigurasi Logstore sumber dan tujuan Anda memenuhi persyaratan performa. Kami menyarankan menyesuaikan jumlah shard di Logstore sumber atau tujuan.
Menampilkan log error
Anda dapat melihat log error dengan metode berikut.
Anda dapat melihat data di Logstore
internal-etl-log.Log yang dihasilkan oleh tugas transformasi data disimpan di Logstore
internal-etl-log. Logstore ini dibuat secara otomatis oleh sistem setelah tugas transformasi data dijalankan.internal-etl-logadalah Logstore khusus yang gratis. Anda tidak dapat mengubah konfigurasinya atau menulis data lain ke dalamnya.Di
internal-etl-log, bidang__topic__pada setiap event log menampilkan status tugas transformasi data. Anda dapat menggunakan bidang ini untuk menentukan apakah terjadi error pada tugas transformasi data yang bersangkutan.Anda dapat melihat informasi error spesifik di bidang
messagedanreasonpada setiap event log, seperti pada contoh berikut.1 07-24 17:16:24 __source__: 172.20.3.39 __tag__:__job_name__: etl-1563959389-739231 __tag__:__schedule_id__: f474510ad3c7e4c233995018c95b32d6 __tag__:__schedule_type__: Resident __topic__: __etl-log-status__ event_id: transorm_data:put_logs:fail logging: {} funcName: "put_logs_auto_div" processName: "MainProcess" thread: "140066601039616" threadName: "ThreadPoolExecutor-0_1" process: "1" levelname: "WARNING" module: "logclient_operator" message: transorm_data: fail to send event to endpoint eu-west-1-intranet.log.aliyuncs.com:80, project ali-licheng-test-uk2, logstore sdasda, detail: {"errorCode": "LogStoreNotExist", "errorMessage": "logstore sdasda does not exist", "requestId": "5D3821E8956DED973F2B500A"} reason: transorm_data: fail to send event to endpoint eu-west-1-intranet.log.aliyuncs.com:80, project ali-licheng-test-uk2, logstore sdasda, detail: {"errorCode": "LogStoreNotExist", "errorMessage": "logstore sdasda does not exist", "requestId": "5D3821E8956DED973F2B500A"}
Lihat error di dashboard.
Klik tugas transformasi data yang dituju dan lihat dashboard di area Execution Status pada halaman Data Transformation Overview.
Pesan error detail terdapat di kolom
reasonpada detail exception.Kolom
reasonpada halaman detail exception menampilkan pesan error spesifik. Misalnya,error occur when create consumer group, errorCode: Unauthorized, errorMessage: AccessKeyId not found:menunjukkan bahwa otentikasi gagal saat kelompok konsumen sedang dibuat karenaAccessKeyIdtidak ditemukan.Lihat error di Konsol.
Konsol Log Service menampilkan log error dari fase pratinjau secara langsung. Fase pratinjau mensimulasikan operasi aturan transformasi dan menampilkan hasil yang diharapkan tanpa melakukan perubahan aktual pada Logstore sumber atau tujuan. Oleh karena itu, error apa pun yang ditemui selama fase pratinjau tidak memengaruhi event log sumber Anda.
Batasan pratinjau
Transformasi data pada fase pratinjau memiliki beberapa keterbatasan dibandingkan tugas transformasi data aktual.
Fase pratinjau tidak dapat mendeteksi masalah izin pada kredensial Logstore sumber.
Fase pratinjau tidak membuat kelompok konsumen untuk mengonsumsi data, sehingga tidak memeriksa izin kelompok konsumen.
Fase pratinjau tidak dapat mendeteksi nama tujuan yang salah dalam aturan transformasi.
Fase pratinjau tidak melakukan operasi penulisan aktual ke tujuan, sehingga tidak memeriksa apakah tujuan yang dikonfigurasi benar-benar ada.
Fase pratinjau tidak dapat mendeteksi error konfigurasi untuk tujuan.
Ini mencakup kesalahan konfigurasi Project tujuan, Logstore, atau izin AccessKey.
Fase pratinjau tidak melakukan operasi penulisan aktual ke tujuan, sehingga tidak memeriksa apakah konfigurasi tujuan tersebut benar.
Pratinjau tidak mencakup semua data.
Secara default, fase pratinjau hanya menarik 1.000 event log dari Logstore sumber untuk ditransformasi.
Jika 1.000 event log pertama tidak menghasilkan output transformasi, layanan akan terus menarik data hingga maksimal lima menit sampai hasil dihasilkan.