1. Einführung
In dieser Anleitung wird gezeigt, wie Sie Cloud Monitoring-Messwerte für die Onlinevorhersage erstellen und bewerten, wenn Sie mit dem HEY-Tool zur Webleistung Basistests für us-central1 und us-west1 für einen in us-central1 bereitgestellten Vorhersageendpunkt durchführen.
Aufgaben
Sie richten ein VPC-Netzwerk namens „aiml-vpc“ ein, das aus Subnetzen und Instanzen in „us-west1“ und „us-central1“ besteht. Diese werden verwendet, um Traffic mit HEY zu generieren, der auf eine Onlinevorhersage und ein in „us-central1“ bereitgestelltes Modell ausgerichtet ist.
Private Service Connect und Private DNS sind ebenfalls in das Tutorial integriert, um zu zeigen, wie lokale und Multi-Cloud-Umgebungen PSC für den Zugriff auf googleapis nutzen können.
Cloud Monitoring und Network Intelligence werden im Tutorial verwendet, um den von HEY generierten Traffic für die Onlinevorhersage zu validieren. Obwohl die in der Anleitung beschriebenen Schritte in einer VPC bereitgestellt werden, können Sie die Schritte nutzen, um eine Baseline von Vertex APIs aus lokalen oder Multi-Cloud-Umgebungen bereitzustellen und abzurufen. Die Netzwerkarchitektur besteht aus den folgenden Komponenten:

