Halaman ini memberikan informasi pemecahan masalah untuk skenario umum saat menggunakan metrik berbasis log di Cloud Logging. Konten halaman ini tidak berlaku untuk data metrik yang ditulis oleh Google Cloud layanan atau aplikasi Anda.
Tidak dapat melihat atau membuat metrik
Metrik berbasis log hanya berlaku untuk satu Google Cloud project atau untuk bucket Logging dalam Google Cloud project. Anda tidak dapat membuat metrik berbasis log untuk Google Cloud resource lain seperti akun penagihan atau organisasi. Metrik berbasis log hanya dihitung untuk log di Google Cloud project atau bucket tempat metrik tersebut diterima.
Untuk membuat metrik berbasis log, 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
Entri ini hanya berlaku untuk data metrik yang berasal dari data log Anda (metrik berbasis log) di Google Cloud Observability. Entri ini tidak berlaku untuk data metrik yang ditulis oleh Google Cloud layanan atau aplikasi Anda.
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 dan 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 di masa lalu atau 10 menit di masa mendatang, entri log tersebut tidak akan dihitung dalam metrik berbasis log.
Jumlah entri yang terlambat tiba dicatat dalam metrik berbasis log
logging.googleapis.com/logs_based_metrics_error_count.Contoh: Entri log yang cocok dengan metrik berbasis log tiba terlambat. Entri log tersebut memiliki
timestamppukul 14.30 pada 20 Februari 2020 danreceivedTimestamppukul 14.45 pada 21 Februari 2020. Entri ini tidak akan dihitung dalam metrik berbasis log.Metrik berbasis log dibuat setelah kedatangan entri log yang mungkin dihitung oleh metrik. Metrik berbasis log mengevaluasi entri log saat disimpan di bucket log; metrik ini tidak mengevaluasi entri log yang disimpan di Logging.
Metrik berbasis log memiliki celah dalam data. Beberapa celah data diharapkan, karena sistem yang memproses data metrik berbasis log tidak menjamin persistensi setiap titik data metrik. Jika terjadi celah, biasanya jarang terjadi dan berdurasi singkat. Namun, jika Anda memiliki kebijakan pemberitahuan yang memantau metrik berbasis log, celah dalam data dapat menyebabkan notifikasi palsu. Setelan yang Anda gunakan dalam kebijakan pemberitahuan dapat mengurangi kemungkinan ini.
Contoh: Entri log "detak jantung" ditulis setiap lima menit, dan metrik berbasis log menghitung jumlah entri log "detak jantung". Kebijakan pemberitahuan menjumlahkan hitungan dalam interval lima menit dan memberi tahu Anda saat totalnya kurang dari satu. Jika deret waktu tidak memiliki titik data, kebijakan pemberitahuan akan menyisipkan nilai sintetis, yang merupakan duplikat dari sampel terbaru dan kemungkinan besar nol, lalu mengevaluasi kondisinya. Oleh karena itu, meskipun hanya satu titik data yang hilang, nilai yang dijumlahkan dapat menjadi nol, yang menyebabkan kebijakan pemberitahuan ini mengirimkan notifikasi.
Untuk mengurangi risiko notifikasi palsu, konfigurasi kebijakan untuk menghitung beberapa entri log "detak jantung", bukan hanya satu.
Jenis resource adalah "undefined" di Cloud Monitoring
Entri ini hanya berlaku untuk data metrik yang berasal dari data log Anda (metrik berbasis log) di Google Cloud Observability. Entri ini tidak berlaku untuk data metrik yang ditulis oleh Google Cloud layanan atau aplikasi Anda.
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 adalah "undefined".
Jenis resource yang dimonitor dipetakan ke global atau jenis resource yang dimonitor berbeda di Cloud Monitoring. Lihat
Pemetaan untuk resource khusus Logging
untuk menentukan jenis resource yang dimonitor yang perlu Anda pilih.
Label dalam notifikasi tidak diselesaikan
Entri ini hanya berlaku untuk data metrik yang berasal dari data log Anda (metrik berbasis log) di Google Cloud Observability. Entri ini tidak berlaku untuk data metrik yang ditulis oleh Google Cloud layanan atau aplikasi Anda.
Anda membuat metrik berbasis log, lalu membuat kebijakan pemberitahuan untuk memantau metrik berbasis log tersebut.
Di kolom dokumentasi kebijakan pemberitahuan, Anda merujuk ke
label yang diekstrak menggunakan variabel dalam bentuk
${log.extracted_label.KEY}, dengan KEY adalah nama yang Anda berikan
ke label yang diekstrak. Label tidak diselesaikan dalam notifikasi.
Untuk mengatasi masalah ini, lakukan salah satu tindakan berikut:
Hapus konten label yang diekstrak dari dokumentasi. Kebijakan pemberitahuan yang memantau metrik berbasis log tidak dapat mengekstrak data dari entri log.
Buat pemberitahuan berbasis log. Kebijakan pemberitahuan ini dapat mengekstrak data dari entri log yang menyebabkan kebijakan pemberitahuan dipicu.
Insiden tidak dibuat atau merupakan positif palsu
Entri ini hanya berlaku untuk data metrik yang berasal dari data log Anda (metrik berbasis log) di Google Cloud Observability. Entri ini tidak berlaku untuk data metrik yang ditulis oleh Google Cloud layanan atau aplikasi Anda.
Anda dapat memperoleh insiden positif palsu atau situasi saat Monitoring tidak membuat insiden dari metrik berbasis log karena periode penyelarasan untuk kebijakan pemberitahuan terlalu singkat. Anda mungkin mengalami positif palsu dalam skenario berikut:
- Saat kebijakan pemberitahuan menggunakan logika kurang dari.
- Saat kebijakan pemberitahuan didasarkan pada kondisi persentil untuk metrik distribusi.
- Saat ada celah 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 di bucket log, ada penundaan yang melekat antara waktu entri log dibuat dan waktu Logging menerimanya. Artinya, Logging mungkin tidak memiliki jumlah total untuk entri log tertentu hingga beberapa waktu kemudian setelah entri log dibuat. Inilah alasan kebijakan pemberitahuan yang menggunakan logika kurang dari atau didasarkan pada kondisi persentil untuk metrik distribusi dapat menghasilkan pemberitahuan positif palsu: tidak semua entri log telah 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. Oleh karena itu, nilai metrik harus diperbarui.
Agar notifikasi tetap akurat bahkan untuk data tepat waktu, sebaiknya tetapkan periode penyelarasan untuk kondisi menjadi 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 "detak jantung", yang diharapkan setiap N menit, tetapkan periode penyelarasan ke 2N menit atau 10 menit, mana pun yang lebih besar:
Jika Anda menggunakan Google Cloud konsol, gunakan menu Rolling window untuk menetapkan periode penyelarasan.
Jika Anda menggunakan API, gunakan kolom
aggregations.alignmentPerioddari kondisi untuk menetapkan periode penyelarasan.
Metrik berbasis log memiliki terlalu banyak deret waktu
Entri ini hanya berlaku untuk data metrik yang berasal dari data log Anda (metrik berbasis log) di Google Cloud Observability. Entri ini tidak berlaku untuk data metrik yang ditulis oleh Google Cloud layanan atau aplikasi Anda.
Jumlah deret waktu dalam metrik bergantung pada jumlah kombinasi nilai label yang berbeda. Jumlah deret waktu disebut kardinalitas metrik. Jumlah deret waktu maksimum untuk metrik adalah 30.000.
Karena Anda dapat membuat deret waktu untuk setiap kombinasi nilai label, jika Anda memiliki satu atau beberapa label dengan jumlah nilai yang tinggi, tidak sulit untuk melebihi 30.000 deret waktu. Anda harus menghindari metrik berkardinalitas tinggi.
Saat kardinalitas metrik meningkat, metrik dapat dibatasi dan beberapa titik data mungkin tidak ditulis ke metrik. Diagram yang menampilkan metrik dapat lambat dimuat karena banyaknya deret waktu yang harus diproses oleh diagram. Anda mungkin juga dikenai biaya untuk panggilan API guna membuat kueri data deret waktu; tinjau bagian Cloud Monitoring di halaman harga Google Cloud Observability.
Karena batas 1.000.000 deret waktu aktif per resource yang dimonitor, sistem mungkin membatasi data metrik Anda meskipun memiliki kurang dari 30.000 deret waktu aktif. Untuk metrik berbasis log tingkat project, resource ditentukan oleh resource dalam entri log. Untuk
metrik berbasis log dengan cakupan bucket,
resource-nya adalah logging_bucket.
Untuk menghindari pembuatan metrik berkardinalitas tinggi:
Pastikan kolom label dan ekspresi reguler ekstraktor Anda cocok dengan nilai yang memiliki kardinalitas terbatas.
Misalnya, jangan simpan ukuran, jumlah, atau durasi dalam label. Selain itu, jangan simpan kolom seperti URL, alamat IP, atau ID unik, karena semuanya dapat menghasilkan sejumlah besar deret waktu.
Hindari mengekstrak pesan teks yang dapat berubah, tanpa batas, sebagai nilai label.
Hindari mengekstrak nilai numerik dengan kardinalitas tanpa batas.
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 pada kardinalitas metrik Anda:
logging.googleapis.com/metric_throttledlogging.googleapis.com/time_series_countlogging.googleapis.com/metric_label_throttledlogging.googleapis.com/metric_label_cardinality
Saat memeriksa metrik ini, Anda dapat memfilter lebih lanjut hasil menurut nama metrik. Untuk mengetahui detailnya, lihat Memilih metrik: memfilter.
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 dapat menyertakan karakter berikut:
A-Za-z0-9Karakter khusus
_-.,+!*',()%\/.Karakter garis miring
/menunjukkan hierarki bagian dalam nama metrik dan tidak boleh menjadi karakter pertama pada nama.
Nilai metrik berbasis log tidak benar
Entri ini hanya berlaku untuk data metrik yang berasal dari data log Anda (metrik berbasis log) di Google Cloud Observability. Entri ini tidak berlaku untuk data metrik yang ditulis oleh Google Cloud layanan atau aplikasi Anda.
Anda melihat bahwa nilai yang dilaporkan untuk metrik berbasis log terkadang berbeda dengan jumlah entri log yang dilaporkan oleh Logs Explorer.
Untuk meminimalkan perbedaan, lakukan hal berikut:
Pastikan aplikasi tidak mengirim entri log duplikat. Entri log dianggap duplikat jika memiliki
timestampdaninsertIdyang sama. Logs Explorer secara otomatis menekan entri log duplikat. Namun, metrik berbasis log menghitung setiap entri log yang cocok dengan filter untuk metrik.Pastikan entri log dikirim ke Cloud Logging saat stempel waktunya kurang dari 24 jam di masa lalu atau kurang dari 10 menit di masa mendatang. Entri log yang stempel waktunya tidak berada dalam batas ini tidak dihitung oleh metrik berbasis log.
Anda tidak dapat menghilangkan kemungkinan log duplikat. Jika terjadi error internal selama penanganan entri log, proses coba lagi akan dipanggil oleh Cloud Logging. Proses coba lagi 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
Entri ini hanya berlaku untuk data metrik yang berasal dari data log Anda (metrik berbasis log) di Google Cloud Observability. Entri ini tidak berlaku untuk data metrik yang ditulis oleh Google Cloud layanan atau aplikasi Anda.
Nilai untuk label yang ditentukan pengguna tidak boleh melebihi 1.024 byte.
Tidak dapat menghapus metrik berbasis log kustom
Entri ini hanya berlaku untuk data metrik yang berasal dari data log Anda (metrik berbasis log) di Google Cloud Observability. Entri ini tidak berlaku untuk data metrik yang ditulis oleh Google Cloud layanan atau aplikasi Anda.
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 Metrik berbasis log di Google Cloud konsol. Pesan error mungkin ditampilkan karena masalah waktu internal.
Identifikasi dan hapus kebijakan pemberitahuan yang memantau metrik berbasis log. Setelah Anda memverifikasi bahwa metrik berbasis log tidak dipantau oleh kebijakan pemberitahuan, hapus metrik berbasis log. Metrik berbasis log yang dipantau oleh kebijakan pemberitahuan tidak dapat dihapus.