1. Pengantar
Tutorial ini akan menunjukkan cara membuat dan menilai metrik Prediksi Online Cloud Monitoring saat melakukan pengujian dasar pengukuran di us-central1 dan us-west1 ke endpoint Prediction yang di-deploy di us-central1 menggunakan alat performa web HEY.
Yang akan Anda build
Anda akan menyiapkan jaringan VPC bernama bertujuanl-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 bagaimana 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 di-deploy di VPC, Anda dapat memanfaatkan langkah-langkah tersebut untuk men-deploy dan mendapatkan dasar pengukuran Vertex APIS dari lingkungan lokal atau multi-cloud. Arsitektur jaringan terdiri dari komponen di bawah ini:
Di bawah ini adalah detail kasus penggunaannya:
- 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 intra-region menggunakan Network Intelligence
Yang akan Anda pelajari
- Cara membuat Endpoint Private Service Connect
- Cara menghasilkan beban ke Prediksi Online menggunakan HEY
- Cara membuat metrik Vertex AI menggunakan Cloud Monitoring
- Cara menggunakan Network Intelligence untuk memvalidasi latensi antar-regional
Yang Anda butuhkan
- Project Google Cloud
Izin IAM
2. Sebelum memulai
Mengupdate project untuk mendukung tutorial
Tutorial ini menggunakan $variables untuk membantu implementasi 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 destinationl-vpc
Membuat destinationl-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 API pengelolaan jaringan untuk Network Intelligence
gcloud services enable networkmanagement.googleapis.com
Membuat 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 memberikan kemampuan NAT keluar, yang berarti host internet tidak diizinkan untuk memulai komunikasi dengan notebook yang dikelola pengguna, sehingga menjadikannya lebih aman.
Di dalam Cloud Shell, buat router cloud 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 router cloud 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. Membuat endpoint Private Service Connect
Di bagian berikut, Anda akan membuat endpoint Private Service Connect (PSC) yang akan digunakan untuk mengakses Vertex API dari destinationl-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
Membuat 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 sentral. Setelah dibuat, izin akun layanan dapat diubah berdasarkan persyaratan bisnis. Dalam tutorial, akun layanan yang dikelola pengguna, verteks-sa, akan menerapkan peran berikut:
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 terkelola pengguna (Notebook)
Di bagian berikut, Anda akan membuat akun layanan terkelola pengguna yang akan dikaitkan dengan Vertex Workbench (Notebook) yang digunakan dalam tutorial.
Dalam tutorial, 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, cantumkan 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 klien pusat.
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"
Agar IAP dapat terhubung ke instance VM Anda, buat aturan firewall yang:
- Berlaku untuk semua instance VM yang Anda inginkan agar dapat diakses dengan 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 dengan 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 Anda yang telah di-deploy.
9. Men-deploy Model dan Prediksi Online
Di bagian berikut, gunakan codelab,Vertex AI:Gunakan rutinitas prediksi kustom dengan Sklearn untuk melakukan prapemrosesan dan memposting data proses untuk prediksi yang akan dimulai dari Bagian 7 karena Anda telah membuat notebook di 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 → PREDICTION ONLINE → NAMA ENDPOINT (diamonds-cpr_endpoint). Namun, untuk pengujian, kita perlu menentukan waktu mulai dan berhenti sehingga diperlukan Dasbor khusus.
Di bagian berikut, Anda akan membuat Metrik Cloud Monitoring untuk mendapatkan pengukuran latensi berdasarkan akses regional ke Endpoint Prediksi Online untuk memvalidasi berbagai latensi saat mengakses endpoint di us-central1 dari instance GCE yang di-deploy di us-west1 dan us-central.
Untuk tutorial, kita akan menggunakan metrik Predictions_latencies, metrik tambahan tersedia di aiplatform
Metrik | Deskripsi |
prediction/online/prediction_latencies | Latensi prediksi online dari model yang di-deploy. |
Buat diagram untuk Metrik prediksi_latensi
Dari Konsol Cloud, buka MONITORING → Metrics Explorer
Masukkan prediction/online/prediction_latencies Metrik lalu pilih opsi berikut, pilih Terapkan.
Perbarui Grup berdasarkan berdasarkan opsi berikut, pilih Simpan Diagram.
Pilih Simpan, Anda akan diminta untuk memilih Dasbor. Pilih Dasbor Baru & beri nama.
Dasbor Kustom Vertex
Di bagian berikut, validasi Vertex Custom Dashboard menampilkan waktu yang benar.
Buka MONITORING → Dasbor dan pilih Vertex Custom Dashboard diikuti dengan memilih waktu. Pastikan Zona waktu Anda sudah benar.
Pastikan untuk meluaskan legenda untuk mendapatkan tampilan tabel.
Contoh tampilan yang diperluas:
11. Membuat DNS Pribadi untuk Endpoint PSC
Buat Zona DNS Pribadi di destinationl-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 kumpulan 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. Hei pengujian variabel
Fitur ini menawarkan kemampuan kepada pengguna akhir untuk menyesuaikan pengujian berdasarkan persyaratan jaringan dan aplikasi. Untuk tujuan tutorial, kami akan menggunakan opsi yang dijelaskan di bawah dengan contoh string eksekusi:
c == 1 pekerja
z == Durasi
m == Metode HTTP POST
D == Isi permintaan HTTP dari file, instances.json
n == Jumlah permintaan yang akan dijalankan. Defaultnya adalah 200.
Contoh string curl dengan HEY (eksekusi tidak diperlukan)
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 berikutnya.
Buka VERTEX AI → PREDICTION ONLINE
14. Mendownload dan menjalankan HEY (us-west1)
Di bagian berikut, Anda akan login ke west-client untuk mendownload dan mengeksekusi HEY terhadap Prediksi Online yang terletak 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 menyisipkan string data yang digunakan untuk mendapatkan prediksi dari model yang di-deploy.
Dari west-client OS, buat instances.json file dengan string data di bawah ini:
{"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 model dan endpoint prediksi berfungsi dengan sukses. Catat IP endpoint PSC di 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 sukses.
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 mengaktifkan uji 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. Validasi yang terhormat (us-west1)
Setelah Anda menjalankan Hey dari instance komputasi di us-west1, evaluasi hasil 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 dtk
99% dalam 0.0686 dtk | 68 md
10.550 respons dengan 200 kode status
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 → Dasbor dan pilih Vertex Custom Dashboard. Masukkan 10 m atau tentukan waktu mulai dan berhenti. Pastikan Zona waktu Anda sudah benar.
Dengan 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 permintaan dalam layanan, yang merupakan latensi model ditambah latensi overhead.
Sebaliknya, HEY adalah metrik sisi klien yang memperhitungkan parameter berikut:
Permintaan klien + Latensi total (termasuk latensi model) + Respons klien
Kecerdasan Jaringan
Sekarang mari kita lihat latensi jaringan antar-region yang dilaporkan oleh Network Intelligence untuk mendapatkan gambaran tentang latensi us-west1 hingga us-central1 yang dilaporkan oleh Google Cloud Platform.
Buka Network Intelligence Cloud Console → Performance Dashboard, lalu pilih opsi berikut yang dijelaskan dalam screenshot di bawah yang menunjukkan latensi dari 32-39 milidetik.
Ringkasan dasar pengukuran us-west1 HEY
Membandingkan laporan latensi Total oleh alat pengujian menghasilkan latensi yang kira-kira sama seperti yang dilaporkan oleh HEY. Latensi antar-region berkontribusi pada sebagian besar latensi. Mari kita lihat bagaimana kinerja 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 [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. Mendownload dan menjalankan HEY (us-central1)
Di bagian berikut, Anda akan login ke klien pusat untuk mendownload dan mengeksekusi HEY terhadap Prediksi Online yang terletak 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 menyisipkan string data yang digunakan untuk mendapatkan prediksi dari model yang di-deploy.
Dari west-client OS, buat instances.json file dengan string data di bawah ini:
{"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 model dan endpoint prediksi berfungsi dengan sukses. Catat IP endpoint PSC di 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 sukses.
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 mengaktifkan uji 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. Validasi Halo (us-central1)
Setelah Anda menjalankan Hey dari instance komputasi di us-central1, evaluasi hasil dari hal berikut:
- Hasil HEY
- Dasbor Kustom Vertex
- Kecerdasan Jaringan
Hasil HEY
Dari OS, mari kita validasi hasil HEY berdasarkan eksekusi 10 menit,
44,9408 Permintaan per dtk
99% dalam 0.0353 dtk | 35 md
Respons 26965 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 lalu pilih Vertex Custom Dashboard, masukkan 10m. Atau waktu mulai dan berhenti. Pastikan Zona waktu Anda sudah benar.
Latensi Prediksi selama 10m terakhir menghasilkan 30,533 ms.
Dengan 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 permintaan dalam layanan, yang merupakan latensi model ditambah latensi overhead.
Sebaliknya, HEY adalah metrik sisi klien yang memperhitungkan parameter berikut:
Permintaan klien + Latensi total (termasuk latensi model) + Respons klien
Kecerdasan Jaringan
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 Cloud Console → Performance Dashboard, lalu pilih opsi berikut yang dijelaskan dalam screenshot di bawah yang menunjukkan latensi dari 0,2 hingga 0,8 md.
Ringkasan dasar pengukuran us-central1 HEY
Membandingkan total latensi yang dilaporkan oleh alat pengujian menghasilkan latensi yang lebih rendah daripada west-client karena endpoint komputasi (klien terpusat) dan Vertex (prediksi model dan online) di region yang sama.
Alat Latensi | Durasi |
Kecerdasan jaringan: latensi intra region us-central1 | ~0,2 hingga 0,8 md |
Cloud Monitoring: Total latensi prediksi [99%] | 30,533 md (99p) |
Total latensi yang dilaporkan oleh Google | ~30,733 hingga 31,333 md |
HEY latensi sisi klien | 35 md (99p) |
18. Selamat
Selamat, Anda telah berhasil men-deploy dan memvalidasi HEY untuk mendapatkan latensi dasar Prediksi sisi klien menggunakan kombinasi Cloud Monitoring dan Network Intelligence. Berdasarkan pengujian, Anda mengidentifikasi endpoint prediksi di us-central dapat disalurkan antar-region, tetapi latensinya terdeteksi.
Cosmopup menganggap tutorialnya 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
Berikut ini beberapa hal yang dihapus dari Konsol Cloud:
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?