Membuat indikator tingkat layanan

Jika membuat layanan kustom, Anda juga harus membuat tujuan tingkat layanan (SLO) untuk layanan tersebut. Tidak ada SLO bawaan untuk layanan kustom.

Anda juga dapat membuat SLO kustom untuk layanan yang terdeteksi secara otomatis, tetapi hal ini kurang umum.

SLO dibangun di atas metrik yang mengukur performa dan digunakan sebagai indikator tingkat layanan (SLI). Untuk SLO kustom, Anda harus mengidentifikasi metrik yang ingin Anda gunakan dalam SLI.

Jika Anda tidak membuat SLO kustom, Anda dapat melewati halaman ini.

Karakteristik jenis metrik yang sesuai

Ada dua jenis SLO yang dapat Anda buat untuk layanan Anda:

  • SLO berbasis permintaan.
  • SLO berbasis rentang waktu.

SLO didasarkan pada jenis metrik yang Anda pilih sebagai SLI. Nilai dalam jenis metrik diklasifikasikan berdasarkan keterkaitannya satu sama lain. Klasifikasi ini disebut jenis metrik, dan memiliki tiga kemungkinan nilai, GAUGE, DELTA,, dan CUMULATIVE. Untuk mengetahui informasi selengkapnya, lihat MetricKind.

Untuk SLO berbasis permintaan, SLI Anda merepresentasikan rasio permintaan yang baik terhadap total permintaan. Jenis metrik SLI Anda harus berupa DELTA atau CUMULATIVE. Anda tidak dapat menggunakan metrik GAUGE dalam SLI berbasis permintaan.

Untuk SLO berbasis jendela, SLI Anda mewakili jumlah hasil yang baik dalam periode tertentu. Jenis metrik yang dapat diterima bergantung pada cara Anda menyusun SLI. Namun, jika Anda menggunakan SLI berbasis permintaan, jenis metrik SLI Anda harus berupa DELTA atau CUMULATIVE. Anda tidak dapat menggunakan metrik GAUGE dalam SLI berbasis permintaan. Untuk mengetahui informasi selengkapnya, lihat Struktur untuk SLI berbasis jendela.

Untuk mengetahui informasi selengkapnya tentang jenis SLO, lihat Konsep dalam pemantauan layanan.

Anda dapat menggunakan jenis metrik yang disediakan oleh Cloud Monitoring, atau Anda dapat menggunakan jenis metrik kustom yang telah Anda buat. Dalam kedua kasus tersebut, nilai-nilai tersebut cocok untuk SLI yang ingin Anda buat.

Jenis metrik yang tidak sesuai

Saat mempertimbangkan jenis metrik untuk digunakan sebagai SLI, hindari jenis metrik berkardinalitas tinggi. Kardinalitas menjelaskan jumlah kemungkinan deret waktu yang dapat dikaitkan dengan jenis metrik, dan terkait dengan perincian nilai yang dapat diambil oleh label metrik. Untuk pembahasan kardinalitas, lihat Kardinalitas: deret waktu dan label.

Jenis metrik dengan label yang mengambil nilai seperti stempel waktu cenderung memiliki kardinalitas yang sangat tinggi dan merupakan pilihan yang buruk untuk digunakan sebagai SLI. Metrik berkardinalitas tinggi sering kali merupakan metrik buatan pengguna yang belum didesain untuk menghindari masalah kardinalitas. Metrik ini dapat mencakup metrik berbasis log yang ditentukan pengguna dan metrik kustom.

Menemukan jenis metrik yang sesuai

Informasi tentang jenis metrik, termasuk jenis metrik, dapat ditemukan di beberapa tempat:

  • Pemilih metrik yang digunakan dalam alat seperti Metrics Explorer menampilkan kartu profil untuk jenis metrik yang disorot. Alat ini berfungsi untuk metrik kustom dan bawaan.

    Misalnya, screenshot berikut menampilkan kartu profil untuk jenis metrik loadbalancing.googleapis.com/https/request_count seperti yang terlihat di Metrics Explorer:

    Metrik penyeimbangan beban di Metrics Explorer dengan kartu profil yang menampilkan jenis metrik.

    Dengan Metrics Explorer, Anda juga dapat mengonfigurasi metrik agar meniru tindakan yang dilakukan SLO API, dan Anda bisa mendapatkan representasi JSON dari konfigurasi tersebut. JSON ini berguna dalam membuat SLI secara manual.

  • Halaman di Daftar metrik berisi tabel untuk setiap layanan yang menjelaskan jenis metrik yang terkait dengan layanan. Tabel ini mencakup semua jenis metrik bawaan, tetapi tidak menampilkan jenis metrik kustom.

    Misalnya, screenshot berikut menunjukkan entri untuk jenis metrik loadbalancing.googleapis.com/https/request_count seperti yang terlihat dalam daftar metrik load balancing. Entri ini sering kali memberikan detail yang lebih banyak daripada kartu saat mengarahkan kursor di Penjelajah Metrik.

    Metrik load balancing dalam tabel referensi.

