Membuat indikator tingkat layanan

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

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

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 Anda:

  • SLO berbasis permintaan.
  • SLO berbasis jendela.

SLO didasarkan pada jenis metrik yang Anda pilih sebagai SLI. Nilai dalam jenis metrik diklasifikasikan berdasarkan hubungannya 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 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 Anda harus 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 dibuat. Dalam kedua kasus tersebut, nilainya sesuai 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 deret waktu yang mungkin dapat dikaitkan dengan jenis metrik, dan terkait dengan detail nilai yang dapat diambil oleh label metrik. Untuk pembahasan tentang kardinalitas, lihat Kardinalitas: deret waktu dan label.

Jenis metrik dengan label yang mengambil nilai seperti stempel waktu kemungkinan akan memiliki kardinalitas yang sangat tinggi dan merupakan pilihan yang buruk untuk digunakan sebagai SLI. Metrik berkardinalitas tinggi sering kali merupakan metrik yang ditentukan pengguna yang belum dirancang 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 pop-up untuk jenis metrik yang disorot. Alat ini berfungsi untuk metrik kustom dan bawaan.

    Misalnya, screenshot berikut menunjukkan kartu pop-up untuk jenis metrik loadbalancing.googleapis.com/https/request_count seperti yang terlihat di Metrics Explorer:

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

    Dengan Metrics Explorer, Anda juga dapat mengonfigurasi metrik untuk meniru fungsi 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. 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 di dalam daftar metrik load balancing. Entri ini sering kali memberikan detail yang lebih banyak daripada kartu pop-up di Metrics Explorer.

    Metrik load balancing dalam tabel referensi.

Membuat SLI

Untuk pemantauan layanan, data metrik diproses dengan cara tertentu, yang dapat Anda tiru di Metrics Explorer. Halaman ini mengasumsikan bahwa Anda sudah memahami cara menggunakan Metrics Explorer. Jika 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 untuk 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 menetapkan label response_code_class ke 200. Filter ini menghapus deret waktu apa pun 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. Sisipkan nilai ini ke dalam struktur SLI sebagai nilai kolom goodServiceFilter.

  2. Sisipkan 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 menyisipkan 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.