Mengonfigurasi label pada metrik berbasis log

Dokumen ini membahas label metrik berbasis log, dan menjelaskan cara membuat serta menggunakan label pada metrik log.

Jika sudah memahami label, Anda dapat langsung membuka bagian Membuat label di halaman ini.

Ringkasan label untuk metrik berbasis log

Label memungkinkan metrik berbasis log berisi beberapa deret waktu—satu untuk setiap kombinasi nilai label. Semua metrik berbasis log dilengkapi dengan beberapa label default.

Anda dapat membuat label tambahan yang ditentukan pengguna di metrik jenis penghitung dan jenis distribusi dengan menentukan ekspresi ekstraktor. Ekspresi ekstraktor memberi tahu Cloud Logging cara mengekstrak nilai label dari entri log. Anda dapat menentukan nilai label sebagai salah satu dari yang berikut:

  • Seluruh konten kolom bernama dalam objek LogEntry.
  • Bagian dari kolom bernama yang cocok dengan ekspresi reguler (regexp).

Anda dapat mengekstrak label dari kolom bawaan LogEntry, seperti httpRequest.status, atau dari salah satu kolom payload textPayload, jsonPayload, atau protoPayload.

Untuk informasi tentang ekspresi reguler, lihat Sintaksis RE2.

Jangan masukkan informasi sensitif dalam ekspresi ekstraktor dan jangan ekstrak data sensitif ke dalam label. Ini diperlakukan sebagai data layanan.

Keterbatasan label yang ditentukan pengguna

Batasan berikut berlaku untuk label yang ditentukan pengguna:

  • Anda dapat membuat hingga 10 label buatan pengguna per metrik.

  • Setelah membuat label, Anda tidak dapat menghapusnya.

    • Anda dapat mengubah ekspresi ekstraktor dan deskripsi label yang telah dibuat.

    • Anda tidak dapat mengubah nama atau jenis nilai label yang sudah Anda buat.

  • Hanya 1.024 karakter pertama dari nilai label yang dipertahankan.

  • Setiap metrik berbasis log dibatasi hingga sekitar 30.000 deret waktu aktif, yang bergantung pada jumlah kemungkinan nilai untuk setiap label, termasuk label default.

    Misalnya, jika entri log Anda berasal dari 100 resource seperti instance VM, dan Anda menentukan label dengan 20 kemungkinan nilai, Anda dapat memiliki hingga 2.000 deret waktu untuk metrik Anda.

Jika Anda memiliki terlalu banyak deret waktu atau terlalu banyak titik data, biaya akan meningkat dan aktivitas Anda mungkin akan dibatasi. Untuk mengetahui informasi selengkapnya tentang biaya metrik berbasis log, lihat Harga Cloud Monitoring: Metrik yang dapat dikenakan biaya. Untuk mengetahui informasi tentang batas yang berlaku untuk metrik berbasis log, lihat Kuota dan batas: Metrik berbasis log dan Memecahkan masalah metrik berbasis log.

Label default

Semua metrik berbasis log dilengkapi dengan beberapa label standar:

  • Label resource: Semua metrik menggunakan objek resource yang dipantau untuk mengidentifikasi sumber data deret waktu. Setiap jenis resource menyertakan nama jenis dan satu atau beberapa label. Contoh jenis resource antara lain instance VM, database Cloud SQL, load balancer, dll.

    Resource dan labelnya tercantum secara terpisah dari label metrik lainnya di Cloud Monitoring, tetapi memiliki efek yang sama: keduanya membuat deret waktu tambahan dalam metrik. Untuk informasi selengkapnya, lihat Metrik, Deret Waktu, dan Resource.

  • log: Label ini menyimpan nilai bagian LOG_ID kolom logName dalam entri log.

  • severity: Label ini menyimpan nilai kolom severity dalam entri log. Label tingkat keparahan disediakan secara default hanya dalam metrik berbasis log sistem.

Contoh: Menggunakan Metrics Explorer

Screenshot dari Metrics Explorer berikut menunjukkan label pada salah satu metrik berbasis log sistem. Anda mendapatkan daftar label dengan mengklik di dalam kotak teks Filter:

Metrics Explorer

Screenshot menampilkan informasi berikut:

  • Metrics Explorer menggunakan deret waktu dari metrik logging/log_entry_count dan jenis resource gce_instance—instance VM Compute Engine.

    Metrik ini berisi deret waktu dari jenis resource lainnya juga, tetapi Metrics Explorer memungkinkan Anda melihat hanya satu jenis resource pada satu waktu.

  • Jenis resource gce_instance memiliki tiga label resource: project_id, instance_id, dan zone.

  • Metrik ini memiliki dua label metrik: log dan severity. Label yang ditentukan pengguna juga muncul di bagian ini.

Membuat label

Anda membuat label buatan pengguna saat membuat metrik. Baik metrik penghitung maupun metrik distribusi dapat memiliki label. Anda tidak dapat menambahkan label ke metrik berbasis log sistem.