Nachfolgend finden Sie Details zum Anwendungsfall:
- Mit HEY auf Onlinevorhersage in us-central1 von einer GCE-Instanz in us-west1 aus zugreifen
- Prüfen, ob PSC für den Zugriff auf die Vertex API verwendet wird
- curl mit HEY fünf Minuten lang ausführen
- Latenz mit Cloud Monitoring validieren
- Latenz zwischen Regionen mit Network Intelligence prüfen
- Mit HEY über eine GCE-Instanz in us-central1 auf Onlinevorhersagen in us-central1 zugreifen
- Prüfen, ob PSC für den Zugriff auf die Vertex API verwendet wird
- curl mit HEY fünf Minuten lang ausführen
- Latenz mit Cloud Monitoring validieren
- Latenz innerhalb einer Region mit Network Intelligence validieren
Lerninhalte
- Private Service Connect-Endpunkt einrichten
- Last für eine Onlinevorhersage mit HEY generieren
- Vertex AI-Messwerte mit Cloud Monitoring erstellen
- Mit Network Intelligence die Latenz innerhalb und zwischen Regionen validieren
Voraussetzungen
- Google Cloud-Projekt
IAM-Berechtigungen
2. Hinweis
Projekt für das Tutorial aktualisieren
In dieser Anleitung werden $variables verwendet, um die Implementierung der gcloud-Konfiguration in Cloud Shell zu erleichtern.
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
3. Einrichtung von aiml-vpc
aiml-vpc erstellen
gcloud services enable networkmanagement.googleapis.com
Führen Sie in Cloud Shell folgende Schritte aus:
gcloud compute networks create aiml-vpc --project=$projectid --subnet-mode=custom
Aktivieren Sie in Cloud Shell die Network Management API für Network Intelligence.
gcloud services enable networkmanagement.googleapis.com
Subnetz für nutzerverwaltete Notebooks erstellen
Erstellen Sie in Cloud Shell das 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
Erstellen Sie in Cloud Shell das Subnetz „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
Erstellen Sie in Cloud Shell das Subnetz „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
Cloud Router- und NAT-Konfiguration
Cloud NAT wird im Tutorial zum Herunterladen von Softwarepaketen verwendet, da die GCE-Instanz keine externe IP-Adresse hat. Cloud NAT bietet NAT-Funktionen für ausgehenden Traffic. Das bedeutet, dass Internet-Hosts keine Kommunikation mit einem vom Nutzer verwalteten Notebook initiieren dürfen, was die Sicherheit erhöht.
Erstellen Sie in Cloud Shell den regionalen Cloud Router „us-west1“.
gcloud compute routers create cloud-router-us-west1-aiml-nat --network aiml-vpc --region us-west1
Erstellen Sie in Cloud Shell das regionale Cloud NAT-Gateway „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
Erstellen Sie in Cloud Shell den regionalen Cloud Router „us-central1“.
gcloud compute routers create cloud-router-us-central1-aiml-nat --network aiml-vpc --region us-central1
Erstellen Sie in Cloud Shell das regionale Cloud NAT-Gateway „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. Private Service Connect-Endpunkt erstellen
Im folgenden Abschnitt erstellen Sie einen Private Service Connect-Endpunkt (PSC), der für den Zugriff auf die Vertex API über die aiml-vpc verwendet wird.
Über Cloud Shell
gcloud compute addresses create psc-ip \
--global \
--purpose=PRIVATE_SERVICE_CONNECT \
--addresses=100.100.10.10 \
--network=aiml-vpc
„pscendpointip“ für die Dauer des Labs speichern
pscendpointip=$(gcloud compute addresses list --filter=name:psc-ip --format="value(address)")
echo $pscendpointip
PSC-Endpunkt erstellen
Über Cloud Shell
gcloud compute forwarding-rules create pscvertex \
--global \
--network=aiml-vpc \
--address=psc-ip \
--target-google-apis-bundle=all-apis
Konfigurierte Private Service Connect-Endpunkte auflisten
Über Cloud Shell
gcloud compute forwarding-rules list \
--filter target="(all-apis OR vpc-sc)" --global
Konfigurierte Private Service Connect-Endpunkte beschreiben
Über Cloud Shell
gcloud compute forwarding-rules describe \
pscvertex --global
5. Dienstkonto für die GCE-Instanzen erstellen
Um eine detaillierte Steuerung der Vertex API zu ermöglichen, ist ein vom Nutzer verwaltetes Dienstkonto erforderlich, das auf die westlichen und zentralen Instanzen angewendet wird. Nach der Generierung können die Dienstkontoberechtigungen entsprechend den geschäftlichen Anforderungen geändert werden. Im Tutorial hat das vom Nutzer verwaltete Dienstkonto „vertex-sa“ die folgenden Rollen:
Sie müssen die Service Account API , bevor Sie fortfahren.
Erstellen Sie das Dienstkonto in Cloud Shell.
gcloud iam service-accounts create vertex-gce-sa \
--description="service account for vertex" \
--display-name="vertex-sa"
Aktualisieren Sie das Dienstkonto in Cloud Shell mit der Rolle „Compute-Instanzadministrator“.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:vertex-gce-sa@$projectid.iam.gserviceaccount.com" --role="roles/compute.instanceAdmin.v1"
Aktualisieren Sie das Dienstkonto in Cloud Shell mit der Rolle „Vertex AI User“.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:vertex-gce-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
6. Nutzerverwaltetes Dienstkonto erstellen (Notebook)
Im folgenden Abschnitt erstellen Sie ein nutzerverwaltetes Dienstkonto, das dem im Tutorial verwendeten Vertex Workbench-Notebook zugeordnet wird.
Im Rahmen der Anleitung werden für das Dienstkonto die folgenden Regeln angewendet:
Erstellen Sie das Dienstkonto in Cloud Shell.
gcloud iam service-accounts create user-managed-notebook-sa \
--display-name="user-managed-notebook-sa"
Aktualisieren Sie das Dienstkonto in Cloud Shell mit der Rolle „Storage-Administrator“.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/storage.admin"
Aktualisieren Sie das Dienstkonto in Cloud Shell mit der Rolle „Vertex AI User“.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/aiplatform.user"
Aktualisieren Sie das Dienstkonto in Cloud Shell mit der Rolle „Artifact Registry-Administrator“.
gcloud projects add-iam-policy-binding $projectid --member="serviceAccount:user-managed-notebook-sa@$projectid.iam.gserviceaccount.com" --role="roles/artifactregistry.admin"
Listen Sie in Cloud Shell das Dienstkonto auf und notieren Sie sich die E-Mail-Adresse, die beim Erstellen des nutzerverwalteten Notebooks verwendet wird.
gcloud iam service-accounts list
7. Testinstanzen erstellen
Im folgenden Abschnitt erstellen Sie Testinstanzen, um Basistests in den Regionen us-west1 und us-central1 durchzuführen.
Erstellen Sie in Cloud Shell den 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"
Erstellen Sie in Cloud Shell den zentralen 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"
Damit IAP eine Verbindung zu Ihren VM-Instanzen herstellen kann, erstellen Sie eine Firewallregel, die:
- Gilt für alle VM-Instanzen, die über IAP zugänglich sein sollen.
- Lässt eingehenden Traffic aus dem IP-Bereich 35.235.240.0/20 zu. Dieser Bereich enthält alle IP-Adressen, die IAP für die TCP-Weiterleitung verwendet.
Erstellen Sie in Cloud Shell die IAP-Firewallregel.
gcloud compute firewall-rules create ssh-iap-vpc \
--network aiml-vpc \
--allow tcp:22 \
--source-ranges=35.235.240.0/20
8. Nutzerverwaltetes Notebook erstellen
Erstellen Sie im folgenden Abschnitt ein nutzerverwaltetes Notebook, in dem das zuvor erstellte Dienstkonto „user-managed-notebook-sa“ verwendet wird.
Erstellen Sie in Cloud Shell die private-client-Instanz.
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
Rufen Sie Vertex AI → Workbench auf, um Ihr bereitgestelltes Notebook aufzurufen.

