Dengan penskalaan otomatis berdasarkan metrik Cloud Monitoring, Anda dapat menyesuaikan kapasitas yang diperlukan sesuai dengan pengukuran dari aplikasi Anda. Saat Anda menskalakan MIG secara otomatis berdasarkan metrik, autoscaler akan membuat VM saat nilai metrik meningkat dan menghapus VM saat nilainya berkurang.
Misalnya, Anda dapat menentukan jumlah VM yang dibutuhkan per jumlah pengguna, latensi, atau jumlah pesan dalam langganan Pub/Sub. Anda dapat menggunakan metrik bawaan yang disediakan oleh layanan Monitoring, atau metrik kustom yang diekspor dari aplikasi Anda.
Dokumen ini menjelaskan cara melakukan penskalaan otomatis grup instance terkelola (MIG) berdasarkan metrik Monitoring.
Anda juga dapat menskalakan MIG secara otomatis berdasarkan penggunaan CPU, kapasitas penyaluran load balancing, atau jadwal.
Sebelum memulai
- Baca dasar-dasar autoscaler.
- Baca Konsep metrik Monitoring yang digunakan dalam konfigurasi penskalaan otomatis.
- Jika Anda ingin melakukan penskalaan otomatis berdasarkan metrik Agen Operasional, instal Agen Operasional.
-
Siapkan autentikasi, jika Anda belum melakukannya.
Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- Menetapkan region dan zona default.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
-
Batasan
Penskalaan berdasarkan metrik Monitoring dibatasi oleh batasan untuk semua autoscaler serta oleh batasan berikut:
- Anda dapat mengonfigurasi penskalaan otomatis berdasarkan hingga 5 metrik Monitoring per MIG.
- Anda dapat melakukan penskalaan otomatis berdasarkan metrik yang hanya memiliki jenis nilai
INT64
atauDOUBLE
. Jenis nilai lainnya tidak didukung. - Anda tidak dapat mengonfigurasi metrik yang sama lebih dari sekali dalam kebijakan penskalaan otomatis.
Mengonfigurasi penskalaan otomatis berdasarkan metrik Monitoring
Anda dapat menggunakan nilai metrik Monitoring untuk penskalaan otomatis dengan dua cara berbeda:
Target pemanfaatan: Jika Anda ingin autoscaler mempertahankan metrik pada nilai tertentu, konfigurasikan target pemanfaatan. Autoscaler akan membuat VM saat nilai metrik di atas target dan menghapus VM saat nilai metrik di bawah target. Hal ini berguna untuk metrik seperti traffic jaringan, penggunaan memori/disk, atau latensi rata-rata aplikasi. Diagram berikut menunjukkan cara autoscaler menambahkan dan menghapus VM sebagai respons terhadap nilai metrik untuk mempertahankan target pemanfaatan.
Penetapan instance tunggal: Jika Anda ingin menskalakan secara otomatis berdasarkan seberapa banyak pekerjaan yang tersedia untuk ditetapkan ke setiap VM, konfigurasikan penetapan instance tunggal Penetapan instance tunggal yang Anda tentukan merepresentasikan jumlah pekerjaan yang Anda harapkan untuk ditangani oleh setiap VM. Autoscaler membagi nilai metrik dengan nilai penetapan instance tunggal untuk menghitung jumlah VM yang dibutuhkan. Misalnya, jika metrik sama dengan 100 dan penetapan instance tunggal adalah 5, autoscaler akan membuat 20 VM di MIG. Hal ini berguna untuk metrik yang mencerminkan jumlah pekerjaan seperti panjang antrean Pub/Sub atau jumlah tugas batch. Penetapan instance tunggal tidak berlaku untuk metrik yang berasal dari setiap VM. Diagram berikut menunjukkan hubungan proporsional antara nilai metrik dan jumlah VM saat melakukan penskalaan dengan penetapan instance tunggal.
Penskalaan otomatis untuk mempertahankan metrik pada nilai target
Jika ingin mempertahankan metrik pada nilai target, tentukan target pemanfaatan. Autoscaler membuat VM saat nilai metrik di atas target dan menghapus VM saat nilai metrik di bawah target.
Jika metrik berasal dari setiap VM di MIG Anda, autoscaler akan mengambil nilai metrik rata-rata di semua VM di MIG dan membandingkannya dengan target pemanfaatan. Misalnya, jika Anda ingin melakukan penskalaan otomatis menggunakan metrik
tcp_connections
yang memberikan jumlah koneksi TCP pada VM, autoscaler akan mengambil jumlah rata-rata koneksi TCP di semua VM di MIG untuk dibandingkan dengan target. Jika Anda menggunakan metrik tersebut yang berasal dari VM, MIG tidak akan dapat menskalakan ke0
karena autoscaler memerlukan setidaknya satu VM untuk memublikasikan nilai metrik.Jika metrik berlaku untuk seluruh MIG dan tidak berasal dari VM di MIG Anda, autoscaler akan membandingkan nilai metrik dengan target pemanfaatan. Misalnya, Anda dapat menggunakan metrik kustom yang mengukur latensi aplikasi Anda.
Jika metrik Anda memiliki beberapa nilai, terapkan filter untuk melakukan penskalaan otomatis menggunakan nilai individual dari metrik. Untuk mengetahui detail selengkapnya tentang filter metrik dan kolom lain yang dapat Anda gunakan dalam konfigurasi, lihat Memantau konsep metrik.
Konsol
Di Konsol Google Cloud, buka halaman Instance groups.
Jika Anda tidak memiliki grup instance terkelola (MIG), buat grup instance. Jika sudah memiliki grup instance terkelola (MIG), klik nama MIG dari daftar untuk membuka halaman grup instance tersebut.
Klik Edit.
Jika tidak ada konfigurasi penskalaan otomatis:
- Di bagian Autoscaling, klik Configure Autoscaling.
- Di bagian Autoscaling mode, pilih On: add and remove instances to the group untuk mengaktifkan penskalaan otomatis.
Di bagian Autoscaling, di bagian Autoscaling metrics, jika ada sinyal untuk metrik Cloud Monitoring, Anda dapat mengklik untuk mengeditnya, atau mengklik Add a signal untuk menambahkan sinyal baru.
Atur Signal type ke Cloud Monitoring metric.
Klik Konfigurasikan. Di panel Resource and metric yang terbuka, lakukan tindakan berikut:
- Klik Select a metric.
- Pilih metrik yang ingin Anda gunakan untuk penskalaan otomatis. Anda dapat memfilter metrik berdasarkan kata kunci apa pun—misalnya, memori, byte, disk.
- Klik Apply. Panel akan menampilkan diagram yang menunjukkan data dari metrik yang dipilih.
Jika Anda ingin menggunakan data tertentu dari metrik, tambahkan filter berdasarkan label sebagai berikut:
- Di bagian Filter, klik Add a filter.
- Pilih Label dan masukkan Nilai.
- Klik Done. Diagram akan dimuat ulang untuk menampilkan nilai metrik yang difilter.
Untuk melihat nilai gabungan metrik yang akan digunakan untuk menskalakan MIG Anda secara otomatis, aktifkan tombol Show aggregation in chart. Diagram akan dimuat ulang untuk menampilkan nilai gabungan.
Di bagian Metric target options for autoscaling, pilih Utilization target.
Berikan hal berikut:
- Utilization target: Tentukan nilai yang harus dipertahankan oleh autoscaler. Nilai yang diisikan harus berupa bilangan positif. Misalnya, 24.5 dan 100 adalah nilai yang dapat diterima.
- Utilization target type: Pilih jenis target yang sesuai dengan jenis pengukuran metrik. Untuk perbandingan yang akurat, jika target pemakaian diukur per detik, gunakan Delta / second sebagai jenis penargetan. Demikian juga, gunakan
Delta / min untuk target pemakaian yang diukur per menit.
- Gauge: Autoscaler akan menghitung nilai rata-rata data yang dikumpulkan dalam beberapa menit terakhir dan membandingkannya dengan target pemanfaatan.
- Delta / min: Autoscaler akan menghitung tingkat rata-rata pertumbuhan per menit dan membandingkannya dengan target pemanfaatan.
- Delta / second: Autoscaler akan menghitung tingkat rata-rata pertumbuhan per detik dan membandingkannya dengan target pemanfaatan.
Setelah selesai mengonfigurasi metrik, klik Select.
- Klik Select a metric.
Tinjau detail metrik, lalu klik Done.
Untuk menyelesaikan konfigurasi, klik Save.
gcloud
Untuk mengonfigurasi penskalaan otomatis berdasarkan metrik Monitoring, gunakan perintah set-autoscaling
.
Gunakan perintah berikut untuk menskalakan otomatis berdasarkan metrik Monitoring dengan target pemakaian.
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=METRIC_URL \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE
Jika metrik memiliki beberapa nilai dan Anda ingin menggunakan nilai individual untuk penskalaan otomatis, gunakan flag --stackdriver-metric-filter
seperti yang diberikan dalam perintah berikut.
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=METRIC_URL \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE \ --stackdriver-metric-filter="METRIC_FILTER"
Ganti kode berikut:
MIG_NAME
: MIG yang hendak Anda tambahkan autoscaler.MAX_INSTANCES
: jumlah maksimum VM yang dapat dimiliki MIG.MIN_INSTANCES
: jumlah minimum VM yang harus dimiliki oleh MIG.METRIC_URL
: URL bebas protokol dari metrik Monitoring. Contoh,compute.googleapis.com/instance/uptime
. Jika Anda menggunakan metrik kustom, metrik tersebut harus memenuhi persyaratan metrik kustom.TARGET_VALUE
: nilai metrik yang coba dipertahankan oleh autoscaler.TARGET_TYPE
: jenis nilai untuk metrik.gauge
penghitung skala otomatis menghitung nilai rata-rata data yang dikumpulkan dalam beberapa menit terakhir dan membandingkannya dengan target pemanfaatan.delta-per-minute
penghitung skala otomatis menghitung tingkat rata-rata pertumbuhan per menit dan membandingkannya dengan target pemanfaatan.delta-per-second
penghitung skala otomatis menghitung tingkat rata-rata pertumbuhan per detik dan membandingkannya dengan target pemanfaatan. Untuk perbandingan yang akurat, jika Anda menetapkan target pemakaian dalam hitungan detik, gunakandelta-per-second
sebagai jenis target. Demikian pula, gunakandelta-per-minute
untuk target pemanfaatan dalam hitungan menit.
METRIC_FILTER
: menerapkan filter untuk menggunakan nilai individual dari metrik yang memiliki beberapa nilai dan untuk menentukan jenis resource yang dimonitor. Jika menggunakan metrik yang berasal dari setiap VM, Anda tidak perlu menentukan jenis resource yang dipantau karenagce_instance
digunakan sebagai default. Untuk metrik lainnya, gunakanresource.type
dalam ekspresi filter untuk menentukan resource yang dipantau. Untuk mempelajari filter metrik lebih lanjut, lihat Memantau konsep metrik.
Untuk melihat daftar lengkap perintah dan flag yang tersedia untuk gcloud CLI, baca referensi gcloud
.
REST
Untuk mengonfigurasi penskalaan otomatis berdasarkan metrik Monitoring untuk MIG tingkat zona, gunakan resource autoscalers
atau, untuk MIG regional, gunakan regionAutoscalers
.
Lakukan panggilan berikut untuk menskalakan MIG tingkat zona secara otomatis berdasarkan metrik Monitoring dengan target pemanfaatan.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "metric": "METRIC_URL", "utilizationTarget": TARGET_VALUE, "utilizationTargetType": TARGET_TYPE } ], } }
Jika metrik memiliki beberapa nilai dan Anda ingin menggunakan nilai individual untuk penskalaan otomatis, gunakan parameter filter
seperti yang diberikan dalam panggilan API berikut.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "metric": "METRIC_URL", "utilizationTarget": TARGET_VALUE, "utilizationTargetType": TARGET_TYPE, "filter": "METRIC_FILTER" } ], } }
Ganti kode berikut:
PROJECT_ID
: project ID Anda.ZONE
: zona tempat MIG berada.AUTOSCALER_NAME
: nama autoscaler.MIG_NAME
: MIG yang hendak Anda tambahkan autoscaler.MAX_INSTANCES
: jumlah maksimum VM yang dapat dimiliki MIG.MIN_INSTANCES
: jumlah minimum VM yang harus dimiliki oleh MIG.METRIC_URL
: URL bebas protokol dari metrik Monitoring. Contoh,compute.googleapis.com/instance/uptime
. Jika Anda menggunakan metrik kustom, metrik tersebut harus memenuhi persyaratan metrik kustom.TARGET_VALUE
: nilai metrik yang coba dipertahankan oleh autoscaler.TARGET_TYPE
: jenis nilai untuk metrik.GAUGE
: Penskala otomatis menghitung nilai rata-rata data yang dikumpulkan dalam beberapa menit terakhir dan membandingkannya dengan target pemanfaatan.DELTA_PER_MINUTE
Autoscaler menghitung tingkat rata-rata pertumbuhan per menit dan membandingkannya dengan target pemanfaatan.DELTA_PER_SECOND
Autoscaler menghitung tingkat rata-rata pertumbuhan per detik dan membandingkannya dengan target pemanfaatan. Untuk perbandingan yang akurat, jika Anda menetapkan target pemanfaatan dalam hitungan detik, gunakanDELTA_PER_SECOND
sebagai jenis target. Demikian pula, gunakanDELTA_PER_MINUTE
untuk target pemanfaatan dalam hitungan menit.
METRIC_FILTER
: menerapkan filter untuk menggunakan nilai individual dari metrik yang memiliki beberapa nilai dan untuk menentukan jenis resource yang dimonitor. Jika menggunakan metrik yang berasal dari setiap VM, Anda tidak perlu menentukan jenis resource yang dipantau karenagce_instance
digunakan sebagai default. Untuk metrik lainnya, Anda harus menentukan resource yang dimonitor menggunakan pemilihresource.type
. Untuk mempelajari filter metrik lebih lanjut, lihat Memantau konsep metrik.
Penskalaan otomatis berdasarkan tugas yang tersedia untuk setiap VM di MIG
Jika Anda ingin melakukan penskalaan otomatis berdasarkan jumlah pekerjaan yang tersedia untuk setiap VM di MIG, tentukan penetapan instance tunggal. Nilai penetapan instance tunggal yang Anda tetapkan menunjukkan seberapa banyak pekerjaan yang Anda harapkan untuk ditangani oleh setiap VM. Autoscaler membagi nilai metrik dengan nilai penetapan instance tunggal untuk menghitung jumlah VM yang dibutuhkan.
Nilai metrik 0
menunjukkan bahwa tidak ada pekerjaan yang harus diselesaikan MIG Anda. Jika jumlah minimum instance MIG Anda ditetapkan ke 0
dan nilai metrik Anda turun menjadi 0
, MIG akan diskalakan ke 0
sampai nilai metrik meningkat.
Jika metrik Anda memiliki beberapa nilai, terapkan filter untuk melakukan penskalaan otomatis menggunakan nilai individual dari metrik. Untuk mengetahui detail selengkapnya tentang filter metrik dan kolom lain yang dapat Anda gunakan dalam konfigurasi, lihat Memantau konsep metrik.
Konsol
Di Konsol Google Cloud, buka halaman Instance groups.
Jika Anda tidak memiliki grup instance terkelola (MIG), buat grup instance. Jika sudah memiliki grup instance terkelola (MIG), klik nama MIG dari daftar untuk membuka halaman grup instance tersebut.
Klik Edit.
Jika tidak ada konfigurasi penskalaan otomatis:
- Di bagian Autoscaling, klik Configure Autoscaling.
- Di bagian Autoscaling mode, pilih On: add and remove instances to the group untuk mengaktifkan penskalaan otomatis.
Pada Autoscaling, di bagian Autoscaling signal, jika ada sinyal untuk metrik Monitoring, Anda dapat mengklik untuk mengeditnya, atau mengklik Add a signal untuk menambahkan metrik baru.
Atur Signal type ke Cloud Monitoring metric.
Klik Konfigurasikan. Di panel Resource and metric yang terbuka, lakukan tindakan berikut:
- Klik Select a metric.
- Pilih metrik yang ingin Anda gunakan untuk penskalaan otomatis. Anda dapat memfilter metrik berdasarkan kata kunci apa pun—misalnya, memori, byte, disk.
- Klik Apply. Panel akan menampilkan diagram yang menunjukkan data dari metrik yang dipilih.
Jika Anda ingin menggunakan data tertentu dari metrik, tambahkan filter berdasarkan label sebagai berikut:
- Di bagian Filter, klik Add a filter.
- Pilih Label dan masukkan Nilai.
- Klik Done. Diagram akan dimuat ulang untuk menampilkan nilai metrik yang difilter.
Untuk melihat nilai gabungan metrik yang akan digunakan untuk menskalakan MIG Anda secara otomatis, aktifkan tombol Show aggregation in chart. Diagram akan dimuat ulang untuk menampilkan nilai gabungan.
Di bagian Metric target options for autoscaling, pilih Single VM instance assignment.
Berikan nilai Penetapan instance tunggal yang mewakili jumlah pekerjaan yang harus ditetapkan ke setiap VM di MIG.
Setelah selesai mengonfigurasi metrik, klik Select.
- Klik Select a metric.
Tinjau detail metrik, lalu klik Done.
Untuk menyelesaikan konfigurasi, klik Save.
gcloud
Untuk mengonfigurasi penskalaan otomatis berdasarkan metrik Monitoring, gunakan perintah set-autoscaling
.
Dalam perintah tersebut, tentukan flag --stackdriver-metric-single-instance-assignment
untuk menunjukkan jumlah pekerjaan yang Anda harapkan akan ditangani oleh setiap VM dalam
grup.
Perintah berikut akan membuat autoscaler berdasarkan tugas kerja untuk setiap VM.
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=METRIC_URL \ --stackdriver-metric-filter="METRIC_FILTER" \ --stackdriver-metric-single-instance-assignment=INSTANCE_ASSIGNMENT
Ganti kode berikut:
MIG_NAME
: nama MIG tempat Anda ingin menambahkan autoscaler.MAX_INSTANCES
: jumlah maksimum VM yang dapat dimiliki MIG.MIN_INSTANCES
: jumlah minimum VM yang harus dimiliki oleh MIG.METRIC_URL
: URL bebas protokol dari metrik Monitoring. Contoh,compute.googleapis.com/instance_group/size
. Jika Anda menggunakan metrik kustom, metrik tersebut harus memenuhi persyaratan metrik kustom.METRIC_FILTER
: menerapkan filter untuk menggunakan nilai individual dari metrik yang memiliki beberapa nilai dan untuk menentukan jenis resource yang dimonitor. Untuk mempelajari filter metrik lebih lanjut, lihat Memantau konsep metrik.INSTANCE_ASSIGNMENT
: jumlah pekerjaan yang harus ditetapkan ke setiap instance VM di MIG.
REST
Untuk mengonfigurasi penskalaan otomatis berdasarkan metrik Monitoring untuk MIG tingkat zona, gunakan resource autoscalers
atau, untuk MIG regional, gunakan regionAutoscalers
.
Gunakan parameter singleInstanceAssignment
untuk menentukan jumlah pekerjaan
yang Anda harapkan akan ditangani oleh setiap VM.
Misalnya, lakukan panggilan berikut untuk membuat autoscaler yang menskalakan MIG tingkat zona berdasarkan penetapan instance.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "metric": "METRIC_URL", "filter": "METRIC_FILTER", "singleInstanceAssignment": INSTANCE_ASSIGNMENT } ], } }
Ganti kode berikut:
PROJECT_ID
: project ID Anda.ZONE
: zona tempat MIG berada.AUTOSCALER_NAME
: nama autoscaler.MIG_NAME
: nama MIG tempat Anda ingin menambahkan autoscaler.MAX_INSTANCES
: jumlah maksimum VM yang dapat dimiliki MIG.MIN_INSTANCES
: jumlah minimum VM yang harus dimiliki oleh MIG.METRIC_URL
: URL bebas protokol dari metrik Monitoring. Contoh,compute.googleapis.com/instance_group/size
. Jika Anda menggunakan metrik kustom, metrik tersebut harus memenuhi persyaratan metrik kustom.METRIC_FILTER
: menerapkan filter untuk menggunakan nilai individual dari metrik yang memiliki beberapa nilai dan untuk menentukan jenis resource yang dimonitor. Untuk mempelajari filter metrik lebih lanjut, lihat Memantau konsep metrik.INSTANCE_ASSIGNMENT
: jumlah pekerjaan yang harus ditetapkan ke setiap instance VM di MIG.
Contoh penskalaan otomatis berdasarkan metrik
Bagian ini memberikan beberapa contoh metrik yang digunakan untuk penskalaan otomatis. Untuk mengetahui daftar lengkap metrik, lihat metrik Google Cloud.
Penskalaan otomatis berdasarkan metrik kustom
Mungkin ada situasi saat metrik yang memberikan sinyal relevan tidak mewakili jumlah total pekerjaan yang tersedia atau resource lain yang berlaku untuk grup tersebut, tetapi malah mewakili rata-rata, persentil, atau beberapa properti. Untuk contoh ini, asumsikan Anda melakukan penskalaan berdasarkan latensi pemrosesan rata-rata grup.
Asumsikan penyiapan berikut:
- MIG tingkat zona bernama
our-instance-group
ditetapkan untuk melakukan tugas tertentu. Grup ini terletak di zonaus-central1-a
. - Anda memiliki metrik kustom Monitoring yang mengekspor nilai yang ingin Anda pertahankan pada tingkat tertentu. Untuk contoh ini, anggaplah metrik mewakili latensi rata-rata pemrosesan kueri yang ditetapkan ke grup.
- Metrik kustom diberi nama:
custom.googleapis.com/example_average_latency
. - Metrik kustom memiliki label dengan kunci bernama
group_name
dan nilai yang sama dengan nama MIG,our-instance-group
. - Metrik kustom mengekspor data untuk resource yang dimonitor secara global, yang berarti data tersebut tidak terkait dengan VM tertentu.
- Metrik kustom diberi nama:
Anda telah menentukan bahwa saat nilai metrik di atas nilai tertentu, Anda perlu menambahkan lebih banyak VM ke grup untuk menangani beban, sedangkan saat nilai metrik berada di bawah nilai tersebut, Anda dapat mengosongkan beberapa resource. Anda ingin autoscaler menambahkan atau menghapus VM secara bertahap dengan kecepatan yang proporsional dengan jumlah metrik yang berada di atas atau di bawah target. Untuk contoh ini, asumsikan bahwa Anda telah
menentukan nilai target menjadi 250 delta/sec
.
Anda dapat mengonfigurasi penskalaan otomatis untuk grup menggunakan target pemanfaatan 250
, yang mewakili tingkat perubahan nilai metrik yang akan dijaga oleh autoscaler:
Konsol
Di Konsol Google Cloud, buka halaman Instance groups.
Klik nama MIG Anda dari daftar untuk membuka halaman ringkasan grup instance.
Klik Edit.
Jika tidak ada konfigurasi penskalaan otomatis:
- Di bagian Autoscaling, klik Configure Autoscaling.
- Di bagian Autoscaling mode, pilih On: add and remove instances to the group untuk mengaktifkan penskalaan otomatis.
Pada Autoscaling, di bagian Autoscaling signals, klik Add a signal.
Atur Signal type ke Cloud Monitoring metric.
Klik Configure. Panel Resource and metric akan terbuka.
- Klik Select a metric.
- Pilih metrik dari Global > Custom metrics.
- Klik Apply.
- Di bagian Filter, lakukan tindakan berikut:
- Klik Add a filter.
- Di drop-down Label, pilih
group_name
. - Di kolom Value, masukkan
our-instance-group
. - Klik Done. Diagram akan dimuat ulang untuk menampilkan nilai yang difilter dari metrik.
- Di bagian Metric target options for autoscaling, lakukan tindakan berikut:
- Pilih Utilization target.
- Masukkan nilai target pemanfaatan sebesar 250.
- Tetapkan jenis target penggunaan ke Delta / sec.
- Setelah mengonfigurasi metrik, klik Select.
- Klik Select a metric.
Tinjau detail metrik, lalu klik Done.
Setelah selesai, klik Save.
gcloud
gcloud compute instance-groups managed set-autoscaling our-instance-group \ --zone=us-central1-a \ --max-num-replicas=50 \ --min-num-replicas=0 \ --update-stackdriver-metric=custom.googleapis.com/example_average_latency \ --stackdriver-metric-filter="metric.labels.group_name = \"our-instance-group\" AND resource.type = \"global\"" \ --stackdriver-metric-utilization-target=250 \ --stackdriver-metric-utilization-target-type=delta-per-second
REST
POST https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/autoscalers { "name": "our-instance-group-autoscaler", "target": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceGroupManagers/our-instance-group", "autoscalingPolicy": { "maxNumReplicas": 50, "minNumReplicas": 0, "customMetricUtilizations": [ { "filter": "metric.labels.group_name=\"our-instance-group\" AND resource.type = \"global\"", "utilizationTargetType": "delta-per-second", "utilizationTarget": 250.0, "metric": "custom.googleapis.com/example_average_latency" } ] } }
Penskalaan otomatis berdasarkan pesan yang tidak dikonfirmasi di Pub/Sub
Untuk mengonfigurasi penskalaan otomatis berdasarkan pesan yang tidak dikonfirmasi di langganan Pub/Sub, gunakan metrik subscription/num_undelivered_messages
yang disediakan oleh pubsub
dan filter menurut subscription ID
.
Metrik subscription/num_undelivered_messages
mengekspor jumlah total
pesan dalam langganan, termasuk pesan yang sedang
diproses tetapi belum dikonfirmasi. Tidak disarankan menggunakan metrik yang tidak menyertakan pesan yang sedang diproses karena metrik tersebut dapat turun ke 0 saat masih ada pekerjaan yang sedang dilakukan, yang akan meminta penskalaan otomatis untuk diskalakan dan mungkin mengganggu pekerjaan yang sebenarnya.
Jika tidak memiliki langganan, Anda dapat membuat langganan pull, push, atau BigQuery sebelum mengonfigurasi penskalaan otomatis.
Konsol
Di Konsol Google Cloud, buka halaman Instance groups.
Klik nama MIG Anda dari daftar untuk membuka halaman ringkasan grup instance.
Klik Edit.
Jika tidak ada konfigurasi penskalaan otomatis:
- Di bagian Autoscaling, klik Configure Autoscaling.
- Di bagian Autoscaling mode, pilih On: add and remove instances to the group untuk mengaktifkan penskalaan otomatis.
Di bagian Autoscaling signals, klik Add a signal.
Atur Signal type ke Cloud Pub/Sub queue.
Pilih Topik. Jika Anda menginginkan topik baru, klik Create a topic untuk membuatnya.
Pilih Langganan berdasarkan opsi yang Anda inginkan untuk melakukan penskalaan otomatis MIG. Jika Anda menginginkan langganan baru, klik Create a subscription untuk membuat langganan.
Di kolom Number of messages to assign to each VM, tentukan jumlah pesan tidak terkonfirmasi yang Anda harapkan untuk ditangani oleh setiap VM.
Klik Done.
Setelah selesai, klik Save.
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=pubsub.googleapis.com/subscription/num_undelivered_messages \ --stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"SUBSCRIPTION_ID\"" \ --stackdriver-metric-single-instance-assignment=NUMBER_OF_MESSAGES_TO_ASSIGN_TO_EACH_VM
REST
Untuk mengonfigurasi penskalaan otomatis untuk MIG tingkat zona, gunakan resource
autoscalers
atau, untuk
MIG regional, gunakan resource regionAutoscalers
.
Misalnya, lakukan panggilan berikut untuk membuat autoscaler untuk MIG zona.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "singleInstanceAssignment": NUMBER_OF_MESSAGES_TO_ASSIGN_TO_EACH_VM, "filter": "resource.type = \"pubsub_subscription\" AND resource.labels.subscription_id=\"SUBSCRIPTION_ID\"", "metric": "pubsub.googleapis.com/subscription/num_undelivered_messages" } ] } }
Penskalaan otomatis berdasarkan traffic jaringan yang masuk
Untuk mengonfigurasi penskalaan otomatis berdasarkan traffic jaringan yang masuk ke VM di MIG Anda, gunakan metrik instance/network/received_bytes_count
yang disediakan oleh compute
.
Konsol
Di Konsol Google Cloud, buka halaman Instance groups.
Klik nama MIG Anda dari daftar untuk membuka halaman ringkasan grup instance.
Klik Edit.
Jika tidak ada konfigurasi penskalaan otomatis:
- Di bagian Autoscaling, klik Configure Autoscaling.
- Di bagian Autoscaling mode, pilih On: add and remove instances to the group untuk mengaktifkan penskalaan otomatis.
Pada Autoscaling, di bagian Autoscaling signals, klik Add a signal.
Atur Signal type ke Cloud Monitoring metric.
Klik Configure. Panel Resource and metric akan terbuka.
- Klik Select a metric.
- Pilih VM Instance > Instance > Received bytes
(
compute.googleapis.com/instance/network/received_bytes_count
). - Klik Apply.
- Pilih VM Instance > Instance > Received bytes
(
- Di bagian Metric target options for autoscaling, lakukan tindakan berikut:
- Pastikan Utilization target dipilih.
- Masukkan nilai target pemanfaatan.
- Tetapkan jenis target pemanfaatan.
- Setelah mengonfigurasi metrik, klik Select.
- Klik Select a metric.
Tinjau detail metrik, lalu klik Done.
Setelah selesai, klik Save.
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=compute.googleapis.com/instance/network/received_bytes_count \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "utilizationTargetType": "TARGET_TYPE", "utilizationTarget": TARGET_VALUE, "metric": "compute.googleapis.com/instance/network/received_bytes_count" } ] } }
Penskalaan otomatis berdasarkan penggunaan memori
Untuk mengonfigurasi penskalaan otomatis berdasarkan persentase memori yang digunakan,
tentukan metrik percent_used
yang disediakan oleh metrik
Agen Operasional memori. Anda harus memfilter metrik menurut state
agar hanya menggunakan status memori used
. Jika Anda tidak menentukan filter, autoscaler akan menghitung jumlah penggunaan memori oleh semua status memori yang diberi label sebagai buffered
, cached
, free
, slab
, dan used
.
Konsol
Di Konsol Google Cloud, buka halaman Instance groups.
Klik nama MIG Anda dari daftar untuk membuka halaman ringkasan grup instance.
Di halaman ringkasan grup instance, klik Edit.
Jika tidak ada konfigurasi penskalaan otomatis:
- Di bagian Autoscaling, klik Configure Autoscaling.
- Di bagian Autoscaling mode, pilih On: add and remove instances to the group untuk mengaktifkan penskalaan otomatis.
Pada Autoscaling, di bagian Autoscaling signals, klik Add a signal.
Atur Signal type ke Cloud Monitoring metric.
Klik Configure. Panel Resource and metric akan terbuka.
- Klik Select a metric.
- Pilih VM Instance > Memory > Memory utilization
(
compute.googleapis.com/instance/memory/percent_used
). - Klik Apply.
- Pilih VM Instance > Memory > Memory utilization
(
- Di bagian Filter, lakukan tindakan berikut:
- Klik Add a filter.
- Di drop-down Label, pilih label metrik status.
- Di kolom Nilai, ketik used.
- Klik Done.
- Di bagian Metric target options for autoscaling, lakukan tindakan berikut:
- Pastikan Utilization target dipilih.
- Masukkan nilai target pemanfaatan.
- Tetapkan jenis target pemanfaatan ke Gauge.
- Setelah mengonfigurasi metrik, klik Select.
- Klik Select a metric.
Tinjau detail metrik, lalu klik Done.
Setelah selesai, klik Save.
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=agent.googleapis.com/memory/percent_used \ --stackdriver-metric-filter="metric.labels.state = \"used\"" --stackdriver-metric-utilization-target-type=gauge \ --stackdriver-metric-utilization-target=TARGET_VALUE \
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "filter": "metric.labels.state=\"used\"", "utilizationTargetType": "GAUGE", "utilizationTarget": TARGET_VALUE, "metric": "agent.googleapis.com/memory/percent_used" } ] } }
Penskalaan otomatis berdasarkan I/O disk
Untuk mengonfigurasi penskalaan otomatis berdasarkan jumlah total operasi I/O disk, gunakan metrik operation_count
yang disediakan oleh metrik Agen Operasional disk.
Jika Anda ingin melakukan penskalaan berdasarkan operasi baca atau tulis, filter metrik menggunakan label direction
. Demikian pula, untuk menskalakan berdasarkan operasi disk di perangkat tertentu, gunakan label device
dalam filter metrik.
Konsol
Di Konsol Google Cloud, buka halaman Instance groups.
Klik nama MIG Anda dari daftar untuk membuka halaman ringkasan grup instance.
Di halaman ringkasan grup instance, klik Edit.
Jika tidak ada konfigurasi penskalaan otomatis:
- Di bagian Autoscaling, klik Configure Autoscaling.
- Di bagian Autoscaling mode, pilih On: add and remove instances to the group untuk mengaktifkan penskalaan otomatis.
Pada Autoscaling, di bagian Autoscaling signals, klik Add a signal.
Atur Signal type ke Cloud Monitoring metric.
Klik Configure. Panel Resource and metric akan terbuka.
- Klik Select a metric.
- Pilih VM instance > Disk > Disk operations
(
agent.googleapis.com/disk/operation_count
). - Klik Apply.
- Pilih VM instance > Disk > Disk operations
(
- Di bagian Metric target options for autoscaling, lakukan tindakan berikut:
- Pastikan Utilization target dipilih.
- Masukkan nilai target pemanfaatan.
- Tetapkan jenis target pemanfaatan.
- Setelah mengonfigurasi metrik, klik Select.
- Klik Select a metric.
Tinjau detail metrik, lalu klik Done.
Setelah selesai, klik Save.
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_NAME \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=agent.googleapis.com/disk/operation_count \ --stackdriver-metric-utilization-target=TARGET_VALUE \ --stackdriver-metric-utilization-target-type=TARGET_TYPE
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "utilizationTargetType": "TARGET_TYPE", "utilizationTarget": TARGET_VALUE, "metric": "agent.googleapis.com/disk/operation_count" } ] } }
Penskalaan otomatis berdasarkan ukuran MIG lain
Anda dapat menskalakan MIG secara otomatis berdasarkan ukuran MIG lain dalam project yang sama. Misalnya, Anda dapat memiliki aplikasi multi-tingkat dengan MIG frontend yang melakukan penskalaan otomatis berdasarkan load balancer dan MIG backend yang melakukan penskalaan otomatis secara proporsional dengan frontend. Gunakan penetapan instance tunggal untuk menentukan jumlah VM backend yang diperlukan untuk setiap VM frontend. Jika Anda memerlukan 1 VM backend untuk setiap 4 VM frontend, tetapkan penetapan instance tunggal ke 4 di MIG backend.
Untuk menskalakan MIG (MIG_1) secara otomatis berdasarkan ukuran
MIG lain (MIG_2), gunakan metrik instance_group/size
yang disediakan oleh compute
.
Konsol
Di Konsol Google Cloud, buka halaman Instance groups.
Klik nama MIG Anda dari daftar untuk membuka halaman ringkasan grup instance.
Di halaman ringkasan grup instance, klik Edit.
Jika tidak ada konfigurasi penskalaan otomatis:
- Di bagian Autoscaling, klik Configure Autoscaling.
- Di bagian Autoscaling mode, pilih On: add and remove instances to the group untuk mengaktifkan penskalaan otomatis.
Pada Autoscaling, di bagian Autoscaling signals, klik Add a signal.
Atur Signal type ke Cloud Monitoring metric.
Klik Configure. Panel Resource and metric akan terbuka.
- Klik Select a metric
- Pilih Instance Group > Instance_group > Instance group size
(
compute.googleapis.com/instance_group/size
). - Klik Apply.
- Pilih Instance Group > Instance_group > Instance group size
(
- Di bagian Filter, lakukan tindakan berikut:
- Klik Add a filter.
- Di drop-down Label, pilih label resource instance_group_name.
- Di kolom Value, ketik nama MIG (MIG_2) berdasarkan yang ingin Anda skalakan MIG-nya secara otomatis.
- Klik Done.
- Di bagian Metric target options for autoscaling, lakukan tindakan berikut:
- Pilih Single VM instance assignment.
- Di kolom Penetapan instance VM tunggal, masukkan
4
, jika Anda ingin menyimpan 1 VM di MIG saat ini (MIG_1) untuk setiap 4 VM di MIG_2.
- Setelah mengonfigurasi metrik, klik Select.
- Klik Select a metric
Tinjau detail metrik, lalu klik Done.
Setelah selesai, klik Save.
gcloud
gcloud compute instance-groups managed set-autoscaling MIG_1 \ --max-num-replicas=MAX_INSTANCES \ --min-num-replicas=MIN_INSTANCES \ --update-stackdriver-metric=compute.googleapis.com/instance_group/size \ --stackdriver-metric-filter="resource.type = \"instance_group\" AND resource.labels.location = \"ZONE|REGION\" AND resource.labels.instance_group_name = \"MIG_2\"" \ --stackdriver-metric-single-instance-assignment=4
REST
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_1", "autoscalingPolicy": { "maxNumReplicas": MAX_INSTANCES, "minNumReplicas": MIN_INSTANCES, "customMetricUtilizations": [ { "singleInstanceAssignment": 4, "filter": "resource.type = \"instance_group\" and resource.labels.location = \"ZONE|REGION\" AND resource.labels.instance_group_name = \"MIG_2\"", "metric": "compute.googleapis.com/instance_group/size" } ] } }
Konsep metrik Monitoring
Bagian ini memberikan deskripsi singkat tentang konsep metrik Monitoring yang perlu Anda ketahui saat mengonfigurasi penskalaan otomatis berdasarkan metrik Monitoring.
ID metrik atau URL metrik: Nama metrik dalam bentuk URL bebas protokol. Anda dapat menemukan URL untuk URL metrik bawaan dari daftar metrik.
Misalnya, URL metrik Pub/Sub yang memberikan jumlah pesan yang tidak terkonfirmasi adalah
pubsub.googleapis.com/subscription/num_undelivered_messages
.Jenis resource yang dimonitor: Sumber nilai metrik. Anda dapat menemukan jenis resource yang dimonitor dari daftar metrik.
Misalnya, jenis resource yang dimonitor metrik
pubsub.googleapis.com/subscription/num_undelivered_messages
adalahpubsub_subscription
. Untuk detail selengkapnya tentang setiap jenis resource yang dimonitor, lihat Jenis resource yang dimonitor.Filter metrik: Jika metrik Anda memiliki beberapa nilai, filter akan memungkinkan autoscaler mengidentifikasi nilai metrik tertentu dari kumpulan kemungkinan nilai metrik. Gunakan label yang ditentukan pada metrik dan jenis resource yang dimonitor untuk memfilter nilainya. Jika ingin mempelajari nilai metrik dengan filter yang berbeda, Anda dapat mencobanya di metrics explorer.
Misalnya, screenshot berikut menunjukkan metrik
pubsub.googleapis.com/subscription/num_undelivered_messages
yang memberikan jumlah pesan yang tidak terkonfirmasi di semua langganan yang tersedia. Setiap baris pada diagram menunjukkan langganan.Tanpa filter, autoscaler akan mengambil jumlah nilai metrik dari semua langganan. Untuk menskalakan otomatis berdasarkan satu langganan, terapkan filter pada label
subscription_id
yang ditentukan untukpubsub_subscription
. Screenshot berikut menampilkan satu langganan setelah menerapkan filter.
Persyaratan pemfilteran metrik
Jika Anda menggunakan metrik yang memiliki beberapa nilai (dikategorikan menggunakan label), Anda dapat menerapkan filter untuk menskalakan otomatis berdasarkan nilai tertentu dari metrik. Jika filter menampilkan beberapa nilai, nilai tersebut akan dijumlahkan. Untuk hasil terbaik, buat filter yang cukup spesifik untuk menampilkan satu nilai.
Pemfilteran autoscaler untuk metrik kompatibel dengan sintaksis filter Monitoring. Filter harus memenuhi persyaratan berikut:
- Anda harus menggabungkan nilai filter dalam tanda kutip ganda.
- Anda harus menggunakan operator perbandingan kesetaraan langsung (
=
). Anda harus menggunakan operator
AND
untuk menggabungkan kriteria filter yang berbeda.Contoh:
--stackdriver-metric-filter="resource.type=\"pubsub_subscription\" AND resource.labels.subscription_id=\"our-subscription\""
Anda harus menggunakan nilai langsung. Anda tidak dapat menggunakan karakter pengganti atau fungsi di filter.
Misalnya, Anda tidak dapat menggunakan
resource.labels.zone = starts_with("us-")
.Anda tidak dapat menggunakan label metadata resource yang menyimpan metadata tentang resource yang dipantau.
Untuk referensi lengkap label metrik dan label resource yang dimonitor yang dapat Anda filter, lihat daftar metrik dan daftar resource yang dimonitor.
Persyaratan metrik kustom
Untuk menggunakan metrik kustom, Anda harus membuat metrik kustom terlebih dahulu yang terkait dengan salah satu jenis resource yang dimonitor.
Metrik kustom yang digunakan untuk penskalaan otomatis harus memiliki properti berikut:
- Jika konfigurasi penskalaan otomatis menggunakan data dari setiap VM dalam grup, siapkan instance di MIG Anda agar setiap VM mengekspor metrik kustom. Nilai
yang diekspor dari setiap VM harus dikaitkan dengan
resource yang dimonitor
gce_instance
yang berisi label berikut:zone
dengan nama zona tempat instance berada.instance_id
dengan nilai ID numerik unik yang ditetapkan ke VM.
- Metrik harus mengekspor data setidaknya setiap 60 detik. Jika Anda mengekspor data lebih sering dari setiap 60 detik, autoscaler dapat merespons perubahan pemuatan dengan lebih cepat. Jika Anda mengekspor data lebih jarang dari setiap 60 detik, autoscaler mungkin tidak akan merespons perubahan pemuatan dengan cukup cepat.
- Metrik harus mengekspor data yang memiliki jenis nilai
INT64
atauDOUBLE
.
Untuk informasi tentang membuat metrik kustom, lihat Menggunakan metrik kustom.
Langkah selanjutnya
- Pelajari cara mengelola autoscaler.
- Pelajari cara autoscaler membuat keputusan.
- Pelajari cara menggunakan beberapa sinyal penskalaan otomatis untuk menskalakan grup Anda.