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 dalam 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 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 mengetahui informasi tentang ekspresi reguler, lihat Sintaksis RE2.

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

Batasan label yang ditentukan pengguna

Batasan berikut berlaku untuk label yang ditentukan pengguna:

  • Anda dapat membuat hingga 10 label yang ditentukan 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 telah Anda buat.

  • Hanya 1.024 karakter pertama dari nilai label yang disimpan.

  • 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.

Jika Anda memiliki terlalu banyak deret waktu atau terlalu banyak titik data, biaya Anda akan meningkat dan aktivitas Anda mungkin akan dibatasi. Untuk informasi selengkapnya tentang biaya metrik berbasis log, lihat Harga Cloud Monitoring: Metrik yang dapat ditagih. 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 dimonitor untuk mengidentifikasi sumber data deret waktu. Setiap jenis resource menyertakan nama jenis dan satu atau beberapa label. Contoh jenis resource meliputi instance VM, database Cloud SQL, dan load balancer.

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

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

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

Contoh: Menggunakan Metrics Explorer

Screenshot berikut dari Metrics Explorer menampilkan label pada salah satu metrik berbasis log sistem. Anda mendapatkan daftar label dengan mengklik di dalam kotak 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 juga berisi deret waktu dari jenis resource lainnya, tetapi Metrics Explorer memungkinkan Anda melihat hanya satu jenis resource dalam 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 akan muncul di bagian ini.

Membuat label

Anda membuat label yang ditentukan pengguna saat membuat metrik. Metrik penghitung dan metrik distribusi dapat memiliki label. Anda tidak dapat menambahkan label ke metrik berbasis log sistem.

Konsol

  1. Saat Anda membuat metrik berbasis log, panel Create logs metric 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 Filter selection, klik Preview logs.
    2. Di panel Lihat log, pilih entri log, lalu klik ekspander 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 boleh 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. Contoh, Instance number.

    3. Jenis label: Pilih String, Boolean, atau Bilangan bulat.

    4. Nama kolom: Masukkan nama kolom entri log yang berisi nilai label. Anda akan ditawari pilihan saat mengetik. Dalam 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 tangkapan regexp 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 nomor yang benar. Misalnya, dalam ekspresi berikut, tanda kurung 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 Done untuk membuat label. Anda dapat menambahkan label lainnya dengan mengulangi langkah-langkah ini.

  5. Untuk menyelesaikan pembuatan metrik, klik Create metric.

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 kustom. Kemudian, buat metrik dengan memanggil perintah create dengan flag --config-from-file, ganti FILENAME dengan nama file JSON atau YAML Anda:

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 Logging API. Untuk 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.

Sintaksisnya adalah sebagai berikut:

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

Elemen sintaksis memiliki arti sebagai 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 ini:

    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 detail selengkapnya, lihat jenis LogMetric.