1. Wprowadzenie
Z tego samouczka dowiesz się, jak tworzyć i oceniać wskaźniki prognozowania online Cloud Monitoring podczas przeprowadzania testów porównawczych w regionach us-central1 i us-west1 na potrzeby punktu końcowego prognozowania wdrożonego w regionie us-central1 za pomocą narzędzia do testowania wydajności stron internetowych HEY.
Co utworzysz
Skonfigurujesz sieć VPC o nazwie aiml-vpc, która będzie się składać z podsieci i instancji w regionach us-west1 i us-central1. Będzie ona używana do generowania ruchu za pomocą HEY kierowanego na prognozowanie online i model wdrożony w regionie us-central1.
W samouczku omówiono też Private Service Connect i prywatny DNS, aby pokazać, jak środowiska lokalne i wielochmurowe mogą korzystać z PSC w celu uzyskiwania dostępu do googleapis.
W samouczku do weryfikacji ruchu generowanego z HEY do prognozowania online użyjemy Cloud Monitoring i Network Intelligence. Chociaż kroki opisane w samouczku są wdrażane w sieci VPC, możesz ich użyć do wdrożenia i uzyskania podstawowych informacji o interfejsach Vertex API ze środowisk lokalnych lub wielochmurowych. Architektura sieci składa się z tych komponentów:

Poniżej znajdziesz szczegóły przypadku użycia:
- Dostęp do prognozowania online w regionie us-central1 z instancji GCE w regionie us-west1 za pomocą HEY
- Sprawdź, czy do uzyskiwania dostępu do interfejsu Vertex API używasz PSC
- Wykonaj ćwiczenie z użyciem HEY przez 5 minut
- Sprawdzanie czasu oczekiwania za pomocą Cloud Monitoring
- Weryfikowanie czasu oczekiwania między regionami za pomocą Network Intelligence
- Dostęp do prognozowania online w regionie us-central1 z instancji GCE w regionie us-central1 za pomocą HEY
- Sprawdź, czy do uzyskiwania dostępu do interfejsu Vertex API używasz PSC
- Wykonaj ćwiczenie z użyciem HEY przez 5 minut
- Sprawdzanie czasu oczekiwania za pomocą Cloud Monitoring
- Weryfikowanie czasu oczekiwania w regionie za pomocą Network Intelligence
Czego się nauczysz
- Konfigurowanie punktu końcowego Private Service Connect
- Jak generować obciążenie prognozowania online za pomocą HEY
- Jak tworzyć wskaźniki Vertex AI za pomocą Cloud Monitoring
- Jak używać Network Intelligence do weryfikowania czasu oczekiwania w regionie i między regionami
Czego potrzebujesz
- Projekt Google Cloud
Uprawnienia
2. Zanim zaczniesz
Aktualizowanie projektu na potrzeby samouczka
W tym samouczku używamy zmiennych $variables, aby ułatwić implementację konfiguracji gcloud w Cloud Shell.
W Cloud Shell wykonaj te czynności:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. Konfiguracja aiml-vpc
Utwórz sieć aiml-vpc
gcloud services enable networkmanagement.googleapis.com
W Cloud Shell wykonaj te czynności:
gcloud compute networks create aiml-vpc --project=$projectid --subnet-mode=custom
W Cloud Shell włącz interfejs Network Management API dla Network Intelligence.
gcloud services enable networkmanagement.googleapis.com
Utwórz podsieć notatnika zarządzanego przez użytkownika
W Cloud Shell utwórz podsieć 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
W Cloud Shell utwórz podsieć 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
W Cloud Shell utwórz podsieć 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
Konfiguracja routera Cloud Router i NAT
W samouczku usługa Cloud NAT jest używana do pobierania pakietów oprogramowania, ponieważ instancja GCE nie ma zewnętrznego adresu IP. Cloud NAT zapewnia funkcje NAT ruchu wychodzącego, co oznacza, że hosty internetowe nie mogą inicjować komunikacji z notatnikiem zarządzanym przez użytkownika, co zwiększa bezpieczeństwo.
W Cloud Shell utwórz regionalny router Cloud Router us-west1.
gcloud compute routers create cloud-router-us-west1-aiml-nat --network aiml-vpc --region us-west1
W Cloud Shell utwórz regionalną bramę Cloud NAT w regionie 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
W Cloud Shell utwórz regionalny router chmurowy us-central1.
gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1
W Cloud Shell utwórz regionalną bramę Cloud NAT w regionie 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. Utwórz punkt końcowy Private Service Connect.
W następnej sekcji utworzysz punkt końcowy Private Service Connect (PSC), który będzie używany do uzyskiwania dostępu do interfejsu Vertex API z sieci aiml-vpc.
Z Cloud Shell
gcloud compute addresses create psc-ip \
--global \
--purpose=PRIVATE_SERVICE_CONNECT \
--addresses=100.100.10.10 \
--network=aiml-vpc
Przechowywanie wartości „pscendpointip” przez czas trwania laboratorium
pscendpointip=$(gcloud compute addresses list --filter=name:psc-ip --format="value(address)")
echo $pscendpointip
Tworzenie punktu końcowego PSC
Z Cloud Shell
gcloud compute forwarding-rules create pscvertex \
--global \
--network=aiml-vpc \
--address=psc-ip \
--target-google-apis-bundle=all-apis
Wyświetlanie listy skonfigurowanych punktów końcowych usługi Private Service Connect
Z Cloud Shell
gcloud compute forwarding-rules list \
--filter target="(all-apis OR vpc-sc)" --global
Opisywanie skonfigurowanych punktów końcowych Private Service Connect
Z Cloud Shell
gcloud compute forwarding-rules describe \
pscvertex --global
5. Tworzenie konta usługi dla instancji GCE
Aby zapewnić precyzyjną kontrolę nad interfejsem Vertex API, wymagane jest zarządzane przez użytkownika konto usługi, które będzie stosowane w przypadku instancji zachodnich i centralnych. Po wygenerowaniu uprawnienia konta usługi można modyfikować w zależności od potrzeb biznesowych. W tym samouczku do konta usługi zarządzanego przez użytkownika, vertex-sa, zostaną przypisane te role:
Zanim przejdziesz dalej, musisz interfejs Service Account API.
W Cloud Shell utwórz konto usługi.
gcloud iam service-accounts create vertex-gce-sa \
--description="service account for vertex" \
--display-name="vertex-sa"
W Cloud Shell zaktualizuj konto usługi, przypisując mu rolę administratora instancji Compute Engine.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:vertex-gce-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"
W Cloud Shell zaktualizuj konto usługi, przypisując mu rolę użytkownika Vertex AI.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:vertex-gce-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
6. Tworzenie konta usługi zarządzanego przez użytkownika (notatnik)
W następnej sekcji utworzysz konto usługi zarządzane przez użytkownika, które będzie powiązane z Vertex Workbench (notatnikiem) używanym w samouczku.
W samouczku do konta usługi zostaną zastosowane te reguły:
W Cloud Shell utwórz konto usługi.
gcloud iam service-accounts create user-managed-notebook-sa \
--display-name="user-managed-notebook-sa"
W Cloud Shell zaktualizuj konto usługi, przypisując mu rolę Administrator miejsca na dane.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"
W Cloud Shell zaktualizuj konto usługi, przypisując mu rolę Użytkownik Vertex AI.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
W Cloud Shell zaktualizuj konto usługi, przypisując mu rolę Administrator Artifact Registry.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"
W Cloud Shell wyświetl listę kont usługi i zanotuj adres e-mail, który będzie używany podczas tworzenia notatnika zarządzanego przez użytkownika.
gcloud iam service-accounts list
7. Tworzenie instancji testów
W następnej sekcji utworzysz instancje testowe, aby przeprowadzić testy podstawowe w regionach us-west1 i us-central1.
W Cloud Shell utwórz klienta 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"
W Cloud Shell utwórz 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"
Aby umożliwić IAP połączenie z instancjami maszyn wirtualnych, utwórz regułę zapory sieciowej, która:
- Dotyczy wszystkich instancji maszyn wirtualnych, które mają być dostępne przez IAP.
- Zezwala na ruch przychodzący z zakresu adresów IP 35.235.240.0/20. Ten zakres zawiera wszystkie adresy IP, których IAP używa do przekierowywania TCP.
W Cloud Shell utwórz regułę zapory sieciowej IAP.
gcloud compute firewall-rules create ssh-iap-vpc \
--network aiml-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
8. Tworzenie notatnika zarządzanego przez użytkownika
W następnej sekcji utwórz notatnik zarządzany przez użytkownika, który będzie korzystać z utworzonego wcześniej konta usługi user-managed-notebook-sa.
W Cloud Shell utwórz instancję 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
Przejdź do sekcji Vertex AI → Workbench, aby wyświetlić wdrożony notatnik.

