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: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.
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
:
Pilih jenis resource yang dipantau dan jenis metrik. Ingat bahwa jenis metrik harus
DELTA
atauCUMULATIVE
. Hasilnya mungkin mencakup banyak deret waktu yang berbeda.Misalnya, pilih jenis resource
http_lb_rule
dan jenis metrikloadbalancing.googleapis.com/https/request_count
.Gunakan kolom Filter untuk menyetel label
response_code_class
ke200
. Filter ini menghapus semua deret waktu dengan nilai lain untuk label ini. Mungkin masih ada beberapa deret waktu yang cocok.Pilih agregator
sum
untuk membuat satu deret waktu. Diagram di halaman Metrics Explorer menampilkan deret waktu yang dihasilkan.Klik Opsi Lainnya more_vert 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:
Masukkan nilai ini ke dalam struktur SLI sebagai nilai kolom
goodServiceFilter
.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.