Membangun SLI

Untuk pemantauan layanan, data metrik diproses dengan cara tertentu, yang dapat Anda replikasi di Metrics Explorer. Halaman ini mengasumsikan Anda sudah terbiasa menggunakan Metrics Explorer. Jika Anda memerlukan informasi selengkapnya, lihat Metrics Explorer.

Untuk membuat SLI berbasis permintaan berdasarkan rasio deret waktu, Anda memerlukan dua deret waktu: satu yang mewakili semua permintaan, dan satu yang mewakili permintaan yang baik (atau buruk). Jenis SLI ini memiliki struktur berikut:

  "requestBased": {
    "goodTotalRatio": {
      "totalServiceFilter": TO_BE_IDENTIFIED,
      "goodServiceFilter": TO_BE_IDENTIFIED,
    }
  }

Untuk mendapatkan nilai kolom goodServiceFilter:

  1. Pilih jenis resource yang dipantau dan jenis metrik. Ingat bahwa jenis metrik harus DELTA atau CUMULATIVE. Hasilnya mungkin mencakup banyak deret waktu yang berbeda.

    Misalnya, pilih jenis resource http_lb_rule dan jenis metrik loadbalancing.googleapis.com/https/request_count.

  2. Gunakan kolom Filter untuk menyetel label response_code_class ke 200. Filter ini menghapus semua deret waktu dengan nilai lain untuk label ini. Mungkin masih ada beberapa deret waktu yang cocok.

  3. Pilih agregator sum untuk membuat satu deret waktu. Diagram di halaman Metrics Explorer menampilkan deret waktu yang dihasilkan.

  4. Klik Opsi Lainnya di atas diagram, lalu pilih Lihat sebagai JSON dari menu.

    JSON yang diambil akan terlihat seperti berikut:

    "dataSets": [
      {
        "timeSeriesFilter": {
          "filter": "metric.type="loadbalancing.googleapis.com/https/request_count" resource.type="http_lb_rule" metric.label."response_code_class"="200""
          "perSeriesAligner": "ALIGN_RATE",
          "crossSeriesReducer": "REDUCE_SUM",
          "secondaryCrossSeriesReducer": "REDUCE_NONE",
          "minAlignmentPeriod": "60s",
          "groupByFields": [],
          "unitOverride": "1"
        },
        "targetAxis": "Y1",
        "plotType": "LINE"
      }
    ],
    

Bagian yang Anda minati adalah nilai kolom filter yang disematkan dalam objek dataSets:

"filter": "metric.type="loadbalancing.googleapis.com/https/request_count" resource.type="http_lb_rule" metric.label."response_code_class"="200""

Untuk membuat struktur SLI:

  1. Masukkan nilai ini ke dalam struktur SLI sebagai nilai kolom goodServiceFilter.

  2. Masukkan juga nilai ini ke dalam struktur SLI sebagai nilai totalServiceFilter, tetapi kemudian hapus bagian label filter, metric.label.\"response_code_class\"=\"200\".

Indikator tingkat layanan yang dihasilkan adalah sebagai berikut:

  "requestBased": {
    "goodTotalRatio": {
      "totalServiceFilter": "metric.type="loadbalancing.googleapis.com/https/request_count" resource.type="http_lb_rule"",
      "goodServiceFilter": "metric.type="loadbalancing.googleapis.com/https/request_count" resource.type="http_lb_rule" metric.label."response_code_class"="200"",
    }
  }

Kemudian, Anda dapat memasukkan SLI ini ke dalam SLO, misalnya:

{
   "serviceLevelIndicator": {
      "requestBased": {
        "goodTotalRatio": {
          "totalServiceFilter": "metric.type="loadbalancing.googleapis.com/https/request_count" resource.type="http_lb_rule"",
          "goodServiceFilter": "metric.type="loadbalancing.googleapis.com/https/request_count" resource.type="http_lb_rule" metric.label."response_code_class"="200"",
        }
     }
   },
   "goal": 0.98,
   "calendarPeriod": "WEEK",
   "displayName": "98% Successful requests in a calendar week"
}

Anda dapat menggunakan JSON ini untuk membuat SLO, seperti yang dijelaskan dalam Membuat SLO.