9. Wdrażanie modelu i prognozowanie online
W następnej sekcji skorzystaj z tego samouczka: Vertex AI: używanie niestandardowych procedur prognozowania z Sklearn do przetwarzania wstępnego i końcowego danych na potrzeby prognoz. Zacznij od sekcji 7, ponieważ w poprzednim kroku utworzono już notatnik. Po wdrożeniu modelu wróć do samouczka, aby rozpocząć następną sekcję.

10. Tworzenie niestandardowego panelu monitorowania prognozowania online
Prognozowanie online tworzy domyślny panel monitorowania w sekcji VERTEX AI → PROGNOZOWANIE ONLINE → NAZWA PUNKTU KOŃCOWEGO (diamonds-cpr_endpoint). Na potrzeby testów musimy jednak określić czas rozpoczęcia i zakończenia, dlatego wymagany jest niestandardowy panel.
W następnej sekcji utworzysz wskaźniki Cloud Monitoring, aby uzyskać pomiary czasu oczekiwania na podstawie regionalnego dostępu do punktu końcowego prognozowania online. Pozwoli to sprawdzić różnice w czasie oczekiwania podczas uzyskiwania dostępu do punktu końcowego w regionie us-central1 z instancji GCE wdrożonych w regionach us-west1 i us-central.
W samouczku użyjemy danych prediction_latencies. Dodatkowe dane są dostępne w aiplatform.
Dane | Opis |
prediction/online/prediction_latencies | Czas oczekiwania prognozy online wdrożonego modelu. |
Utwórz wykres dla wskaźnika prediction_latencies.
W Cloud Console otwórz MONITOROWANIE → Metrics Explorer.

Wstaw dane prediction/online/prediction_latencies i wybierz te opcje, a potem kliknij Zastosuj.

Zaktualizuj opcję Grupuj według na podstawie poniższej opcji i kliknij Zapisz wykres.


Kliknij Zapisz. Pojawi się prośba o wybranie panelu. Kliknij Nowy panel i wpisz nazwę.

Niestandardowy panel Vertex AI
W sekcji poniżej sprawdź, czy niestandardowy panel informacyjny Vertex wyświetla prawidłowy czas.
Otwórz MONITOROWANIE → Panel i wybierz kolejno Vertex Custom Dashboard (Niestandardowy panel Vertex) i czas. Sprawdź, czy strefa czasowa jest prawidłowa.

Rozwiń legendę, aby wyświetlić tabelę.

Przykład widoku rozwiniętego:

11. Tworzenie prywatnego DNS dla punktu końcowego PSC
Utwórz prywatną strefę DNS w sieci VPC aiml-vpc, aby rozwiązywać wszystkie adresy googleapis na adres IP punktu końcowego PSC 100.100.10.10.
W Cloud Shell utwórz prywatną strefę DNS.
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"
W Cloud Shell utwórz rekord A, który przypisuje *. googleapis.com do adresu 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 umożliwia użytkownikom dostosowywanie testów do wymagań sieci i aplikacji. Na potrzeby tego samouczka użyjemy opcji opisanej poniżej wraz z przykładowym ciągiem wykonania:
c == 1 instancja robocza
z == Czas trwania
m == HTTP method POST
D == treść żądania HTTP z pliku instances.json
n == liczba żądań do uruchomienia. Wartość domyślna to 200.
Przykładowy ciąg tekstowy curl z poleceniem HEY (nie wymaga wykonania)
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. Uzyskiwanie identyfikatora prognozy
Uzyskaj identyfikator punktu końcowego prognozowania online z konsoli Google Cloud, który będzie używany w kolejnych krokach.
Otwórz VERTEX AI → PROGNOZOWANIE ONLINE.

