Memecahkan masalah metrik berbasis log

Halaman ini memberikan informasi pemecahan masalah untuk skenario umum saat menggunakan metrik berbasis log di Cloud Logging.

Tidak dapat melihat atau membuat metrik

Metrik berbasis log hanya berlaku untuk satu project Google Cloud atau untuk bucket Logging dalam project Google Cloud. Anda tidak dapat membuat metrik berbasis log untuk resource Google Cloud lainnya seperti akun penagihan atau organisasi. Metrik berbasis log dihitung untuk log hanya di project atau bucket Google Cloud tempat log diterima.

Untuk membuat metrik, Anda memerlukan izin Identity and Access Management yang benar. Untuk mengetahui detailnya, lihat Kontrol akses dengan IAM: Metrik berbasis log.

Metrik tidak memiliki data log

Ada beberapa kemungkinan alasan data tidak ada dalam metrik berbasis log:

  • Entri log baru mungkin tidak cocok dengan filter metrik Anda. Metrik berbasis log mendapatkan data dari entri log yang cocok yang diterima setelah metrik dibuat. Logging tidak mengisi ulang metrik dari entri log sebelumnya.

  • Entri log baru mungkin tidak berisi kolom yang benar, atau data mungkin tidak dalam format yang benar untuk diekstrak oleh metrik distribusi Anda. Pastikan nama kolom dan ekspresi reguler Anda sudah benar.

  • Jumlah metrik Anda mungkin tertunda. Meskipun entri log yang dapat dihitung muncul di Logs Explorer, mungkin perlu waktu hingga 10 menit untuk memperbarui metrik berbasis log di Cloud Monitoring.

  • Entri log yang ditampilkan mungkin dihitung terlambat atau mungkin tidak dihitung sama sekali, karena stempel waktunya terlalu jauh di masa lalu atau masa mendatang. Jika entri log diterima oleh Cloud Logging lebih dari 24 jam yang lalu atau 10 menit pada masa mendatang, entri log tidak akan dihitung dalam metrik berbasis log.

    Jumlah entri yang terlambat dicatat dalam metrik berbasis log logging.googleapis.com/logs_based_metrics_error_count.

    Contoh: Entri log yang cocok dengan metrik berbasis log tiba terlambat. timestamp-nya adalah 14.30 pada 20 Februari 2020 dan receivedTimestamp-nya adalah 14.45 pada 21 Februari 2020. Entri ini tidak akan dihitung dalam metrik berbasis log.

  • Metrik berbasis log dibuat setelah entri log yang mungkin dihitung oleh metrik tersebut tiba. Metrik berbasis log mengevaluasi entri log saat disimpan dalam bucket log; metrik ini tidak mengevaluasi entri log yang disimpan di Logging.

  • Metrik berbasis log memiliki celah dalam data. Beberapa kesenjangan data dapat terjadi, karena sistem yang memproses data metrik berbasis log tidak menjamin persistensi setiap titik data metrik. Jika terjadi, kesenjangan biasanya jarang dan berdurasi singkat. Namun, jika Anda memiliki kebijakan pemberitahuan yang memantau metrik berbasis log, kesenjangan dalam data dapat menyebabkan notifikasi palsu. Setelan yang Anda gunakan dalam kebijakan pemberitahuan dapat mengurangi kemungkinan ini.

    Contoh: Entri log "heartbeat" ditulis setiap lima menit, dan metrik berbasis log menghitung jumlah entri log "heartbeat". Kebijakan pemberitahuan menjumlahkan jumlah dalam interval lima menit dan memberi tahu Anda saat totalnya kurang dari satu. Jika deret waktu tidak memiliki titik data, kebijakan pemberitahuan akan memasukkan nilai sintetis, yang merupakan duplikat dari sampel terbaru dan kemungkinan besar nol, lalu mengevaluasi kondisi. Oleh karena itu, bahkan satu titik data yang hilang dapat menyebabkan nilai jumlah menjadi nol, yang menyebabkan kebijakan pemberitahuan ini mengirim notifikasi.

    Untuk mengurangi risiko pemberitahuan palsu, konfigurasikan kebijakan untuk menghitung beberapa entri log "heartbeat", bukan hanya satu.