Konsol

  1. Saat Anda membuat metrik berbasis log, panel Buat metrik log akan menyertakan opsi untuk menambahkan label.

  2. Klik Tambahkan label.

    Tips: Untuk melihat kolom dan nilai di dalam entri log, lakukan hal berikut:

    1. Di bagian Pemilihan filter, klik Pratinjau log.
    2. Di panel View logs, pilih entri log lalu klik expander di sampingnya.
    3. Klik Luaskan kolom bertingkat.
  3. Tetapkan kolom berikut di bagian Label:

    1. Nama label: Masukkan nama untuk label. Contoh, ID.

      Nama harus memenuhi kriteria berikut:

      • Panjangnya tidak lebih dari 100 karakter.
      • Cocok dengan ekspresi reguler [a-zA-Z][a-zA-Z0-9_]*.
      • Terdiri dari lebih dari sekadar string "log".
    2. Deskripsi: Jelaskan label. Cobalah untuk sespesifik mungkin tentang format nilai log yang diharapkan. Misalnya, Instance number.

    3. Label type: Pilih String, Boolean, atau Integer.

    4. Nama kolom: Masukkan nama kolom entri log yang berisi nilai label. Anda ditawarkan pilihan saat mengetik. Pada contoh ini, kolomnya adalah:

      labels."compute.googleapis.com/resource_id"
      
    5. Ekspresi reguler: Jika nilai label Anda terdiri dari seluruh konten kolom, Anda dapat mengosongkan kolom ini. Jika tidak, tentukan grup pengambilan ekspresi reguler yang mengekstrak nilai label dari nilai kolom.

      Misalnya, kolom biasanya berisi teks seperti berikut:

      The instance number is 0123456789; the ID is my-test-instance22
      

      Jika Anda ingin nilai label menjadi nomor instance, ada banyak ekspresi reguler yang akan mengekstrak angka yang benar. Misalnya, dalam ekspresi berikut, tanda kurungnya adalah grup pengambilan yang mengidentifikasi bagian teks yang akan diekstrak:

      The instance number is ([0-9]+); .*
      

      Untuk informasi selengkapnya tentang ekspresi reguler, lihat Sintaksis RE2.

  4. Klik Selesai untuk membuat label. Anda dapat menambahkan lebih banyak label dengan mengulangi langkah-langkah ini.

  5. Untuk menyelesaikan pembuatan metrik, klik Buat metrik.

gcloud

Untuk membuat metrik berbasis log dengan label kustom, Anda harus membuat file yang berisi representasi definisi LogMetric dalam format JSON atau YAML, termasuk label khusus. Kemudian, buat metrik dengan memanggil perintah create dengan flag --config-from-file, yang mengganti FILENAME dengan nama file JSON atau YAML:

gcloud logging metrics create METRIC_NAME --config-from-file FILENAME

Untuk informasi selengkapnya, lihat gcloud logging metrics create.

API

Label ditentukan sebagai bagian dari objek LogMetric dalam isi permintaan panggilan ke metode projects.metrics.create dari Logging API. Untuk mengetahui informasi tentang panggilan metode lengkap, lihat Membuat metrik penghitung atau Membuat metrik distribusi.

Untuk setiap label, Anda harus menambahkan segmen ke kolom metricDescriptor dan labelExtractors di LogMetric.

Syntax-nya adalah sebagai berikut:

{
  ...
  metricDescriptor: {
      labels: [
        { key: LABEL_NAME, valueType: LABEL_TYPE,
          description: LABEL_DESCRIPTION },
        ...
      ]
  },
  labelExtractors: {
    LABEL_NAME: EXTRACTOR_EXPRESSION,
    ...
  },
}

Elemen sintaksis memiliki arti berikut:

  • LABEL_NAME: Nama label sebagai string.
  • VALUE_TYPE: Jenis label: STRING, BOOL, atau INT64.
  • LABEL_DESCRIPTION: Deskripsi label.
  • EXTRACTOR_EXPRESSION: String yang menggabungkan nama kolom entri log dengan ekspresi reguler opsional. Ekspresi ekstraktor dapat berupa salah satu dari berikut:

    EXTRACT(FIELD)
    
    REGEXP_EXTRACT(FIELD, REGEXP)
    

Untuk informasi selengkapnya tentang ekspresi reguler, lihat Sintaksis RE2.

Berikut adalah contoh dengan dua label:

{
  ...
  metricDescriptor: {
      labels: [
        { key: "label_name_a", valueType: STRING },
        { key: "label_name_b", valueType: INT64 },
      ]
  },
  labelExtractors: {
    "label_name_a":
      "REGEXP_EXTRACT(jsonPayload.field_a, \"before ([a-zA-Z ]+) after\")",
    "label_name_b": "EXTRACT(jsonPayload.field_b)",
  },
}

Untuk mengetahui detail selengkapnya, lihat jenis LogMetric.