1. Pengantar
Tutorial ini akan menunjukkan cara membuat dan menilai metrik Prediksi Online Cloud Monitoring saat melakukan pengujian dasar di us-central1 dan us-west1 ke endpoint Prediksi yang di-deploy di us-central1 menggunakan alat performa web HEY.
Yang akan Anda build
Anda akan menyiapkan jaringan VPC bernama aiml-vpc yang terdiri dari subnet dan instance di us-west1 dan us-central1 yang akan digunakan untuk menghasilkan traffic menggunakan HEY yang menargetkan Prediksi Online dan model yang di-deploy di us-central1.
Private Service Connect dan Private DNS juga disertakan dalam tutorial untuk menunjukkan cara lingkungan lokal dan multi-cloud dapat memanfaatkan PSC untuk mengakses googleapis.
Cloud Monitoring dan Network Intelligence akan digunakan dalam tutorial untuk memvalidasi traffic yang dihasilkan dari HEY ke Prediksi Online. Meskipun langkah-langkah yang diuraikan dalam tutorial ini di-deploy di VPC, Anda dapat memanfaatkan langkah-langkah tersebut untuk men-deploy dan mendapatkan dasar-dasar Vertex API dari lingkungan lokal atau multicloud. Arsitektur jaringan terdiri dari komponen di bawah ini:

