Mengonfigurasi label pada metrik berbasis log

Dokumen ini membahas label metrik berbasis log, dan menjelaskan cara membuat dan 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 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 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 mengetahui informasi tentang ekspresi reguler, lihat Sintaksis RE2.

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

Batasan 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 telah Anda buat.

  • Hanya 1.024 karakter pertama dari nilai label yang akan 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 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 dikenai 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 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, load balancer, dll.

    Resource dan labelnya tercantum secara terpisah dari label metrik lain 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 dalam metrik berbasis log sistem.

Contoh: Menggunakan Metrics Explorer

Screenshot dari Metrics Explorer berikut menunjukkan label di 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 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 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. 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 Buat metrik log akan menyertakan opsi untuk menambahkan label.

  2. Klik Tambahkan label.

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

    1. Di bagian Pilihan filter, klik Lihat 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 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 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 ekspresi reguler yang mengekstrak nilai label dari nilai kolom.

      Misalnya, anggaplah 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 kurung adalah grup tangkapan yang mengidentifikasi bagian teks yang akan diekstrak:

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

      Untuk mengetahui 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 khusus, Anda harus membuat file yang berisi representasi definisi LogMetric dalam format JSON atau YAML, termasuk label khusus. Kemudian, buat metrik dengan memanggil perintah create menggunakan flag --config-from-file, yang mengganti 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 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.

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