Membuat indikator tingkat layanan

Jika membuat layanan kustom, Anda juga harus membuat tujuan tingkat layanan (SLO) untuk layanan tersebut. Tidak ada SLO yang telah ditetapkan sebelumnya 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 di SLI Anda.

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

SLO didasarkan pada jenis metrik yang Anda pilih sebagai SLI. Nilai dalam jenis metrik diklasifikasikan berdasarkan bagaimana nilai tersebut saling terkait. 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 baik terhadap total permintaan. Jenis metrik SLI Anda harus DELTA atau CUMULATIVE. Anda tidak dapat menggunakan metrik GAUGE dalam SLO 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. Untuk 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 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 berkaitan 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 yang ditentukan pengguna yang belum didesain untuk menghindari masalah kardinalitas. Hal 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 dalam alat seperti Metrics Explorer menampilkan kartu informasi untuk jenis metrik yang ditandai. Alat ini berfungsi untuk metrik kustom dan bawaan.

    Misalnya, screenshot berikut menampilkan kartu informasi 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 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 tersebut. Tabel ini mencakup semua jenis metrik bawaan, tetapi tidak menampilkan jenis metrik kustom.

    Misalnya, screenshot berikut menampilkan entri untuk jenis metrik loadbalancing.googleapis.com/https/request_count seperti yang terlihat dalam daftar metrik load balancing. Entri ini sering memberikan detail yang lebih lengkap daripada kartu informasi di Metrics Explorer.

    Metrik load balancing di tabel referensi.

Membangun SLI

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

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

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

Guna mendapatkan nilai untuk kolom goodServiceFilter:

  1. Pilih jenis resource dan jenis metrik yang dipantau. Ingat bahwa jenis metrik harus berupa DELTA atau CUMULATIVE. Hasilnya dapat 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 yang memiliki nilai lain untuk label ini. 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 More Options di atas diagram, lalu pilih View as JSON dari menu.

    JSON yang diambil 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 membangun 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, lalu hapus bagian label filter, metric.label.\"response_code_class\"=\"200\".

Indikator tingkat layanan yang dihasilkan 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"",
    }
  }

Selanjutnya, 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.