Berikut adalah detail kasus penggunaan:
- Mengakses Prediksi Online di us-central1 dari instance GCE di us-west1 menggunakan HEY
- Memastikan bahwa PSC digunakan untuk mengakses Vertex API
- Lakukan curl menggunakan HEY selama 5 menit
- Memvalidasi latensi menggunakan Cloud Monitoring
- Memvalidasi latensi antar-region menggunakan Network Intelligence
- Mengakses Prediksi Online di us-central1 dari instance GCE di us-central1 menggunakan HEY
- Memastikan bahwa PSC digunakan untuk mengakses Vertex API
- Lakukan curl menggunakan HEY selama 5 menit
- Memvalidasi latensi menggunakan Cloud Monitoring
- Memvalidasi latensi dalam region menggunakan Network Intelligence
Yang akan Anda pelajari
- Cara membuat Endpoint Private Service Connect
- Cara membuat beban ke Prediksi Online menggunakan HEY
- Cara membuat metrik Vertex AI menggunakan Cloud Monitoring
- Cara menggunakan Network Intelligence untuk memvalidasi latensi intra & antar-regional
Yang Anda butuhkan
- Project Google Cloud
Izin IAM
2. Sebelum memulai
Mengupdate project untuk mendukung tutorial
Tutorial ini menggunakan $variables untuk membantu penerapan konfigurasi gcloud di Cloud Shell.
Di dalam Cloud Shell, lakukan hal berikut:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. Penyiapan aiml-vpc
Buat aiml-vpc
gcloud services enable networkmanagement.googleapis.com
Di dalam Cloud Shell, lakukan hal berikut:
gcloud compute networks create aiml-vpc --project=$projectid --subnet-mode=custom
Di dalam Cloud Shell, aktifkan Network Management API untuk Network Intelligence
gcloud services enable networkmanagement.googleapis.com
Buat subnet notebook yang dikelola pengguna
Di dalam Cloud Shell, buat workbench-subnet.
gcloud compute networks subnets create workbench-subnet --project=$projectid --range=172.16.10.0/28 --network=aiml-vpc --region=us-central1 --enable-private-ip-google-access
Di dalam Cloud Shell, buat us-west1-subnet.
gcloud compute networks subnets create us-west1-subnet --project=$projectid --range=192.168.10.0/28 --network=aiml-vpc --region=us-west1
Di dalam Cloud Shell, buat us-central1-subnet.
gcloud compute networks subnets create us-central1-subnet --project=$projectid --range=192.168.20.0/28 --network=aiml-vpc --region=us-central1
Konfigurasi Cloud Router dan NAT
Cloud NAT digunakan dalam tutorial untuk mendownload paket software karena instance GCE tidak memiliki alamat IP eksternal. Cloud NAT menyediakan kemampuan NAT keluar, yang berarti host internet tidak diizinkan untuk memulai komunikasi dengan notebook yang dikelola pengguna, sehingga lebih aman.
Di dalam Cloud Shell, buat Cloud Router regional, us-west1.
gcloud compute routers create cloud-router-us-west1-aiml-nat --network aiml-vpc --region us-west1
Di dalam Cloud Shell, buat gateway cloud nat regional, us-west1.
gcloud compute routers nats create cloud-nat-us-west1 --router=cloud-router-us-west1-aiml-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-west1
Di dalam Cloud Shell, buat Cloud Router regional, us-central1.
gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1
Di dalam Cloud Shell, buat gateway cloud nat regional, us-central1.
gcloud compute routers nats create cloud-nat-us-central1 --router=cloud-router-us-central1-aiml-nat --auto-allocate-nat-external-ips --nat-all-subnet-ip-ranges --region us-central1
4. Buat endpoint Private Service Connect
Di bagian berikut, Anda akan membuat endpoint Private Service Connect (PSC) yang akan digunakan untuk mengakses Vertex API dari aiml-vpc.
Dari Cloud Shell
gcloud compute addresses create psc-ip \
--global \
--purpose=PRIVATE_SERVICE_CONNECT \
--addresses=100.100.10.10 \
--network=aiml-vpc
Simpan ‘pscendpointip' selama durasi lab
pscendpointip=$(gcloud compute addresses list --filter=name:psc-ip --format="value(address)")
echo $pscendpointip
Buat Endpoint PSC
Dari Cloud Shell
gcloud compute forwarding-rules create pscvertex \
--global \
--network=aiml-vpc \
--address=psc-ip \
--target-google-apis-bundle=all-apis
Mencantumkan endpoint Private Service Connect yang dikonfigurasi
Dari Cloud Shell
gcloud compute forwarding-rules list \
--filter target="(all-apis OR vpc-sc)" --global
Menjelaskan endpoint Private Service Connect yang dikonfigurasi
Dari Cloud Shell
gcloud compute forwarding-rules describe \
pscvertex --global
5. Buat akun layanan untuk Instance GCE
Untuk memberikan tingkat kontrol yang baik ke Vertex API, diperlukan akun layanan yang dikelola pengguna yang akan diterapkan ke instance barat dan tengah. Setelah dibuat, izin akun layanan dapat diubah berdasarkan persyaratan bisnis. Dalam tutorial, akun layanan yang dikelola pengguna, vertex-sa, akan memiliki peran berikut yang diterapkan:
Anda harus Service Account API sebelum melanjutkan.
Di dalam Cloud Shell, buat akun layanan.
gcloud iam service-accounts create vertex-gce-sa \
--description="service account for vertex" \
--display-name="vertex-sa"
Di dalam Cloud Shell, perbarui akun layanan dengan peran admin instance Compute
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:vertex-gce-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"
Di dalam Cloud Shell, perbarui akun layanan dengan peran Vertex AI User
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:vertex-gce-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
6. Membuat akun layanan yang dikelola pengguna (Notebook)
Di bagian berikut, Anda akan membuat akun layanan yang dikelola pengguna yang akan dikaitkan dengan Vertex Workbench (Notebook) yang digunakan dalam tutorial.
Dalam tutorial ini, akun layanan akan menerapkan aturan berikut:
Di dalam Cloud Shell, buat akun layanan.
gcloud iam service-accounts create user-managed-notebook-sa \
--display-name="user-managed-notebook-sa"
Di dalam Cloud Shell, perbarui akun layanan dengan peran Storage Admin.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"
Di dalam Cloud Shell, perbarui akun layanan dengan peran Vertex AI User.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
Di dalam Cloud Shell, perbarui akun layanan dengan peran Artifact Registry Admin.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"
Di dalam Cloud Shell, buat daftar akun layanan dan catat alamat email yang akan digunakan saat membuat notebook yang dikelola pengguna.
gcloud iam service-accounts list
7. Membuat instance pengujian
Di bagian berikut, Anda akan membuat instance pengujian untuk melakukan pengujian dasar dari us-west1 dan us-central1.
Di dalam Cloud Shell, buat west-client.
gcloud compute instances create west-client \
--zone=us-west1-a \
--image-family=debian-11 \
--image-project=debian-cloud \
--subnet=us-west1-subnet \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--no-address \
--shielded-secure-boot --service-account=vertex-gce-sa@$projectid.iam.gserviceaccount.com \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump dnsutils -y"
Di dalam Cloud Shell, buat central-client.
gcloud compute instances create central-client \
--zone=us-central1-a \
--image-family=debian-11 \
--image-project=debian-cloud \
--subnet=us-central1-subnet \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--no-address \
--shielded-secure-boot --service-account=vertex-gce-sa@$projectid.iam.gserviceaccount.com \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install tcpdump dnsutils -y"
Untuk mengizinkan IAP terhubung ke instance VM Anda, buat aturan firewall yang:
- Berlaku untuk semua instance VM yang ingin Anda akses menggunakan IAP.
- Mengizinkan traffic masuk dari rentang IP 35.235.240.0/20. Rentang ini berisi semua alamat IP yang digunakan IAP untuk penerusan TCP.
Di dalam Cloud Shell, buat aturan firewall IAP.
gcloud compute firewall-rules create ssh-iap-vpc \
--network aiml-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
8. Membuat notebook yang dikelola pengguna
Di bagian berikut, buat notebook yang dikelola pengguna yang menggabungkan akun layanan yang dibuat sebelumnya, user-managed-notebook-sa.
Di dalam Cloud Shell, buat instance private-client.
gcloud notebooks instances create workbench-tutorial \
--vm-image-project=deeplearning-platform-release \
--vm-image-family=common-cpu-notebooks \
--machine-type=n1-standard-4 \
--location=us-central1-a \
--subnet-region=us-central1 \
--shielded-secure-boot \
--subnet=workbench-subnet \
--no-public-ip --service-account=user-managed-notebook-sa@$projectid.iam.gserviceaccount.com
Buka Vertex AI → Workbench untuk melihat notebook yang di-deploy.