Jenis resource "tidak ditentukan" di Cloud Monitoring

Beberapa jenis resource yang dimonitor Cloud Logging tidak dipetakan langsung ke jenis resource yang dimonitor Cloud Monitoring. Misalnya, saat pertama kali membuat kebijakan pemberitahuan atau diagram dari metrik berbasis log, Anda mungkin melihat bahwa jenis resource-nya adalah "undefined".

Jenis resource tidak ditentukan.

Jenis resource yang dimonitor dipetakan ke global atau jenis resource yang dimonitor lain di Cloud Monitoring. Lihat Pemetaan untuk resource khusus Logging untuk menentukan jenis resource yang dipantau yang perlu Anda pilih.

Insiden tidak dibuat atau merupakan positif palsu

Anda mungkin mendapatkan insiden atau situasi positif palsu saat Pemantauan tidak membuat insiden dari metrik berbasis log karena periode penyelarasan untuk kebijakan pemberitahuan terlalu singkat. Anda mungkin mengalami positif palsu dalam skenario berikut:

  • Jika kebijakan pemberitahuan menggunakan logika kurang dari.
  • Jika kebijakan pemberitahuan didasarkan pada kondisi persentil untuk metrik distribusi.
  • Jika ada kesenjangan dalam data metrik.

Insiden positif palsu dapat terjadi karena entri log dapat dikirim ke Logging terlambat. Misalnya, kolom log timestamp dan receiveTimestamp dapat memiliki delta menit dalam beberapa kasus. Selain itu, saat Logging menyimpan log dalam bucket log, ada penundaan bawaan antara saat entri log dibuat dan saat Logging menerimanya. Artinya, Logging mungkin tidak memiliki jumlah total untuk entri log tertentu hingga beberapa waktu kemudian setelah entri log dibuat. Inilah sebabnya kebijakan pemberitahuan yang menggunakan logika kurang dari atau berdasarkan kondisi persentil untuk metrik distribusi dapat menghasilkan pemberitahuan positif palsu: belum semua entri log diperhitungkan.

Namun, metrik berbasis log pada akhirnya konsisten karena entri log yang cocok dengan metrik berbasis log dapat dikirim ke Logging dengan timestamp yang jauh lebih lama atau lebih baru dari receiveTimestamp log.

Artinya, metrik berbasis log dapat menerima entri log dengan stempel waktu yang lebih lama setelah entri log yang ada dengan stempel waktu yang sama telah diterima oleh Logging. Dengan demikian, nilai metrik harus diperbarui.

Agar notifikasi tetap akurat bahkan untuk data tepat waktu, sebaiknya tetapkan periode penyelarasan untuk kondisi minimal 10 menit. Secara khusus, nilai ini harus cukup besar untuk memastikan bahwa beberapa entri log yang cocok dengan filter Anda dihitung. Misalnya, jika metrik berbasis log menghitung entri log "heartbeat", yang diharapkan setiap N menit, tetapkan periode perataan ke 2N menit atau 10 menit, mana saja yang lebih besar:

  • Jika Anda menggunakan konsol Google Cloud, gunakan menu Rolling window untuk menetapkan periode perataan.

  • Jika Anda menggunakan API, gunakan kolom aggregations.alignmentPeriod dari kondisi untuk menetapkan periode perataan.

Metrik memiliki terlalu banyak deret waktu

Jumlah deret waktu dalam metrik bergantung pada jumlah kombinasi nilai label yang berbeda. Jumlah deret waktu disebut kardinalitas metrik, dan tidak boleh melebihi 30.000.

Karena Anda dapat membuat deret waktu untuk setiap kombinasi nilai label, jika memiliki satu atau beberapa label dengan jumlah nilai yang tinggi, Anda tidak akan kesulitan untuk melampaui 30.000 deret waktu. Sebaiknya hindari metrik berkardinalitas tinggi.