14. Pobieranie i wykonywanie HEY (us-west1)
W następnej sekcji zalogujesz się na klienta west-client, aby pobrać i wykonać HEY w odniesieniu do prognozowania online w regionie us-central1.
Z Cloud Shell zaloguj się na klienta zachodniego i pobierz HEY.
gcloud compute ssh west-client --project=$projectid --zone=us-west1-a --tunnel-through-iap
Pobierz HEY z systemu operacyjnego i zaktualizuj uprawnienia.
wget https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64
chmod +x hey_linux_amd64
W systemie operacyjnym utwórz te zmienne:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
Przykład:
ENDPOINT_ID="2706243362607857664"
W następnej sekcji utworzysz plik instances.json za pomocą edytora vi lub nano i wstawisz ciąg danych używany do uzyskiwania prognozy z wdrożonego modelu.
W systemie operacyjnym west-client utwórz plik instances.json z ciągiem danych poniżej:
{"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]]}
Przykład:
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:$
Test wstępny
Z systemu operacyjnego wykonaj polecenie curl, aby sprawdzić, czy model i punkt końcowy prognozowania działają prawidłowo. Zanotuj adres IP punktu końcowego PSC w szczegółowym dzienniku i kod HTTP/2 200 wskazujący sukces.
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
Zwróć uwagę na adres IP PSC użyty do uzyskania prognozy i osiągnięcia pożądanego wyniku.
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
Wykonaj HEY
Z poziomu systemu operacyjnego uruchom HEY, aby przeprowadzić 10-minutowy test podstawowy.
./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)
Po wykonaniu polecenia Hey z instancji obliczeniowej w regionie us-west1 oceń wyniki na podstawie tych informacji:
- Wyniki HEY
- Panel niestandardowy Vertex
- Analizy sieciowe
Wyniki HEY
Sprawdźmy wyniki HEY w systemie operacyjnym na podstawie 10-minutowego wykonania.
17,5826 żądania na sekundę
99% w 0,0686 s | 68 ms
10 550 odpowiedzi z kodem stanu 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
Niestandardowy panel Vertex AI
Otwórz MONITOROWANIE → Panel i wybierz Panel niestandardowy Vertex. Wpisz 10 min lub określ czas rozpoczęcia i zakończenia. Sprawdź, czy strefa czasowa jest prawidłowa.

Definicja opóźnień prognozowania wskazuje na pomiar po stronie serwera, który mierzy całkowity czas odpowiedzi na żądanie klienta po uzyskaniu odpowiedzi z modelu.
- Całkowity czas oczekiwania: łączny czas, jaki żądanie spędza w usłudze, czyli czas oczekiwania modelu plus czas oczekiwania związany z narzutem.
Z kolei HEY to dane po stronie klienta, które uwzględniają te parametry:
Żądanie klienta + Łączny czas oczekiwania (obejmuje czas oczekiwania modelu) + Odpowiedź klienta
Network Intelligence
Przyjrzyjmy się teraz opóźnieniom w sieci między regionami zgłaszanym przez Network Intelligence, aby uzyskać informacje o opóźnieniach między regionami us-west1 i us-central1 zgłaszanych przez Google Cloud Platform.
Otwórz Cloud Console Network Intelligence → Panel wydajności i wybierz opcje widoczne na zrzucie ekranu poniżej, które wskazują opóźnienie w zakresie 32–39 ms.