9. Men-deploy Model dan Prediksi Online
Di bagian berikut, gunakan codelab yang disediakan, Vertex AI:Menggunakan rutinitas prediksi kustom dengan Sklearn guna melakukan prapemrosesan dan pascapemrosesan data untuk prediksi, mulai dengan Bagian 7 karena Anda telah membuat notebook pada langkah sebelumnya. Setelah model di-deploy, kembali ke tutorial untuk memulai bagian berikutnya.

10. Membuat dasbor pemantauan kustom untuk Prediksi Online
Prediksi Online membuat Dasbor Pemantauan default di bagian VERTEX AI → ONLINE PREDICTION → ENDPOINT NAME (diamonds-cpr_endpoint). Namun, untuk pengujian, kita perlu menentukan waktu mulai dan berhenti, sehingga diperlukan Dasbor kustom.
Di bagian berikut, Anda akan membuat Metrik Cloud Monitoring untuk mendapatkan pengukuran latensi berdasarkan akses regional ke Endpoint Prediksi Online guna memvalidasi perbedaan latensi saat mengakses endpoint di us-central1 dari instance GCE yang di-deploy di us-west1 dan us-central.
Untuk tutorial ini, kita akan menggunakan metrik prediction_latencies. Metrik tambahan tersedia di aiplatform
Metrik | Deskripsi |
prediction/online/prediction_latencies | Latensi prediksi online model yang di-deploy. |
Membuat diagram untuk Metrik prediction_latencies
Dari Konsol Cloud, buka MONITORING → Metrics Explorer

Masukkan Metrik prediction/online/prediction_latencies dan pilih opsi berikut, lalu pilih Terapkan.

Perbarui Kelompokkan menurut berdasarkan opsi berikut, lalu pilih Simpan Diagram.


Pilih Simpan, Anda akan diminta untuk memilih Dasbor. Pilih Dasbor Baru & berikan nama.

Dasbor Kustom Vertex
Di bagian berikut, validasi bahwa Dasbor Kustom Vertex menampilkan waktu yang benar.
Buka MONITORING → Dashboard, lalu pilih Vertex Custom Dashboard, kemudian pilih waktu. Pastikan Zona waktu Anda sudah benar.

Pastikan untuk meluaskan legenda guna mendapatkan tampilan tabel.

Contoh tampilan yang diperluas:

11. Membuat DNS Pribadi untuk Endpoint PSC
Buat Zona DNS Pribadi di aiml-vpc untuk me-resolve semua googleapis ke Alamat IP endpoint PSC 100.100.10.10.
Dari Cloud Shell, buat Zona DNS pribadi.
gcloud dns --project=$projectid managed-zones create psc-googleapis --description="Private Zone to resolve googleapis to a PSC endpoint" --dns-name="googleapis.com." --visibility="private" --networks="https://www.googleapis.com/compute/v1/projects/$projectid/global/networks/aiml-vpc"
Dari Cloud Shell, buat data A yang mengaitkan *. googleapis.com ke IP PSC.
gcloud dns --project=$projectid record-sets create *.googleapis.com. --zone="psc-googleapis" --type="A" --ttl="300" --rrdatas="100.100.10.10"
12. Hey testing variables
Hey menawarkan kemampuan kepada pengguna akhir untuk menyesuaikan pengujian berdasarkan persyaratan jaringan dan aplikasi. Untuk tujuan tutorial, kita akan menggunakan opsi yang dijelaskan di bawah dengan string eksekusi contoh:
c == 1 pekerja
z == Durasi
m == HTTP method POST
D == Isi permintaan HTTP dari file, instances.json
n == Jumlah permintaan yang akan dijalankan. Defaultnya adalah 200.
Contoh string curl dengan HEY (tidak perlu dieksekusi)
user@us-central$ ./hey_linux_amd64 -c 1 -z 1m -m POST -D instances.json -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid$}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict
13. Mendapatkan ID Prediksi
Dapatkan ID Endpoint Prediksi Online dari Konsol Cloud yang akan digunakan pada langkah-langkah berikutnya.
Buka VERTEX AI → ONLINE PREDICTION