9. Modell bereitstellen und Onlinevorhersage
Im folgenden Abschnitt verwenden Sie das bereitgestellte Codelabund beginnen mit Abschnitt 7, da Sie im vorherigen Schritt bereits ein Notebook erstellt haben. Kehren Sie nach der Bereitstellung des Modells zur Anleitung zurück, um mit dem nächsten Abschnitt zu beginnen.

10. Benutzerdefiniertes Monitoring-Dashboard für Onlinevorhersagen erstellen
Bei der Onlinevorhersage wird ein Standard-Monitoring-Dashboard unter „VERTEX AI“ → „ONLINE PREDICTION“ → „ENDPOINT NAME“ (diamonds-cpr_endpoint) erstellt. Für unsere Tests müssen wir jedoch eine Start- und eine Endzeit definieren. Daher ist ein benutzerdefiniertes Dashboard erforderlich.
Im folgenden Abschnitt erstellen Sie Cloud Monitoring-Messwerte, um Latenzmessungen basierend auf dem regionalen Zugriff auf den Online Prediction-Endpunkt zu erhalten. So können Sie die unterschiedliche Latenz beim Zugriff auf einen Endpunkt in us-central1 von GCE-Instanzen aus validieren, die in us-west1 und us-central bereitgestellt werden.
In dieser Anleitung verwenden wir die Messwerte für die Vorhersagelatenz. Weitere Messwerte sind unter aiplatform verfügbar.
Messwert | Beschreibung |
prediction/online/prediction_latencies | Onlinevorhersagelatenz des bereitgestellten Modells. |
Diagramm für den prediction_latencies-Messwert erstellen
Rufen Sie in der Cloud Console MONITORING → Metrics Explorer auf.

Fügen Sie den Messwert prediction/online/prediction_latencies ein, wählen Sie die folgenden Optionen aus und klicken Sie auf „Übernehmen“.

Aktualisieren Sie „Gruppieren nach“ entsprechend der folgenden Option und wählen Sie „Diagramm speichern“ aus.


Wählen Sie „Speichern“ aus. Sie werden aufgefordert, ein Dashboard auszuwählen. Wählen Sie „Neues Dashboard“ aus und geben Sie einen Namen ein.

Vertex Custom Dashboard
Prüfen Sie im folgenden Abschnitt, ob im benutzerdefinierten Vertex-Dashboard die richtige Zeit angezeigt wird.
Rufen Sie MONITORING → Dashboard auf, wählen Sie „Vertex Custom Dashboard“ und dann den Zeitraum aus. Achten Sie darauf, dass Ihre Zeitzone korrekt ist.

Erweitern Sie die Legende, um eine Tabellenansicht zu erhalten.

Beispiel für die maximierte Ansicht:

