Membuat dan mengelola variabel serta filter yang disematkan

Dokumen ini menjelaskan cara menyematkan filter tingkat dasbor sehingga filter ini bersifat permanen. Filter yang disematkan—yang memungkinkan Anda mengubah data yang ditampilkan oleh dasbor tanpa harus mengubah setiap widget—memiliki status default dan dapat diterapkan ke seluruh dasbor atau hanya ke widget tertentu. Toolbar dasbor menampilkan setiap filter yang disematkan, beserta menu, yang memungkinkan Anda mengubah nilai filter untuk sementara.

Variabel mirip dengan filter yang disematkan, tetapi hanya berlaku untuk widget tertentu. Dokumen ini menjelaskan cara membuat variabel dan cara menerapkannya dengan widget. Toolbar dasbor menampilkan setiap variabel, beserta menu, yang memungkinkan Anda mengubah nilai variabel untuk sementara.

Dokumen ini menjelaskan cara menggunakan konsol Google Cloud untuk membuat variabel dan filter yang disematkan. Untuk informasi tentang cara menggunakan Cloud Monitoring API, lihat Membuat dan mengelola dasbor menurut API: Filter dasbor.

Untuk informasi tentang cara menambahkan dan mengubah pengelompokan dan filter sementara, yang hanya berlaku untuk sesi saat ini, lihat Menambahkan filter sementara ke dasbor kustom.

Tentang filter yang disematkan

Filter yang disematkan berisi label, satu atau beberapa nilai default, dan daftar semua nilai yang mungkin. Daftar semua kemungkinan nilai berasal secara dinamis dari data deret waktu yang ditampilkan di dasbor Anda. Untuk informasi tentang struktur filter, lihat DashboardFilter.

Anda tidak menerapkan filter yang disematkan dengan widget individual. Sebagai gantinya, aturan berikut digunakan untuk menentukan apakah filter yang disematkan dapat mengubah data yang ditampilkan oleh widget:

  • Jika widget menampilkan data yang menyertakan kunci label yang ditentukan oleh filter yang disematkan dan jika widget tidak menentukan nilai untuk kunci label tersebut, filter yang disematkan dapat mengubah data yang ditampilkan.

    Misalnya, Anda menambahkan filter yang disematkan cluster_name: mycluster. Kemudian, diagram akan otomatis hanya menampilkan deret waktu yang memiliki label cluster_name dengan nilai mycluster. Demikian pula, kueri di widget panel log Anda diubah menjadi resource.labels."cluster_name"="mycluster", dan diagram Anda secara otomatis hanya menampilkan deret waktu yang menyertakan label dalam filter yang disematkan.

  • Filter yang disematkan diabaikan oleh widget saat widget menyertakan filter untuk kunci label yang sama, atau saat data yang ditampilkan oleh widget tidak berisi kunci label yang ditentukan dalam filter yang disematkan.

Tentang variabel

Variabel memiliki nama dan jenis. Variabel diterapkan ke widget tertentu dengan mengubah kueri yang dimuat widget. Untuk informasi tentang struktur filter, lihat DashboardFilter.

Variabel dapat berbasis label atau hanya memiliki nilai:

  • Variabel berbasis label seperti filter yang disematkan. Variabel ini berisi kunci label, satu atau beberapa nilai label default, dan daftar semua kemungkinan nilai label. Daftar semua kemungkinan nilai diperoleh secara dinamis dari data deret waktu yang ditampilkan di dasbor Anda.

  • Variabel khusus nilai berisi satu atau beberapa nilai default, dan variabel tersebut dapat mencantumkan semua kemungkinan nilai. Jika Anda tidak menentukan nilai default, operator karakter pengganti, (*), akan dipilih untuk nilai default. Untuk menentukan kumpulan semua kemungkinan nilai, Anda dapat memberikan array nilai atau menulis kueri SQL.

    Ada tiga jenis variabel khusus nilai: Kustom, Input Teks, dan Kueri SQL.

    • Kustom: Gunakan jika Anda ingin menghitung daftar semua kemungkinan nilai dan juga menetapkan satu atau beberapa nilai default. Misalnya, Anda dapat menetapkan daftar semua nilai yang mungkin ke prod, staging, dev, dan menetapkan nilai default ke prod.

    • Input Teks: Gunakan jika Anda tidak mengetahui semua kemungkinan nilai. Misalnya, Anda mungkin ingin memfilter menurut URL, tetapi saat membuat variabel, Anda tidak mengetahui daftar URL yang tepat. Kemudian, saat menggunakan menu filter untuk widget, Anda dapat memasukkan URL baru, lalu menyimpan perubahan untuk sesi saat ini atau ke definisi variabel.

    • Kueri SQL: Gunakan saat Anda ingin membuat daftar kemungkinan nilai menggunakan kueri SQL. Variabel ini ditujukan untuk diterapkan ke diagram yang dibuat menggunakan Log Analytics.

      Untuk variabel ini, pastikan hasil kueri adalah tabel dengan satu kolom, jenis data kolom tersebut adalah string, dan setiap baris dalam tabel berisi nilai string unik:

      SELECT log_name
      FROM `TABLE_NAME_OF_LOG_VIEW`
      GROUP BY log_name
      

      Variabel harus membuat kueri pada tabel yang sama dengan diagram.