14. Download dan jalankan HEY (us-west1)
Di bagian berikut, Anda akan login ke west-client untuk mendownload dan menjalankan HEY terhadap Prediksi Online yang berada di us-central1.
Dari Cloud Shell, login ke west-client dan download HEY
gcloud compute ssh west-client --project=$projectid --zone=us-west1-a --tunnel-through-iap
Dari OS, download HEY dan perbarui izin.
wget https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64
chmod +x hey_linux_amd64
Dari OS, buat variabel berikut:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
Contoh:
ENDPOINT_ID="2706243362607857664"
Di bagian berikut, Anda akan membuat file instances.json menggunakan editor vi atau nano dan memasukkan string data yang digunakan untuk mendapatkan prediksi dari model yang di-deploy.
Dari OS west-client, buat file instances.json dengan string data di bawah:
{"instances": [
[0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
[0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}
Contoh:
user@west-client:$ more instances.json
{"instances": [
[0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
[0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}
user@west-client:$
Pra-pengujian
Dari OS, jalankan curl untuk memvalidasi bahwa model dan endpoint prediksi berfungsi dengan berhasil. Perhatikan IP endpoint PSC dalam log verbose dan HTTP/2 200 yang menunjukkan keberhasilan.
curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
Contoh, catat alamat IP PSC yang digunakan untuk mengakses prediksi & hasil yang berhasil.
user@west-client:$ curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
Note: Unnecessary use of -X or --request, POST is already inferred.
* Trying 100.100.10.10:443...
* Connected to us-central1-aiplatform.googleapis.com (100.100.10.10) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
* subject: CN=upload.video.google.com
* start date: Jul 31 08:22:19 2023 GMT
* expire date: Oct 23 08:22:18 2023 GMT
* subjectAltName: host "us-central1-aiplatform.googleapis.com" matched cert's "*.googleapis.com"
* issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1C3
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55a9f38b42c0)
> POST /v1/projects/new-test-project-396322/locations/us-central1/endpoints/2706243362607857664:predict HTTP/2
> Host: us-central1-aiplatform.googleapis.com
> user-agent: curl/7.74.0
> accept: */*
> authorization: Bearer ya29.c.b0Aaekm1LqrcaOlWFFwuEOWX_tZVXXvJgN_K-u5_hFyEAYXAi3AnBEBwwtHS8dweW_P2QGfdyFfa31nMT_6BaKBI0mC9IsfzfIiUwXc8u2yJt01gTUSJpCmGAFKZKidRMgkPYivVYCnuymzdYbRAWacIe__StkRzI9UeQOGN3jNIeESr80AdH12goaxCFXWaNWxoYRfGVhekEgUcsKs7t1OhOM-937gy4YGkXcXa8sGuHWRqF5bnulYlTqlxqQ2aAxMTrQg2lwUWRGCmGhPrym7rXJq7oim0DkAJSbAarl1qFuz0PPfNXeHGbs13zY2r1giV7u8_w4Umj_Q5M7H9fTkq7EiqnLzqRkOHXismYL368P1jOUBYM__krFQt4M3X9RJa0g01tOw3FnOh27BmUqlFQ1J2h14JZpx215Q3xzRvgfJ5iW5YYSkv67uZRQk4V04naOUXyc0plzWuVOjj4nor3fYvkS_oW0IyxJoBjeXR16Vnvln8c04svWX9dt7eobczFvBOm9nVdh4lVp8qxbp__2WtMvc1QVg6y-2i6lRpbvmyp1oadxVRjxV1e0wiQFSe-qqsinJu3bnnaMbxdU2cu5j26o8o8Xpgo0SF1UM0b1WX84iatbWpdFSphZm1llwmRagMzcFBW0aBk-i35_bXSbzwURgMfY6Qbyb9Rv9y0F-Maf34I0WxiMldv2uc57nej7dVl9OSm_Ohnro-i9zcpq9fxo9soYVB8WjaZOUjauk4znstc2_6y4atcVVsQBkeU674biR567Ri3M74Jfv4MrrF02ObfrJRdB7UJ4MU_9kWW-kYeeJzoci15UqYV0f_yJgReBwQa66Supmebee2Sn2nku6xZkRMu5Mz55mXuva0XWrpIbor7WckSsXwUFbf7rj5ipa4mOOyf2hJe1Rq0x6yeBaariRzXrhfm5bBpFBU73-zd-IekvOji0ZJQSkk0o6gpX_794Jny7j14aQJ8VxezcFpZUztimYhMnRhlO2lqms1h0h48
> content-type: application/json
> content-length: 158
>
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
* We are completely uploaded and fine
< HTTP/2 200
< x-vertex-ai-internal-prediction-backend: harpoon
< content-type: application/json; charset=UTF-8
< date: Sun, 20 Aug 2023 03:51:54 GMT
< vary: X-Origin
< vary: Referer
< vary: Origin,Accept-Encoding
< server: scaffolding on HTTPServer2
< cache-control: private
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< accept-ranges: none
<
{
"predictions": [
"$479.0",
"$586.0"
],
"deployedModelId": "3587550310781943808",
"model": "projects/884291964428/locations/us-central1/models/6829574694488768512",
"modelDisplayName": "diamonds-cpr",
"modelVersionId": "1"
}
* Connection #0 to host us-central1-aiplatform.googleapis.com left intact
Jalankan HEY
Dari OS, jalankan HEY yang memungkinkan pengujian dasar 10 menit.
./hey_linux_amd64 -c 1 -z 10m -m POST -D instances.json -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/$projectid/locations/us-central1/endpoints/${ENDPOINT_ID}:predict
15. Hey Validation (us-west1)
Setelah Anda menjalankan Hey dari instance komputasi di us-west1, evaluasi hasilnya dari berikut ini:
- Hasil HEY
- Dasbor Kustom Vertex
- Kecerdasan Jaringan
Hasil HEY
Dari OS, mari kita validasi hasil HEY berdasarkan eksekusi 10 menit,
17,5826 Permintaan per detik
99% dalam 0,0686 dtk | 68 md
10.550 respons dengan kode status 200
user@west-client:$ ./hey_linux_amd64 -c 1 -z 10m -m POST -D instances.json -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/$projectid/locations/us-central1/endpoints/${ENDPOINT_ID}:predict
Summary:
Total: 600.0243 secs
Slowest: 0.3039 secs
Fastest: 0.0527 secs
Average: 0.0569 secs
Requests/sec: 17.5826
Response time histogram:
0.053 [1] |
0.078 [10514] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.103 [16] |
0.128 [4] |
0.153 [3] |
0.178 [1] |
0.203 [0] |
0.229 [2] |
0.254 [1] |
0.279 [5] |
0.304 [3] |
Latency distribution:
10% in 0.0546 secs
25% in 0.0551 secs
50% in 0.0559 secs
75% in 0.0571 secs
90% in 0.0596 secs
95% in 0.0613 secs
99% in 0.0686 secs
Details (average, fastest, slowest):
DNS+dialup: 0.0000 secs, 0.0527 secs, 0.3039 secs
DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0116 secs
req write: 0.0000 secs, 0.0000 secs, 0.0002 secs
resp wait: 0.0567 secs, 0.0526 secs, 0.3038 secs
resp read: 0.0001 secs, 0.0001 secs, 0.0696 secs
Status code distribution:
[200] 10550 responses
Dasbor Kustom Vertex
Buka MONITORING → Dashboard, lalu pilih Vertex Custom Dashboard. Masukkan 10m atau tentukan waktu mulai dan berhenti. Pastikan Zona waktu Anda sudah benar.

Melihat definisi Latensi Prediksi menunjukkan metrik Sisi Server yang mengukur total waktu untuk merespons permintaan klien setelah mendapatkan respons dari model.
- Total durasi latensi: Total waktu yang dihabiskan oleh permintaan dalam layanan, yang merupakan latensi model ditambah latensi overhead.
Sebaliknya, HEY adalah metrik sisi klien yang mempertimbangkan parameter berikut:
Permintaan klien + Total latensi (termasuk latensi model) + Respons klien
Network Intelligence
Sekarang mari kita lihat latensi jaringan antar-region yang dilaporkan oleh Network Intelligence untuk mendapatkan gambaran tentang latensi us-west1 ke us-central1 yang dilaporkan oleh Google Cloud Platform.
Buka Network Intelligence → Performance Dashboard di Konsol Cloud, lalu pilih opsi berikut yang dijelaskan dalam screenshot di bawah yang menunjukkan latensi dari 32 - 39 md.

Ringkasan dasar pengukuran HEY us-west1
Membandingkan laporan Total latensi menurut alat pengujian akan menghasilkan latensi yang hampir sama dengan yang dilaporkan oleh HEY. Latensi antar-region berkontribusi pada sebagian besar latensi. Mari kita lihat performa klien pusat dalam serangkaian pengujian berikutnya.
Alat Latensi | Durasi |
Kecerdasan jaringan: Latensi us-west1 ke us-central1 | ~32 hingga 39 md |
Cloud Monitoring: Total latensi prediksi [persentil ke-99] | 34,58 md (99p) |
Total latensi yang dilaporkan oleh Google | ~ 66,58 hingga 73,58 md |
Distribusi latensi sisi klien HEY | 68 md (99p) |
16. Download dan jalankan HEY (us-central1)
Di bagian berikut, Anda akan login ke central-client untuk mendownload dan menjalankan HEY terhadap Prediksi Online yang berada di us-central1.
Dari Cloud Shell, login ke central-client dan download HEY
gcloud compute ssh central-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Dari OS, download HEY dan perbarui izin.
wget https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64
chmod +x hey_linux_amd64
Dari OS, buat variabel berikut:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
Contoh:
ENDPOINT_ID="2706243362607857664"
Di bagian berikut, Anda akan membuat file instances.json menggunakan editor vi atau nano dan memasukkan string data yang digunakan untuk mendapatkan prediksi dari model yang di-deploy.
Dari OS west-client, buat file instances.json dengan string data di bawah:
{"instances": [
[0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
[0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}
Contoh:
user@west-client:$ more instances.json
{"instances": [
[0.23, 'Ideal', 'E', 'VS2', 61.5, 55.0, 3.95, 3.98, 2.43],
[0.29, 'Premium', 'J', 'Internally Flawless', 52.5, 49.0, 4.00, 2.13, 3.11]]}
user@west-client:$
Pra-pengujian
Dari OS, jalankan curl untuk memvalidasi bahwa model dan endpoint prediksi berfungsi dengan berhasil. Perhatikan IP endpoint PSC dalam log verbose dan HTTP/2 200 yang menunjukkan keberhasilan.
curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
Contoh, catat alamat IP PSC yang digunakan untuk mengakses prediksi & hasil yang berhasil.
user@central-client:~$ curl -v -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${projectid}/locations/us-central1/endpoints/${ENDPOINT_ID}:predict -d @instances.json
Note: Unnecessary use of -X or --request, POST is already inferred.
* Trying 100.100.10.10:443...
* Connected to us-central1-aiplatform.googleapis.com (100.100.10.10) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
* subject: CN=upload.video.google.com
* start date: Jul 31 08:22:19 2023 GMT
* expire date: Oct 23 08:22:18 2023 GMT
* subjectAltName: host "us-central1-aiplatform.googleapis.com" matched cert's "*.googleapis.com"
* issuer: C=US; O=Google Trust Services LLC; CN=GTS CA 1C3
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x559b57adc2c0)
> POST /v1/projects/new-test-project-396322/locations/us-central1/endpoints/2706243362607857664:predict HTTP/2
> Host: us-central1-aiplatform.googleapis.com
> user-agent: curl/7.74.0
> accept: */*
> authorization: Bearer ya29.c.b0Aaekm1KWqq-CIXuL6f1cx9d9jHHquQq9tlSV1oVZ1y3TACi82JFFZRwsagVY7MMovycsU4PLkt9MDMkNngxZE5RzXcS-AoaUaQf1tPT9-_JMTlFI6wCcR7Yr9MeRF5AZblr_k52ZZgEZKeYGcrXoGiqGQcAAwFtHiEVAkUhLuyukteXbMoep1JM9E0zFblJj7Z0yOCMJYBH-6XHcIDYnOKpStMVBR2wcTDbnFrCE08HXbvRnQVcENatTBoI9FzSVL1ORwqUiCcdfnTSjpIXcyD-W82d6ZHjGX_RUhfnH7RPfOJqkuU8pOovwoCjq_jvM_wJUfPuQnBKHp5rxbYxPE349DMBql62po2SWFguuFo-a2eoUnb8-FQeBZqan65zgV0lexR73gZlm071y9grlXv3fmJUo7vlj5W-7_-FJXaWWg8iWc6rmjYeO1Wz2h_8qnmojkX9xSUciI6JfmwdgMWwtvwJb63ppSmdwf8oagrYiQlpMzgRI6rekbRzg-1WOBeOf5nRg5vtxUMSc9iRaoarO5XwFX8vt7rxOUBvbXYVWmo3bsdhzsS9VopMwgMlxgcIJg7bq7_F3iapB-nRjfjfhZWpR83cWIkI2Wb9f89inpsxtYjZbbzdWkZvRB8FYSsY8F8tcpiVoWWyQWZiph9z7O59fF9irWY2gtUnbFcJJ_ZcYztjlMQaR45y42ZflkM3Qn668bzge3Y3hmVI1s6ZSmxxq6m27hoMwVn21R07Y613jwljmaFJ5V8MwkR6yvFhYngrh_JrhRUQtSSMh02Rz25wMfv7g8Fiqymr-12viM4btIFjXZBM3XFqzvso_rw1omI1yYWofmbaBYggpegpJBzSeqVUZe791agjVtiMUkyjXFy__9gI0Qk9ZUarI4p25SvS4I1hX4YyBk6ol32Z5zIsVr1Seff__aklm6M2Mlkumd7nurm46hjOIoOhFpfFxrQ6yivnhYapBOJMYirgbZvigvI3dom1fnmt0-ktmRxp69w7Uzzy
> content-type: application/json
> content-length: 158
>
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
* We are completely uploaded and fine
< HTTP/2 200
< x-vertex-ai-internal-prediction-backend: harpoon
< date: Sun, 20 Aug 2023 22:25:31 GMT
< content-type: application/json; charset=UTF-8
< vary: X-Origin
< vary: Referer
< vary: Origin,Accept-Encoding
< server: scaffolding on HTTPServer2
< cache-control: private
< x-xss-protection: 0
< x-frame-options: SAMEORIGIN
< x-content-type-options: nosniff
< accept-ranges: none
<
{
"predictions": [
"$479.0",
"$586.0"
],
"deployedModelId": "3587550310781943808",
"model": "projects/884291964428/locations/us-central1/models/6829574694488768512",
"modelDisplayName": "diamonds-cpr",
"modelVersionId": "1"
}
* Connection #0 to host us-central1-aiplatform.googleapis.com left intact
Jalankan HEY
Dari OS, jalankan HEY yang memungkinkan pengujian dasar 10 menit.
./hey_linux_amd64 -c 1 -z 10m -m POST -D instances.json -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/$projectid/locations/us-central1/endpoints/${ENDPOINT_ID}:predict
17. Hey Validation (us-central1)
Setelah Anda menjalankan Hey dari instance komputasi di us-central1, evaluasi hasilnya dari berikut ini:
- Hasil HEY
- Dasbor Kustom Vertex
- Kecerdasan Jaringan
Hasil HEY
Dari OS, mari kita validasi hasil HEY berdasarkan eksekusi 10 menit,
44,9408 Permintaan per detik
99% dalam 0,0353 detik | 35 md
26965 respons dengan kode status 200
devops_user_1_deepakmichael_alto@central-client:~$ ./hey_linux_amd64 -c 1 -z 10m -m POST -D instances.json -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/$projectid/locations/us-central1/endpoints/${ENDPOINT_ID}:predict
Summary:
Total: 600.0113 secs
Slowest: 0.3673 secs
Fastest: 0.0184 secs
Average: 0.0222 secs
Requests/sec: 44.9408
Response time histogram:
0.018 [1] |
0.053 [26923] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.088 [25] |
0.123 [4] |
0.158 [0] |
0.193 [1] |
0.228 [9] |
0.263 [1] |
0.298 [0] |
0.332 [0] |
0.367 [1] |
Latency distribution:
10% in 0.0199 secs
25% in 0.0205 secs
50% in 0.0213 secs
75% in 0.0226 secs
90% in 0.0253 secs
95% in 0.0273 secs
99% in 0.0353 secs
Details (average, fastest, slowest):
DNS+dialup: 0.0000 secs, 0.0184 secs, 0.3673 secs
DNS-lookup: 0.0000 secs, 0.0000 secs, 0.0079 secs
req write: 0.0000 secs, 0.0000 secs, 0.0007 secs
resp wait: 0.0220 secs, 0.0182 secs, 0.3672 secs
resp read: 0.0002 secs, 0.0001 secs, 0.0046 secs
Status code distribution:
[200] 26965 responses
Dasbor Kustom Vertex
Buka MONITORING → Dashboard, pilih Vertex Custom Dashboard, lalu masukkan 10m. Atau waktu mulai dan berhenti Anda. Pastikan Zona waktu Anda sudah benar.
Latensi Prediksi selama 10 menit terakhir menghasilkan 30.533 md.
Melihat definisi Latensi Prediksi menunjukkan metrik Sisi Server yang mengukur total waktu untuk merespons permintaan klien setelah mendapatkan respons dari model.
- Total durasi latensi: Total waktu yang dihabiskan oleh permintaan dalam layanan, yang merupakan latensi model ditambah latensi overhead.
Sebaliknya, HEY adalah metrik sisi klien yang mempertimbangkan parameter berikut:
Permintaan klien + Total latensi (termasuk latensi model) + Respons klien
Network Intelligence
Sekarang, mari kita lihat latensi jaringan intra-region yang dilaporkan oleh Network Intelligence untuk mendapatkan gambaran tentang latensi us-central1 yang dilaporkan oleh Google Cloud Platform.
Buka Network Intelligence → Performance Dashboard di Konsol Cloud, lalu pilih opsi berikut yang dijelaskan dalam screenshot di bawah yang menunjukkan latensi dari 0,2 hingga 0,8 md.

Ringkasan dasar HEY us-central1
Membandingkan total latensi yang dilaporkan oleh alat pengujian menghasilkan latensi yang lebih rendah daripada west-client karena endpoint komputasi (central-client) dan Vertex (model dan prediksi online) berada di region yang sama.
Alat Latensi | Durasi |
Network intelligence: Latensi intra-region us-central1 | ~0,2 hingga 0,8 md |
Cloud Monitoring: Total latensi prediksi [persentil ke-99] | 30.533 md (99p) |
Total latensi yang dilaporkan oleh Google | ~30.733 hingga 31.333 md |
Latensi sisi klien HEY | 35 md (99p) |
18. Selamat
Selamat, Anda telah berhasil men-deploy dan memvalidasi HEY untuk mendapatkan latensi dasar pengukuran Prediksi sisi klien menggunakan kombinasi Cloud Monitoring dan Network Intelligence. Berdasarkan pengujian, Anda mengidentifikasi bahwa endpoint prediksi di us-central dapat ditayangkan antar-region, tetapi latensi diamati.
Cosmopup menganggap tutorial itu luar biasa!!

19. Pembersihan
Dari Cloud Shell, hapus komponen tutorial.
gcloud compute instances delete central-client --zone=us-central1-a -q
gcloud compute instances delete west-client --zone=us-west1-a -q
gcloud compute instances delete workbench-tutorial --zone=us-central1-a -q
gcloud compute forwarding-rules delete pscvertex --global --quiet
gcloud compute addresses delete psc-ip --global --quiet
gcloud compute networks subnets delete workbench-subnet --region=us-central1 --quiet
gcloud compute networks subnets delete us-west1-subnet --region=us-west1 --quiet
gcloud compute networks subnets delete us-central1-subnet --region=us-central1 --quiet
gcloud compute routers delete cloud-router-us-west1-aiml-nat --region=us-west1 --quiet
gcloud compute routers delete cloud-router-us-central1-aiml-nat --region=us-central1 --quiet
gcloud compute firewall-rules delete ssh-iap-vpc --quiet
gcloud dns record-sets delete *.googleapis.com. --zone=psc-googleapis --type=A --quiet
gcloud dns managed-zones delete psc-googleapis --quiet
gcloud compute networks delete aiml-vpc --quiet
gcloud storage rm -r gs://$projectid-cpr-bucket
Dari Konsol Cloud, hapus berikut ini:
Folder Artifact Registry

Dari Vertex AI Model Registry, batalkan deployment model:

Dari Vertex AI Online Prediction, hapus endpoint

Apa selanjutnya?
Lihat beberapa tutorial ini...
Bacaan lebih lanjut & Video
- Ringkasan Private Service Connect
- Apa itu Private Service Connect?
- Cara mendapatkan prediksi dari model ML
- Apa itu Vertex AI?