Podsumowanie testu podstawowego HEY w regionie us-west1
Porównanie raportów „Łączne opóźnienie” z narzędzi testowych daje w przybliżeniu takie samo opóźnienie jak w przypadku HEY. Opóźnienie między regionami stanowi większość opóźnienia. Sprawdźmy, jak centralny klient sprawdzi się w kolejnych testach.
Narzędzie do pomiaru czasu oczekiwania | Czas trwania |
Analizy sieciowe: opóźnienie między regionami us-west1 i us-central1 | ~32–39 ms |
Cloud Monitoring: całkowity czas oczekiwania na prognozę [99%] | 34,58 ms (99p) |
Całkowity czas oczekiwania zgłoszony przez Google | ~ 66,58–73,58 ms |
Rozkład czasu oczekiwania po stronie klienta HEY | 68 ms (99p) |
16. Pobieranie i wykonywanie HEY (us-central1)
W następnej sekcji zalogujesz się w centralnym kliencie, aby pobrać i wykonać HEY w odniesieniu do prognozowania online w regionie us-central1.
Z Cloud Shell zaloguj się na central-client i pobierz HEY.
gcloud compute ssh central-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Pobierz HEY z systemu operacyjnego i zaktualizuj uprawnienia.
wget https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64
chmod +x hey_linux_amd64
W systemie operacyjnym utwórz te zmienne:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
Przykład:
ENDPOINT_ID="2706243362607857664"
W następnej sekcji utworzysz plik instances.json za pomocą edytora vi lub nano i wstawisz ciąg danych używany do uzyskiwania prognozy z wdrożonego modelu.
W systemie operacyjnym west-client utwórz plik instances.json z ciągiem danych poniżej:
{"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]]}
Przykład:
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:$
Test wstępny
Z systemu operacyjnego wykonaj polecenie curl, aby sprawdzić, czy model i punkt końcowy prognozowania działają prawidłowo. Zanotuj adres IP punktu końcowego PSC w szczegółowym dzienniku i kod HTTP/2 200 wskazujący sukces.
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
Przykład: zwróć uwagę na adres IP usługi PSC użyty do uzyskania dostępu do prognozy i osiągnięcia pozytywnego wyniku.
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
Wykonaj HEY
Z poziomu systemu operacyjnego uruchom HEY, aby przeprowadzić 10-minutowy test podstawowy.
./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)
Po wykonaniu polecenia Hey z instancji obliczeniowej w regionie us-central1 oceń wyniki na podstawie tych informacji:
- Wyniki HEY
- Panel niestandardowy Vertex
- Analizy sieciowe
Wyniki HEY
Sprawdźmy wyniki HEY w systemie operacyjnym na podstawie 10-minutowego wykonania.
44,9408 żądania na sekundę
99% w 0,0353 s | 35 ms
26965 odpowiedzi z kodem stanu 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
Niestandardowy panel Vertex AI
Otwórz MONITOROWANIE → Panel i wybierz Vertex Custom Dashboard (Panel niestandardowy Vertex), a następnie wpisz 10 min. lub godzinę rozpoczęcia i zakończenia. Sprawdź, czy strefa czasowa jest prawidłowa.
Opóźnienia prognozowania z ostatnich 10 minut wynoszą 30,533 ms.
Definicja opóźnień prognozowania wskazuje na pomiar po stronie serwera, który mierzy całkowity czas odpowiedzi na żądanie klienta po uzyskaniu odpowiedzi z modelu.
- Całkowity czas oczekiwania: łączny czas, jaki żądanie spędza w usłudze, czyli czas oczekiwania modelu plus czas oczekiwania związany z narzutem.
Z kolei HEY to dane po stronie klienta, które uwzględniają te parametry:
Żądanie klienta + Łączny czas oczekiwania (obejmuje czas oczekiwania modelu) + Odpowiedź klienta
Network Intelligence
Spójrzmy teraz na opóźnienie sieci w regionie zgłoszone przez Network Intelligence, aby poznać opóźnienie w regionie us-central1 zgłoszone przez Google Cloud Platform.
Otwórz w konsoli Cloud Analizy sieciowe → Panel wydajności i wybierz opcje widoczne na zrzucie ekranu poniżej, które wskazują opóźnienie od 0,2 ms do 0,8 ms.

Podsumowanie testu podstawowego HEY w regionie us-central1
Porównanie całkowitego czasu oczekiwania zgłoszonego przez narzędzia testowe daje mniejszy czas oczekiwania niż w przypadku klienta zachodniego, ponieważ punkty końcowe obliczeń (klient centralny) i Vertex (model i prognozowanie online) znajdują się w tym samym regionie.
Narzędzie do pomiaru czasu oczekiwania | Czas trwania |
Analityka sieciowa: czas oczekiwania w regionie us-central1 | ~0,2–0,8 ms |
Cloud Monitoring: całkowity czas oczekiwania na prognozę [99%] | 30,533 ms (99p) |
Całkowity czas oczekiwania zgłoszony przez Google | ~30,733–31,333 ms |
Opóźnienie po stronie klienta HEY | 35 ms (99p) |
18. Gratulacje
Gratulacje! Udało Ci się wdrożyć i zweryfikować HEY, aby uzyskać podstawowe opóźnienie prognozowania po stronie klienta za pomocą Cloud Monitoring i Network Intelligence. Na podstawie testów udało Ci się ustalić, że punkt końcowy prognozowania w regionie us-central może obsługiwać zapytania z innych regionów, ale zaobserwowano opóźnienia.
Cosmopup uważa, że samouczki są świetne!!

19. Czyszczenie danych
W Cloud Shell usuń komponenty samouczka.
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
W konsoli Cloud usunięto:
Folder Artifact Registry

W rejestrze modeli Vertex AI wycofaj wdrożenie modelu:

Usuń punkt końcowy z prognozowania online w Vertex AI.

Co dalej?
Zapoznaj się z tymi samouczkami:
- Private Service Connect dla interfejsów API Google
- Vertex AI – tworzenie bezpiecznego notatnika zarządzanego przez użytkownika
Więcej informacji i filmy
- Omówienie Private Service Connect
- Czym jest Private Service Connect?
- Jak uzyskiwać prognozy z modelu ML
- Czym jest Vertex AI?