Untuk menerapkan variabel ke widget, Anda memperbarui kueri yang terdapat dalam widget. Jika menggunakan konsol Google Cloud, untuk variabel berbasis label dan beberapa jenis widget, Anda dapat melakukan pengaitan ini menggunakan pilihan menu. Namun, Anda dapat selalu mengedit kueri widget untuk menerapkan variabel. Untuk mengetahui informasi selengkapnya, lihat Menerapkan variabel ke widget.

Sebelum memulai

Untuk mendapatkan izin yang diperlukan guna menambahkan atau mengubah variabel atau filter yang disematkan menggunakan konsol Google Cloud, minta administrator untuk memberi Anda peran IAM Monitoring Editor (roles/monitoring.editor) pada project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Untuk informasi selengkapnya tentang peran, lihat Mengontrol akses dengan Identity and Access Management.

Membuat dan menyematkan filter

Untuk membuat dan menyematkan filter yang berlaku untuk semua widget dasbor yang mendukung filter, lakukan tindakan berikut:

  1. Di konsol Google Cloud, buka halaman  Dasbor:

    Buka Dasbor

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

  2. Di toolbar dasbor, klik Setelan.
  3. Di bagian Filter, klik Add a filter.
  4. Klik Label, lalu pilih label. Misalnya, Anda dapat memilih zone.
  5. Untuk mengizinkan pengguna memilih beberapa nilai dari menu nilai variabel, pilih Multi-pilih. Jika Multi-select tidak diaktifkan, pengguna hanya dapat memilih satu opsi dari menu nilai.
  6. Klik Default value, lalu pilih nilai default untuk label. Untuk mencocokkan semua nilai, pilih *.

    Setelah dibuat, filter akan ditambahkan ke toolbar dasbor. Untuk mengubah nilai filter untuk sementara, pilih filter, lalu buat pilihan dari menu.

  7. Klik Selesai, lalu Terapkan.

  8. Untuk menyimpan dasbor yang telah diubah, klik Simpan di toolbar.

Membuat variabel

Untuk membuat variabel yang berlaku untuk widget dasbor tertentu, lakukan tindakan berikut:

  1. Di konsol Google Cloud, buka halaman  Dasbor:

    Buka Dasbor

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

  2. Di toolbar dasbor, klik Setelan.
  3. Di bagian Variables, klik Add a variable.
  4. Pilih jenis variabel, lalu selesaikan dialog.

    Untuk membuat variabel berbasis label, pilih Label. Gunakan opsi ini jika Anda ingin variabel yang memiliki kunci label dan nilai label, dan dapat digunakan seperti filter. Daftar semua kemungkinan nilai diperoleh secara dinamis dari data deret waktu yang ditampilkan di dasbor Anda.

    Untuk variabel khusus nilai, Anda memiliki opsi berikut:

    • SQL: Gunakan opsi ini jika Anda ingin hasil kueri SQL membuat daftar semua kemungkinan nilai.

      Masukkan satu atau beberapa nilai default, dan masukkan kueri SQL yang membuat daftar semua nilai yang memungkinkan. Pastikan hasil kueri adalah tabel dengan satu kolom, bahwa jenis data kolom tersebut adalah string, dan bahwa setiap baris dalam tabel berisi nilai string yang unik.

    • Kustom: Gunakan opsi ini jika Anda ingin menentukan daftar nilai yang mungkin dan juga nilai default. Misalnya, Anda dapat menetapkan kolom Values ke prod, staging, dev, dan menetapkan Default value ke prod.

    • Input Teks: Gunakan opsi ini jika Anda ingin menentukan daftar nilai yang diterapkan sebagai default.

  5. Masukkan nama untuk variabel ini. Nama ditampilkan di toolbar dasbor.

  6. Klik Selesai, lalu Terapkan.

  7. Terapkan variabel ke widget panel log dan ke widget yang dikonfigurasi dengan SQL, MQL, atau PromQL. Untuk mengetahui informasi selengkapnya, lihat Menerapkan variabel ke widget.

  8. Untuk menyimpan dasbor yang telah diubah, klik Simpan di toolbar.