Seiring meningkatnya kardinalitas metrik, metrik dapat dibatasi dan beberapa titik data mungkin tidak ditulis ke metrik. Diagram yang menampilkan metrik dapat memuat dengan lambat karena banyaknya deret waktu yang harus diproses diagram. Anda mungkin juga dikenai biaya untuk panggilan API guna membuat kueri data deret waktu; tinjau biaya Cloud Monitoring untuk mengetahui detailnya.

Untuk menghindari pembuatan metrik berkardinalitas tinggi:

  • Pastikan kolom label dan ekspresi reguler ekstraktor Anda cocok dengan nilai yang memiliki kardinalitas terbatas.

  • Hindari mengekstrak pesan teks yang dapat berubah, tanpa batas, sebagai nilai label.

  • Hindari mengekstrak nilai numerik dengan kardinalitas yang tidak terbatas.

  • Hanya ekstrak nilai dari label dengan kardinalitas yang diketahui; misalnya, kode status dengan kumpulan nilai yang diketahui.

Metrik berbasis log sistem ini dapat membantu Anda mengukur efek penambahan atau penghapusan label terhadap kardinalitas metrik:

Saat memeriksa metrik ini, Anda dapat memfilter hasil lebih lanjut berdasarkan nama metrik. Untuk mengetahui detailnya, lihat Memilih metrik: pemfilteran.

Nama metrik tidak valid

Saat membuat metrik penghitung atau distribusi, pilih nama metrik yang unik di antara metrik berbasis log di project Google Cloud Anda.

String nama metrik tidak boleh melebihi 100 karakter dan hanya boleh menyertakan karakter berikut:

  • A-Z
  • a-z
  • 0-9
  • Karakter khusus _-.,+!*',()%\/.

    Karakter garis miring / menunjukkan hierarki bagian dalam nama metrik dan tidak boleh menjadi karakter pertama pada nama.

Nilai metrik tidak benar

Anda melihat bahwa nilai yang dilaporkan untuk metrik berbasis log terkadang berbeda dengan jumlah entri log yang dilaporkan oleh Penjelajah Log.

Untuk meminimalkan perbedaan, lakukan hal berikut:

  • Pastikan aplikasi tidak mengirim entri log duplikat. Entri log dianggap duplikat jika memiliki timestamp dan insertId yang sama. Logs Explorer otomatis menyembunyikan entri log duplikat. Namun, metrik berbasis log menghitung setiap entri log yang cocok dengan filter untuk metrik.

  • Pastikan entri log dikirim ke Cloud Logging jika stempel waktunya kurang dari 24 jam yang lalu atau kurang dari 10 menit ke depan. Entri log yang stempel waktunya tidak berada dalam batas ini tidak dihitung oleh metrik berbasis log.

Anda tidak dapat menghilangkan kemungkinan log duplikat. Jika error internal terjadi selama penanganan entri log, proses percobaan ulang akan dipanggil oleh Cloud Logging. Proses percobaan ulang dapat menyebabkan entri log duplikat. Jika ada entri log duplikat, nilai metrik berbasis log mungkin terlalu besar karena metrik ini menghitung setiap entri log yang cocok dengan filter untuk metrik.

Nilai label terpotong

Nilai untuk label yang ditentukan pengguna tidak boleh melebihi 1.024 byte.

Tidak dapat menghapus metrik log kustom

Anda mencoba menghapus metrik berbasis log kustom menggunakan Konsol Google Cloud. Permintaan penghapusan gagal dan dialog penghapusan menampilkan pesan error There is an unknown error while executing this operation.

Untuk mengatasi masalah ini, coba langkah-langkah berikut:

  • Muat ulang halaman Log-based metrics di konsol Google Cloud. Pesan error mungkin ditampilkan karena masalah pengaturan waktu internal.

  • Identifikasi dan hapus kebijakan pemberitahuan yang memantau metrik berbasis log. Setelah Anda memastikan bahwa metrik berbasis log tidak dipantau oleh kebijakan pemberitahuan, hapus metrik berbasis log. Metrik berbasis log yang dipantau oleh kebijakan pemberitahuan tidak dapat dihapus.