11. Private DNS für den PSC-Endpunkt erstellen
Erstellen Sie eine private DNS-Zone in der aiml-vpc, um alle googleapis in die PSC-Endpunkt-IP-Adresse 100.100.10.10 aufzulösen.
Erstellen Sie in Cloud Shell eine private DNS-Zone.
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"
Erstellen Sie in Cloud Shell den A-Datensatz, der *. googleapis.com der PSC-IP zuordnet.
gcloud dns --project=$projectid record-sets create *.googleapis.com. --zone="psc-googleapis" --type="A" --ttl="300" --rrdatas="100.100.10.10"
12. Hallo, Variablen testen
Mit Hey können Endnutzer Tests an die Anforderungen von Netzwerk und Anwendung anpassen. Für diese Anleitung verwenden wir die unten beschriebene Option mit einem Beispiel für einen Ausführungsstring:
c == 1 Worker
z == Dauer
m == HTTP-Methode POST
D == HTTP-Anfragetext aus der Datei „instances.json“
n == Anzahl der auszuführenden Anfragen. Der Standardwert ist 200.
Beispiel für einen curl-String mit HEY (Ausführung nicht erforderlich)
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. Vorhersage-ID abrufen
Rufen Sie die ID Ihres Onlinevorhersage-Endpunkts aus der Cloud Console ab, die in den folgenden Schritten verwendet wird.
Klicken Sie auf VERTEX AI → ONLINEPREDICTION.

14. HEY herunterladen und ausführen (us-west1)
Im folgenden Abschnitt melden Sie sich am West-Client an, um HEY herunterzuladen und für die Onlinevorhersage in us-central1 auszuführen.
Melden Sie sich in Cloud Shell beim west-client an und laden Sie HEY herunter.
gcloud compute ssh west-client --project=$projectid --zone=us-west1-a --tunnel-through-iap
Laden Sie HEY über das Betriebssystem herunter und aktualisieren Sie die Berechtigungen.
wget https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64
chmod +x hey_linux_amd64
Erstellen Sie im Betriebssystem die folgenden Variablen:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
Beispiel:
ENDPOINT_ID="2706243362607857664"
Im folgenden Abschnitt erstellen Sie mit dem vi-Editor oder nano die Datei „instances.json“ und fügen den Datenstring ein, mit dem eine Vorhersage vom bereitgestellten Modell abgerufen wird.
Erstellen Sie auf dem Betriebssystem des West-Clients eine instances.json-Datei mit dem folgenden Datenstring:
{"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]]}
Beispiel:
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:$
Vorabtest
Führen Sie über das Betriebssystem einen Curl-Befehl aus, um zu prüfen, ob das Modell und der Vorhersageendpunkt funktionieren. Notieren Sie sich die IP-Adresse des PSC-Endpunkts im ausführlichen Log und den HTTP/2-Statuscode 200, der auf einen erfolgreichen Vorgang hinweist.
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
Beispiel: Notieren Sie sich die PSC-IP-Adresse, die für den Zugriff auf die Vorhersage verwendet wurde, und das erfolgreiche Ergebnis.
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
HEY ausführen
Führen Sie HEY über das Betriebssystem aus, um einen 10-minütigen Baslinetest zu aktivieren.
./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)
Nachdem Sie „Hey“ über eine Compute-Instanz in „us-west1“ ausgeführt haben, können Sie die Ergebnisse aus den folgenden Quellen auswerten:
- HEY-Ergebnisse
- Benutzerdefiniertes Vertex-Dashboard
- Network Intelligence
HEY-Ergebnisse
Lassen Sie uns die HEY-Ergebnisse anhand der 10-minütigen Ausführung im Betriebssystem validieren.
17,5826 Anfragen pro Sekunde
99% in 0,0686 Sekunden | 68 ms
10.550 Antworten mit dem Statuscode 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
Vertex Custom Dashboard
Rufen Sie „MONITORING“ → „Dashboard“ auf und wählen Sie „Vertex Custom Dashboard“ aus. Geben Sie „10 Minuten“ ein oder legen Sie die Start- und Endzeit fest. Achten Sie darauf, dass Ihre Zeitzone korrekt ist.