Menerapkan variabel ke widget

Untuk menerapkan variabel ke widget, kueri yang digunakan oleh widget harus diedit:

  • Untuk diagram yang menggunakan kueri SQL, PromQL, atau MQL, dan untuk widget panel log, Anda harus mengedit widget dan mengubah kueri. Bagian ini menjelaskan cara melakukan pengeditan tersebut.

  • Untuk diagram yang Anda konfigurasikan menggunakan menu atau menggunakan mode filter langsung, Monitoring akan mengedit kueri saat Anda memilih widget menggunakan menu Terapkan ke diagram.

Untuk mempelajari cara menerapkan variabel berbasis label atau variabel khusus nilai ke widget, lihat bagian berikut:

Membuat filter dan variabel

Konsol

Untuk informasi tentang cara menggunakan konsol Google Cloud untuk membuat filter dan variabel yang disematkan, lihat dokumen berikut:

API

Untuk menentukan filter dan variabel yang disematkan, gunakan struktur data dashboardFilters.

  • Untuk membuat variabel, tetapkan nilai kolom templateVariable ke nama variabel. Hapus kolom ini atau tetapkan nilai ke string kosong saat Anda ingin membuat filter yang disematkan.
  • Untuk membuat filter yang disematkan atau variabel berbasis label, Anda harus menentukan kolom labelKey. Hapus kolom ini jika Anda menginginkan variabel khusus nilai.
  • Tetapkan nilai default untuk filter atau variabel. Konfigurasi kolom ini menentukan apakah pengguna dapat memilih tepat satu opsi dari menu nilai, atau apakah mereka dapat memilih beberapa nilai.

    • Untuk menetapkan satu nilai default dan membatasi pengguna agar hanya memilih satu opsi di menu nilai, tetapkan kolom valueType sebagai STRING dan tetapkan juga kolom stringValue:
    "valueType": "STRING",
    "stringValue": "my-default-value",
    
    • Untuk menetapkan setidaknya satu nilai default dan mengizinkan pengguna memilih beberapa opsi di menu nilai, tetapkan kolom valueType sebagai STRING_ARRAY dan tetapkan juga kolom stringArrayValue. Dalam contoh berikut, ada tiga nilai default.
    "valueType": "STRING_ARRAY",
    "stringArrayValue": {
      "values": [ "a", "b", "c" ]
    },
    
  • Opsional: Untuk menentukan daftar semua nilai yang memungkinkan untuk variabel khusus nilai, tetapkan kolom stringArray atau kolom timeSeriesQuery. Jika Anda menentukan kueri, kueri tersebut harus berupa kueri analisis.

Misalnya, pertimbangkan objek dashboardFilters berikut:

{
  "dashboardFilters": [
      {
        "labelKey": "zone"
        "stringValue": "us-central1-c",
        "valueType": "STRING",
        "filterType": "RESOURCE_LABEL"
      },
      {
        "labelKey": "instance_id",
        "stringValue": "3133577226154888113",
        "valueType": "STRING",
        "filterType": "RESOURCE_LABEL",
        "templateVariable": "my_label_based_variable"
      },
      {
        "filterType": "VALUE_ONLY",
        "templateVariable": "my_value_only_variable",
        timeSeriesQuery: {
          opsAnalyticsQuery: {
            sql: "
              SELECT log_name
              FROM `MY_TABLE`
              GROUP BY log_name
            ",
          }
        }
      }
    ],
  "displayName": "Illustrate Variables",
  ...
}

