Membuat indikator tingkat layanan

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

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

SLO dibuat berdasarkan metrik yang mengukur performa dan digunakan sebagai indikator tingkat layanan (SLI). Untuk SLO kustom, Anda harus mengidentifikasi metrik yang ingin digunakan dalam SLI.

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

Karakteristik jenis metrik yang sesuai

Ada dua jenis SLO yang dapat Anda buat untuk layanan:

  • SLO berbasis permintaan.
  • SLO berbasis Windows.

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 informasi selengkapnya, lihat MetricKind.

Untuk SLO berbasis permintaan, SLI Anda mewakili rasio permintaan yang baik terhadap total permintaan. Jenis metrik SLI Anda harus 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 harus berupa DELTA atau CUMULATIVE. Anda tidak dapat menggunakan metrik GAUGE dalam SLI berbasis permintaan. Untuk informasi selengkapnya, lihat Struktur untuk SLI berbasis Windows.

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

Anda dapat menggunakan jenis metrik yang disediakan oleh Cloud Monitoring, atau dapat menggunakan jenis metrik kustom yang telah Anda buat. Dalam kedua kasus tersebut, nilainya 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 tingkat perincian nilai yang dapat diambil label metrik. Untuk diskusi tentang kardinalitas, lihat Kardinalitas: deret waktu dan label.

Jenis metrik dengan label yang menggunakan 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 dirancang untuk menghindari masalah kardinalitas. Metrik ini dapat mencakup metrik berbasis log dan metrik kustom yang ditentukan pengguna.

Menemukan jenis metrik yang sesuai

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

  • Pemilih metrik yang digunakan di alat seperti Metrics Explorer menampilkan kartu profil untuk jenis metrik yang ditandai. 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 load balancing di Metrics Explorer dengan kartu informasi yang menampilkan jenis metrik.

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

  • Halaman dalam Daftar metrik berisi tabel untuk setiap layanan yang menjelaskan jenis metrik yang terkait dengan layanan tersebut. 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 lengkap daripada kartu pengarahan kursor di Penjelajah Metrik.

    Metrik load balancing di tabel referensi.

Membuat SLI

Untuk pemantauan layanan, data metrik diproses dengan cara tertentu, yang dapat Anda replikasi di Metrics Explorer. Halaman ini mengasumsikan bahwa Anda sudah memahami cara 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 berupa DELTA atau CUMULATIVE. Hasilnya mungkin menyertakan 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 menetapkan label response_code_class ke 200. Filter ini menghapus deret waktu dengan nilai lain untuk label ini. Masih mungkin 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. Sisipkan nilai ini ke dalam struktur SLI sebagai nilai kolom goodServiceFilter.

  2. Masukkan juga nilai ini ke dalam struktur SLI sebagai nilai totalServiceFilter, tetapi 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.