Wenn wir uns die Definition von Vorhersagelatenzen ansehen, stellen wir fest, dass es sich um einen serverseitigen Messwert handelt, der die Gesamtzeit misst, die benötigt wird, um auf die Anfrage des Clients zu reagieren, nachdem eine Antwort vom Modell empfangen wurde.
- Gesamtlatenzdauer: Die Gesamtzeit, die eine Anfrage im Dienst verbringt. Dies ist die Modelllatenz plus die Overhead-Latenz.
Im Gegensatz dazu ist HEY ein clientseitiger Messwert, der die folgenden Parameter berücksichtigt:
Clientanfrage + Gesamtlatenz (einschließlich Modelllatenz) + Clientantwort
Network Intelligence
Sehen wir uns nun die von Network Intelligence gemeldete Netzwerk-Latenz zwischen den Regionen an, um eine Vorstellung von der von Google Cloud Platform gemeldeten Latenz zwischen „us-west1“ und „us-central1“ zu erhalten.
Rufen Sie in der Cloud Console „Network Intelligence“ → „Performance Dashboard“ auf und wählen Sie die folgenden Optionen aus, die im Screenshot unten dargestellt sind und eine Latenz von 32 bis 39 ms angeben.

HEY us-west1 baseline summary
Beim Vergleich der Berichte zur Gesamtlatenz der Testtools wird ungefähr die gleiche Latenz wie bei HEY gemeldet. Die interregionale Latenz trägt den größten Teil zur Latenz bei. Sehen wir uns an, wie sich der zentrale Client in der nächsten Reihe von Tests schlägt.
Latenz-Tool | Dauer |
Network Intelligence: Latenz von us-west1 nach us-central1 | ca. 32 bis 39 ms |
Cloud Monitoring: Gesamtlatenz der Vorhersage [99. Perzentil] | 34,58 ms (99.Perzentil) |
Von Google gemeldete Gesamtlatenz | ~ 66,58 bis 73,58 ms |
HEY-Client-Latenzverteilung | 68 ms (99. Perzentil) |
16. HEY herunterladen und ausführen (us-central1)
Im folgenden Abschnitt melden Sie sich am zentralen Client an, um HEY für die Onlinevorhersage in us-central1 herunterzuladen und auszuführen.
Melden Sie sich in Cloud Shell am zentralen Client an und laden Sie HEY herunter.
gcloud compute ssh central-client --project=$projectid --zone=us-central1-a --tunnel-through-iap
Laden Sie HEY über das Betriebssystem herunter und aktualisieren Sie die Berechtigungen.
wget https://hey-release.s3.us-east-2.amazonaws.com/hey_linux_amd64
chmod +x hey_linux_amd64
Erstellen Sie im Betriebssystem die folgenden Variablen:
gcloud config list project
gcloud config set project [YOUR-PROJECT-NAME]
projectid=YOUR-PROJECT-NAME
echo $projectid
ENDPOINT_ID="insert-your-endpoint-id-here"
Beispiel:
ENDPOINT_ID="2706243362607857664"
Im folgenden Abschnitt erstellen Sie mit dem vi-Editor oder nano die Datei „instances.json“ und fügen den Datenstring ein, mit dem eine Vorhersage vom bereitgestellten Modell abgerufen wird.
Erstellen Sie auf dem Betriebssystem des West-Clients eine instances.json-Datei mit dem folgenden Datenstring:
{"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]]}
Beispiel:
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:$
Pre-Test
Führen Sie über das Betriebssystem einen Curl-Befehl aus, um zu prüfen, ob das Modell und der Vorhersageendpunkt funktionieren. Notieren Sie sich die IP-Adresse des PSC-Endpunkts im ausführlichen Log und den HTTP/2-Statuscode 200, der auf einen erfolgreichen Vorgang hinweist.
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
Beispiel: Notieren Sie sich die PSC-IP-Adresse, die für den Zugriff auf die Vorhersage verwendet wurde, und das erfolgreiche Ergebnis.
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
HEY ausführen
Führen Sie HEY über das Betriebssystem aus, um einen 10-minütigen Baslinetest zu aktivieren.
./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)
Nachdem Sie „Hey“ über eine Compute Engine-Instanz in „us-central1“ ausgeführt haben, können Sie die Ergebnisse aus den folgenden Quellen auswerten:
- HEY-Ergebnisse
- Benutzerdefiniertes Vertex-Dashboard
- Network Intelligence
HEY-Ergebnisse
Lassen Sie uns die HEY-Ergebnisse basierend auf der 10-minütigen Ausführung im Betriebssystem validieren.
44,9408 Anfragen pro Sekunde
99% in 0,0353 Sekunden | 35 ms
26.965 Antworten mit dem Statuscode 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
Vertex Custom Dashboard
Rufen Sie MONITORING → Dashboard auf und wählen Sie „Vertex Custom Dashboard“ aus. Geben Sie „10m“ ein. Oder die Start- und Endzeit. Achten Sie darauf, dass Ihre Zeitzone korrekt ist.
Die Vorhersagelatenzen der letzten 10 Minuten ergeben 30.533 ms.
Wenn wir uns die Definition von Vorhersagelatenzen ansehen, stellen wir fest, dass es sich um einen serverseitigen Messwert handelt, der die Gesamtzeit misst, die benötigt wird, um auf die Anfrage des Clients zu reagieren, nachdem eine Antwort vom Modell empfangen wurde.
- Gesamtlatenzdauer: Die Gesamtzeit, die eine Anfrage im Dienst verbringt. Dies ist die Modelllatenz plus die Overhead-Latenz.
Im Gegensatz dazu ist HEY ein clientseitiger Messwert, der die folgenden Parameter berücksichtigt:
Clientanfrage + Gesamtlatenz (einschließlich Modelllatenz) + Clientantwort
Network Intelligence
Sehen wir uns nun die von Network Intelligence gemeldete Netzwerk-Latenz innerhalb der Region an, um eine Vorstellung von der von Google Cloud Platform gemeldeten Latenz für „us-central1“ zu erhalten.
Rufen Sie in der Cloud Console „Network Intelligence“ → „Performance Dashboard“ auf und wählen Sie die im Screenshot unten gezeigten Optionen aus, die eine Latenz von 0,2 bis 0,8 ms angeben.