JSON sebelumnya menentukan satu filter yang disematkan dan dua variabel:

  • Filter yang disematkan memiliki kunci label zone, yang ditampilkan di toolbar. Kolom valueType dan stringValue menentukan satu nilai default. Untuk informasi selengkapnya, lihat halaman referensi API untuk struktur data dashboardFilters.

  • Variabel berbasis label memiliki nama my_label_based_variable, dan kunci labelnya adalah instance_id. Nilai default untuk variabel ini ditetapkan ke ID instance tertentu. Anda juga dapat mengonfigurasi nilai default menggunakan array. Di toolbar, filter ditampilkan dengan nama my_label_based_variable.

  • Variabel khusus nilai diberi nama my_value_only_variable. Entri ini tidak menentukan nilai default, sehingga operator karakter pengganti, (*), diterapkan secara otomatis. Selain itu, variabel ini menggunakan kueri SQL untuk membuat daftar kemungkinan nilai untuk variabel.

Perhatikan bahwa objek dashboardFilters tidak mencantumkan widget yang menerapkan variabel. Untuk menerapkan variabel ke widget, Anda mengubah kueri untuk widget.

Sintaksis umum untuk mendereferensikan variabel

Untuk semua widget, kecuali yang ditentukan oleh SQL, gunakan sintaksis berikut untuk menerapkan variabel ke kueri:

  • Untuk menerapkan variabel berbasis label dan membuat kunci label dan nilai label di-resolve menjadi ekspresi filter yang valid untuk bahasa kueri, gunakan ${my_label_based_variable}.

  • Untuk hanya menerapkan nilai variabel berbasis label, gunakan ${my_label_based_variable.value}. Perbandingan harus menggunakan ekspresi reguler.

  • Untuk hanya menerapkan nilai variabel khusus nilai, gunakan ${my_value_only_variable}. Untuk variabel khusus nilai, jangan sertakan klausa .value. Perbandingan harus menggunakan ekspresi reguler.

Widget panel log

Untuk menerapkan variabel ke widget panel log, perbarui panel kueri. Sintaksis untuk widget ini mengikuti sintaksis yang ditentukan di bagian Sintaksis umum.

Konsol

Misalnya, kueri berikut menggunakan ekspresi reguler untuk membandingkan nilai kolom jsonPayload.message dengan nilai string yang menyertakan nilai variabel berbasis label:

jsonPayload.message=~"Connected to instance: ${my_label_based_variable.value}"

Sebagai contoh lain, pertimbangkan variabel khusus nilai, value_only_severity_variable, dan asumsikan bahwa dalam menu nilai, tiga nilai dipilih: ERROR, INFO, dan NOTICE. Selanjutnya, tambahkan kode berikut ke panel kueri widget panel log Anda:

severity =~ "${value_only_severity_variable}"

Berikut ini ilustrasi formulir yang dirender:

severity =~ "^(ERROR|INFO|NOTICE)$"

API

Misalnya, JSON berikut mengilustrasikan cara menerapkan variabel berbasis label ke kueri widget panel log:

"logsPanel": {
  "filter": "${my_label_based_variable}",
  "resourceNames": [
    "projects/1234512345"
  ]
},

Misalnya, kueri berikut menggunakan ekspresi reguler untuk membandingkan nilai kolom jsonPayload.message dengan nilai string yang menyertakan nilai variabel berbasis label:

"logsPanel": {
  "filter": "resource.type=\"gce_instance\"\n
             resource.labels.project_id=~\"${my_label_based_variable.value}\"\n",
  "resourceNames": [
    "projects/012345"
  ]
}

Sebagai contoh lain, pertimbangkan variabel khusus nilai, value_only_severity_variable, dan asumsikan bahwa tiga nilai dipilih di menu: ERROR, INFO, dan NOTICE. Selanjutnya, tambahkan kode berikut ke panel kueri widget panel log Anda:

"logsPanel": {
  "filter": "severity =~ \"${value_only_severity_variable}\"\n",
  ...
}

Berikut ini ilustrasi kueri yang dieksekusi oleh widget panel log:

severity =~ "^(ERROR|INFO|NOTICE)$"

Jika Anda telah mengonfigurasi kueri untuk panel log, lalu memilih tombol untuk membuka Logs Explorer, variabel akan di-resolve sebelum Logs Explorer dibuka.

Tabel berikut menggambarkan cara contoh variabel di-resolve oleh panel log. Seperti yang disebutkan sebelumnya, jika hanya nilai variabel yang digunakan, Anda harus menggunakan ekspresi reguler sebagai operator perbandingan:

Sintaks Selected
Value
Ekspresi panel log yang di-resolve
${my_label_based_variable} 12345 resource.labels."instance_id"="12345"

Contoh variabel didasarkan pada label resource instance_id.

${my_label_based_variable} * ""
${my_label_based_variable.value}
${my_value_based_variable}
12345 12345
${my_label_based_variable.value}
${my_value_based_variable}
* .*

Diagram dengan kueri PromQL

Untuk menerapkan variabel berbasis label ke diagram yang memiliki kueri PromQL, ikuti panduan yang tercantum di Sintaksis umum.

Konsol

Misalnya, kueri berikut mengandalkan variabel berbasis label, my_label_based_variable, yang di-resolve menjadi ekspresi filter:

compute_googleapis_com:instance_cpu_utilization{
    monitored_resource="gce_instance", ${my_label_based_variable} }

Anda juga dapat mengubah kueri untuk hanya me-resolve nilai variabel. Contoh berikut menggunakan ekspresi reguler untuk membandingkan nilai kueri berbasis label dengan instance_id:

compute_googleapis_com:instance_cpu_utilization{
    instance_id=~"${my_label_based_variable.value}"
}

Jika Anda memiliki variabel khusus nilai, hapus klausa .value. Misalnya, untuk memfilter menurut zona menggunakan variabel khusus nilai, kueri akan menyertakan hal seperti berikut:

zone=~"${my_value_only_variable}"

API

Misalnya, JSON berikut mengilustrasikan kueri yang mengandalkan variabel berbasis label, my_label_based_variable, yang di-resolve menjadi ekspresi filter:

"timeSeriesQuery": {
  "prometheusQuery": "avg_over_time(
    compute_googleapis_com:instance_cpu_utilization{
      monitored_resource=\"gce_instance\",
      ${my_label_based_variable}
      }[${__interval}])",
  "unitOverride": "",
  "outputFullDuration": false
},

Anda juga dapat mengubah kueri untuk hanya me-resolve nilai variabel. Contoh berikut menggunakan ekspresi reguler untuk membandingkan nilai kueri berbasis label dengan instance_id:

"timeSeriesQuery": {
  "prometheusQuery": "avg_over_time(
    compute_googleapis_com:instance_cpu_utilization{
    monitored_resource=\"gce_instance\",
    instance_id=~\"${my_label_based_variable.value}\"
    }[${__interval}])",
  "unitOverride": "",
  "outputFullDuration": false
},

Jika Anda memiliki variabel khusus nilai, hapus klausa .value. Misalnya, untuk memfilter menurut zona menggunakan variabel khusus nilai, kueri akan menyertakan hal seperti berikut:

zone=~\"${my_value_only_variable}\"

Tabel berikut menggambarkan cara contoh variabel di-resolve oleh PromQL. Seperti yang disebutkan sebelumnya, jika hanya nilai variabel yang digunakan, Anda harus menggunakan ekspresi reguler sebagai operator perbandingan:

Sintaks Selected
Value
Ekspresi PromQL yang di-resolve
${my_label_based_variable} 12345 instance_id == '12345'

Contoh variabel didasarkan pada label resource instance_id.

${my_label_based_variable} * noop_filter=~".*"
${my_label_based_variable.value}
${my_value_based_variable}
12345 12345
${my_label_based_variable.value}
${my_value_based_variable}
* .+

Diagram dengan kueri SQL

Jika Anda ingin menerapkan variabel ke widget yang ditentukan SQL, perbarui klausa WHERE untuk mereferensikan nilai variabel. Untuk semua variabel, beri awalan nama variabel dengan tanda "at", misalnya: @variable_name. Untuk variabel berbasis label, tambahkan .value ke nama variabel, @my_label_based_variabe.value.

Untuk kueri SQL, penggantian variabel bergantung pada BigQuery, dan aman dari injeksi SQL. Untuk mengetahui informasi selengkapnya, lihat Menjalankan kueri berparameter.

Konsol

Karena SQL tidak menafsirkan operator karakter pengganti sebagai "nilai apa pun", sebaiknya Anda selalu menggunakan pernyataan IF saat menerapkan variabel ke kueri SQL. Contoh berikut mengilustrasikan penggunaan untuk variabel khusus nilai yang jenis datanya adalah string:

WHERE IF(@my_value_only_variable = "*", TRUE, log_name = @my_value_only_variable)

Jika opsi menu untuk variabel memungkinkan pengguna memilih beberapa nilai, Anda harus mentransmisikan nilai variabel ke jenis data GoogleSQL menggunakan fungsi CAST. Kueri berikut mengilustrasikan sintaksis ini:

IF(ARRAY_LENGTH(CAST(@my_value_only_variable)) = 0, TRUE,
   severity IN UNNEST(@my_value_only_variable))

Pernyataan IF yang ditampilkan dalam contoh sebelumnya direkomendasikan karena SQL tidak menafsirkan operator karakter pengganti sebagai "nilai apa pun". Oleh karena itu, jika Anda menghapus pernyataan IF dan memilih operator karakter pengganti, hasil kueri akan berupa tabel kosong. Pada contoh kedua, fungsi UNNEST mengonversi array menjadi tabel.

Untuk menambahkan klausa WHERE yang diformat dengan benar, lakukan hal berikut:

  1. Edit widget.
  2. Di toolbar, pilih Sisipkan filter variabel, lalu pilih variabel yang ingin Anda terapkan ke klausa WHERE.
  3. Dalam dialog yang terbuka, tinjau kode yang dihasilkan, lalu klik Salin dan tutup.
  4. Tempel kode yang disalin ke panel Kueri dan lakukan pengeditan yang diperlukan.

    Misalnya, Anda membuat variabel bernama LogName yang menghasilkan daftar nama log dan menampilkan hasilnya dalam tabel dengan satu kolom bernama log_name. Selanjutnya, Anda membuat diagram, memilih Sisipkan filter variabel, lalu memilih variabel LogName. Kode berikut akan dibuat:

    WHERE IF(@LogName = '*', TRUE, LogName = @LogName)
    

    Dalam contoh ini, Anda perlu mengedit kode yang dihasilkan dan mengganti LogName = dengan log_name =, sehingga penggabungan tabel dapat terjadi:

    WHERE IF(@LogName = '*', TRUE, log_name = @LogName)
    
  5. Klik Jalankan, lalu Terapkan.

  6. Untuk menyimpan dasbor yang telah diubah, klik Simpan di toolbar.

API

Karena SQL tidak menafsirkan operator karakter pengganti sebagai "nilai apa pun", sebaiknya Anda selalu menggunakan pernyataan IF saat menerapkan variabel ke kueri SQL. Contoh berikut mengilustrasikan penggunaan untuk variabel khusus nilai yang jenis datanya adalah string:

WHERE IF(@my_value_only_variable = "*", TRUE, log_name = @my_value_only_variable)

Misalnya, berikut adalah representasi JSON sebagian dari diagram yang menampilkan hasil kueri SQL. Untuk mendukung pemfilteran hasil berdasarkan nama log, klausa WHERE ditambahkan yang mereferensikan variabel bernama LogName:

"plotType": "STACKED_BAR",
"targetAxis": "Y1",
"timeSeriesQuery": {
  "opsAnalyticsQuery": {
    "queryExecutionRules": {},
    "queryHandle": "",
    "sql": "SELECT\n timestamp, severity, resource.type, log_name, text_payload, proto_payload, json_payload\n
            FROM\n `my-project.global._Default._Default`\n
            WHERE \n IF (@LogName = \"*\", TRUE, log_name=@LogName)\nLIMIT 10000"
  }
}

Variabel LogName juga mengeluarkan kueri untuk menentukan daftar nama log yang mungkin:

"dashboardFilters": [
  {
    "filterType": "VALUE_ONLY",
    "templateVariable": "LogName",
    "valueType": "STRING",
    "timeSeriesQuery": {
      "opsAnalyticsQuery": {
        "savedQueryId": "",
        "sql": "SELECT log_name FROM `my-project.global._Default._Default` GROUP BY log_name LIMIT 1000",
        "queryHandle": ""
      },
      "unitOverride": "",
      "outputFullDuration": false
    }
  }
],

Jika opsi menu untuk variabel memungkinkan pengguna memilih beberapa nilai, Anda harus mentransmisikan nilai variabel ke jenis data GoogleSQL menggunakan fungsi CAST. Kueri berikut mengilustrasikan sintaksis ini:

IF(ARRAY_LENGTH(CAST(@my_value_only_variable)) = 0, TRUE,
   severity IN UNNEST(@my_value_only_variable))

Pernyataan IF yang ditampilkan dalam contoh sebelumnya direkomendasikan karena SQL tidak menafsirkan operator karakter pengganti sebagai "nilai apa pun". Oleh karena itu, jika Anda menghapus pernyataan IF dan memilih operator karakter pengganti, hasil kueri akan berupa tabel kosong. Pada contoh kedua, fungsi UNNEST mengonversi array menjadi tabel.

Diagram dengan kueri MQL

Untuk menerapkan variabel berbasis label ke diagram yang memiliki kueri MQL, tambahkan pipa, (|), lalu ikuti panduan yang tercantum di Sintaksis umum.

Saat Anda menggunakan antarmuka berbasis menu untuk membuat diagram yang menampilkan data deret waktu, pilihan Anda akan dikonversi menjadi Filter pemantauan

Konsol

Misalnya, kueri berikut mengandalkan variabel berbasis label, my_label_based_variable, yang di-resolve menjadi ekspresi filter:

fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/utilization'
| every 1m
| ${my_label_based_variable}

Anda juga dapat mengubah kueri untuk hanya me-resolve nilai variabel. Contoh berikut menggunakan ekspresi reguler untuk membandingkan nilai kueri berbasis label dengan instance_id:

fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/utilization'
| filter resource.instance_id=~'${my_label_based_variable.value}'
| group_by 1m, [value_utilization_mean: mean(value.utilization)]
| every 1m

Jika Anda memiliki variabel khusus nilai, hapus klausa .value. Misalnya, untuk memfilter menurut zona menggunakan variabel khusus nilai, kueri akan menyertakan hal seperti berikut:

resource.zone=~'${my_value_only_variable}'

API

Misalnya, JSON berikut mengilustrasikan kueri yang mengandalkan variabel berbasis label, my_label_based_variable, yang di-resolve menjadi ekspresi filter:

"timeSeriesQuery": {
  "timeSeriesQueryLanguage": "fetch gce_instance\n
    | metric 'compute.googleapis.com/instance/cpu/utilization'\n
    | group_by 1m, [value_utilization_mean: mean(value.utilization)]\n
    | every 1m\n
    | ${my_label_based_variable}",
  "unitOverride": "",
  "outputFullDuration": false
},

Anda juga dapat mengubah kueri untuk hanya me-resolve nilai variabel. Contoh berikut menggunakan ekspresi reguler untuk membandingkan nilai kueri berbasis label dengan instance_id:

"timeSeriesQuery": {
  "timeSeriesQueryLanguage": "fetch gce_instance\n
    | metric 'compute.googleapis.com/instance/cpu/utilization'\n
    | filter resource.instance_id=~'${my_label_based_variable.value}'\n
    | group_by 1m, [value_utilization_mean: mean(value.utilization)]\n
    | every 1m\n",
  "unitOverride": "",
  "outputFullDuration": false
},

Jika Anda memiliki variabel khusus nilai, hapus klausa .value. Misalnya, untuk memfilter menurut zona menggunakan variabel khusus nilai, kueri akan menyertakan hal seperti berikut:

resource.zone=~'${my_value_only_variable}'

Tabel berikut mengilustrasikan cara contoh variabel di-resolve oleh MQL. Seperti yang disebutkan sebelumnya, jika hanya nilai variabel yang digunakan, Anda harus menggunakan ekspresi reguler sebagai operator perbandingan:

Sintaks Selected
Value
Ekspresi MQL yang di-resolve
${my_label_based_variable} 12345 filter (resource.instance_id == '12345')

Contoh variabel didasarkan pada label resource instance_id.

${my_label_based_variable} * filter (true)
${my_label_based_variable.value}
${my_value_based_variable}
12345 12345
${my_label_based_variable.value}
${my_value_based_variable}
* .*

Diagram dengan kueri filter Monitoring

Untuk menerapkan variabel berbasis label ke diagram yang memiliki kueri dalam bentuk filter Pemantauan, ikuti panduan yang tercantum di Sintaksis umum.

Konsol

Jika menggunakan konsol Google Cloud untuk membuat diagram, dan jika menggunakan antarmuka berbasis menu, Anda dapat menerapkan variabel berbasis label ke diagram menggunakan kolom Terapkan ke diagram variabel atau dengan mengedit widget dan memilih variabel berbasis label dari menu Filter. Menu Filter mencantumkan semua variabel berbasis label dan semua kunci label.

Untuk menerapkan variabel berbasis nilai ke jenis diagram ini, lakukan hal berikut:

  1. Edit diagram.
  2. Di panel kueri, klik Tambahkan filter, lalu pilih kunci label. Misalnya, Anda dapat memilih zona.
  3. Di menu Value, pilih variabel khusus nilai.
  4. Klik Terapkan.
  5. Untuk menyimpan dasbor yang telah diubah, klik Simpan di toolbar.

Misalnya, JSON berikut mengilustrasikan kueri yang mengandalkan variabel berbasis label, my_label_based_variable, yang di-resolve menjadi ekspresi filter:

metric.type="compute.googleapis.com/instance/cpu/utilization"
resource.type="gce_instance" ${my_label_based_variable}"

Widget yang menggunakan kueri dalam bentuk filter Monitoring tidak dapat memfilter deret waktu berdasarkan nilai dalam variabel berbasis label; tetapi, Anda dapat memfilter berdasarkan variabel khusus nilai. Misalnya, kueri berikut menampilkan nilai kolom Filters dari kueri yang memfilter menurut zone, berdasarkan nilai variabel khusus nilai:

metric.type="compute.googleapis.com/instance/cpu/utilization"
resource.type="gce_instance"
resource.label."zone"=monitoring.regex.full_match(${my_value_only_variable})

API

Misalnya, JSON berikut mengilustrasikan kueri yang mengandalkan variabel berbasis label, my_label_based_variable, yang di-resolve menjadi ekspresi filter:

"timeSeriesQuery": {
  "timeSeriesFilter": {
    "filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\"
               resource.type=\"gce_instance\"
               ${my_label_based_variable} ",
    "aggregation": {
      "alignmentPeriod": "60s",
      "perSeriesAligner": "ALIGN_MEAN",
      "groupByFields": []
    }
  },
  "unitOverride": "",
  "outputFullDuration": false
},

Widget yang menggunakan kueri dalam bentuk filter Monitoring tidak dapat memfilter deret waktu berdasarkan nilai dalam variabel berbasis label; tetapi, Anda dapat memfilter berdasarkan variabel khusus nilai. Misalnya, kueri berikut menampilkan kolom "filter" dari kueri yang memfilter menurut zone, berdasarkan nilai variabel khusus nilai:

"filter": "metric.type=\"compute.googleapis.com/instance/cpu/utilization\"
          resource.type=\"gce_instance\"
          resource.labels.\"zone\"=monitoring.regex.full_match(${my_value_only_variable})"

Tabel berikut menggambarkan cara variabel contoh di-resolve oleh filter Monitoring. Seperti yang disebutkan sebelumnya, jika hanya nilai variabel yang digunakan, Anda harus menggunakan ekspresi reguler sebagai operator perbandingan:

Sintaks Selected
Value
Ekspresi filter yang di-resolve
${my_label_based_variable} 12345 resource.instance_id == "12345"

Contoh variabel didasarkan pada label resource instance_id.

${my_label_based_variable} * Dihilangkan
${my_label_based_variable.value} 12345 Tidak didukung
${my_label_based_variable.value} * Tidak didukung
${my_value_based_variable} 12345 "12345"
${my_value_based_variable} * ".*"

Mengubah filter atau variabel yang disematkan

Untuk mengubah nilai filter yang ditampilkan di toolbar dasbor untuk sementara, klik nama filter, lalu masukkan nilai atau buat pilihan dari menu.

Jika dasbor Anda berisi tabel yang menampilkan data deret waktu, Anda dapat menambahkan filter sementara atau mengubah filter dan variabel permanen dengan menggunakan tombol Filter dasbor ke nilai ini sel. Tombol ini, jika dipilih, akan menerapkan filter sementara baru atau memperbarui nilai untuk filter atau variabel yang ada. Filter dan variabel yang ada akan diperbarui saat kunci label untuk kolom tabel cocok dengan kunci label untuk filter atau variabel.

Untuk mengubah konfigurasi filter atau variabel yang disematkan, lakukan hal berikut:

  1. Di konsol Google Cloud, buka halaman  Dasbor:

    Buka Dasbor

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

  2. Di toolbar dasbor, klik Setelan.
  3. Temukan filter atau variabel yang ingin Anda ubah dan luaskan definisinya.
  4. Setelah menyelesaikan perubahan, klik Terapkan.
  5. Untuk menyimpan dasbor yang telah diubah, klik Simpan di toolbar.

Menghapus filter atau variabel yang disematkan

Untuk menghapus filter atau variabel yang disematkan, lakukan langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman  Dasbor:

    Buka Dasbor

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

  2. Di toolbar dasbor, klik Setelan.
  3. Temukan filter atau variabel yang ingin dihapus, lalu klik Hapus.
  4. Klik Terapkan.
  5. Untuk menyimpan dasbor yang telah diubah, klik Simpan di toolbar.

Langkah selanjutnya