HEY us-central1 baseline summary
Beim Vergleich der von den Testtools gemeldeten Gesamtlatenz ergibt sich eine geringere Latenz als beim West-Client, da sich die Compute- (Central-Client) und Vertex-Endpunkte (Modell und Onlinevorhersage) in derselben Region befinden.
Latenz-Tool | Dauer |
Network Intelligence: Latenz innerhalb der Region „us-central1“ | ~0,2 bis 0,8 ms |
Cloud Monitoring: Gesamtlatenz der Vorhersage [99. Perzentil] | 30,533 ms (99.Perzentil) |
Von Google gemeldete Gesamtlatenz | ca. 30.733 bis 31.333 ms |
HEY-Clientlatenz | 35 ms (99. Perzentil) |
18. Glückwunsch
Glückwunsch! Sie haben HEY erfolgreich bereitgestellt und validiert, um die clientseitige Vorhersage-Basislatenz mithilfe einer Kombination aus Cloud Monitoring und Network Intelligence zu ermitteln. Bei Tests wurde festgestellt, dass ein Vorhersageendpunkt in us-central regionsübergreifend bereitgestellt werden kann. Es wurde jedoch eine Latenz beobachtet.
Cosmopup findet Tutorials toll!!

19. Bereinigen
Löschen Sie die Komponenten der Anleitung in Cloud Shell.
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
Folgendes wurde aus der Cloud Console gelöscht:
Artifact Registry-Ordner

Heben Sie die Bereitstellung des Modells in Vertex AI Model Registry auf:

Löschen Sie den Endpunkt aus Vertex AI Online Prediction.

Nächste Schritte
Hier findest du einige Tutorials:
- Private Service Connect für Google APIs
- Mit Vertex AI ein sicheres, nutzerverwaltetes Notebook erstellen
Weitere Informationen und Videos
- Private Service Connect – Übersicht
- Was ist Private Service Connect?
- Vorhersagen aus einem ML-Modell abrufen
- Was ist Vertex AI?