Skip to content

Commit 7e1f93e

Browse files
ishmeetss-googleJesse Carahjdemartino78agold-rh
authoredApr 1, 2025··
Add Vertex AI Vector Search Load Testing Framework (#1462)
* Adding Load Testing Framework to Professional Service Tools folder * readme updates * Productionize the code * Adding pre-existing directories failing lint test to exclusion_list * added minor adjustments * Removing Formatting Issues * Removal of shellcheck error * Add pushd and popd * Formatting issue with locust.py file --------- Co-authored-by: Jesse Carah <[email protected]> Co-authored-by: John DeMartino <[email protected]> Co-authored-by: Andrew Gold <[email protected]> Co-authored-by: jdemartino78 <[email protected]>
1 parent d0d8f50 commit 7e1f93e

23 files changed

+5032
-0
lines changed
 

‎README.md

+5
Original file line numberDiff line numberDiff line change
@@ -576,6 +576,11 @@ Platform usage.
576576
* [STS Job Manager](tools/sts-job-manager/) - A petabyte-scale bucket
577577
migration tool utilizing
578578
[Storage Transfer Service](https://cloud.google.com/storage-transfer-service)
579+
* [Vector Search Load Testing Framework](tools/vector-search-load-testing-framework) - This
580+
framework provides a streamlined solution for distributed load testing of Vertex AI
581+
Vector Search endpoints on Google Kubernetes Engine (GKE) using
582+
[Locust](https://locust.io/). It enables you to simulate production-like workloads to effectively benchmark performance, analyze scalability, and validate deployment
583+
configurations.
579584
* [Vertex AI Endpoint Tester] (tools/vertex-ai-endpoint-load-tester) - This
580585
utility helps to methodically test variety of Vertex AI Endpoints by their
581586
sizes so that one can decide the right size to deploy an ML Model on Vertex

‎helpers/exclusion_list.txt

+17
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,30 @@
22
./tools/apachebeam-throttling
33
./tools/asset-inventory
44
./tools/bigquery-query-plan-exporter
5+
./tools/bigquery-s3tobq
56
./tools/bigquery-zos-mainframe-connector
7+
./tools/bqms-config-generator
68
./tools/bqpipeline
79
./tools/slo-definition-converter
810
./tools/bq-visualizer
911
./tools/cloudconnect
1012
./tools/cloudera-parcel-gcsconnector
13+
./tools/cloud-composer-stress-testing
1114
./tools/cloud-vision-utils
1215
./tools/cuds-prioritized-attribution
1316
./tools/dataproc-edge-node
1417
./tools/dns-sync
1518
./tools/gce-google-keys-to-cmek
1619
./tools/gce-quota-sync
20+
./tools/gcpviz
1721
./tools/gcp-arch-viz
1822
./tools/gcs-bucket-mover
1923
./tools/gcs-usage-recommender
2024
./tools/gsuite-exporter
2125
./tools/kunskap
2226
./tools/labelmaker
2327
./tools/maven-archetype-dataflow
28+
./tools/memorystore-cluster-ops-framework
2429
./tools/ml-dataprep
2530
./tools/ml-auto-eda
2631
./tools/netblock-monitor
@@ -30,7 +35,12 @@
3035
./examples/bigquery-audit-log
3136
./examples/bigquery-billing-dashboard
3237
./examples/bigquery-cross-project-slot-monitoring
38+
./examples/bigquery-ddl-validator
39+
./examples/bigquery-generic-ddl-migration-utility
40+
./examples/bigquery-long-running-optimizer
3341
./examples/bigquery-row-access-groups
42+
./examples/bigquery-snowflake-tables-migration-utility
43+
./examples/bigquery-translation-validator-utility
3444
./examples/bigquery-ml-claudeintegrations
3545
./examples/bq_benchmarks
3646
./examples/cloud-composer-examples
@@ -48,21 +58,28 @@
4858
./examples/dataflow-bigquery-transpose
4959
./examples/dataflow-data-generator
5060
./examples/dataflow-elasticsearch-indexer
61+
./examples/dataflow-production-ready
5162
./examples/dataflow-scala-kafka2avro
5263
./examples/dataflow-streaming-benchmark
64+
./examples/dataproc-gcs-connector
65+
./examples/dataproc-idle-shutdown
5366
./examples/dataproc-persistent-history-server
5467
./examples/dlp
5568
./examples/e2e-home-appliance-status-monitoring
5669
./examples/gce-to-adminsdk
5770
./examples/gcf-pubsub-vm-delete-event-handler
71+
./examples/gcs-client-encrypt
5872
./examples/iot-nirvana
5973
./examples/kubeflow-fairing-example
6074
./examples/kubeflow-pipelines-sentiment-analysis
75+
./examples/left-shift-validation-pre-commit-hook
6176
./examples/ml-audio-content-profiling
6277
./examples/pubsub-publish-avro-example
6378
./examples/python-cicd-with-cloudbuilder
6479
./examples/qaoa
6580
./examples/redis-cluster-gke
81+
./examples/redis-benchmarks
6682
./examples/spinnaker
6783
./examples/tensorflow-profiling-examples
6884
./examples/ccai-agentassist-five9-grpc
85+
./examples/vertex_mlops_enterprise
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
FROM locustio/locust
2+
3+
# Set working directory
4+
WORKDIR /tasks
5+
6+
# Copy Locust task file
7+
COPY locust_tests/locust.py ./
8+
9+
# Install dependencies
10+
RUN pip install -U \
11+
google-auth \
12+
google-cloud-storage \
13+
google-cloud-logging \
14+
python-dotenv \
15+
google-cloud-aiplatform \
16+
grpcio \
17+
grpc_interceptor \
18+
grpcio-status
19+
20+
# No need to copy the config file here since it's mounted as a ConfigMap
21+
# The command to run will be provided by the Kubernetes deployment
There was a problem loading the remainder of the diff.

0 commit comments

Comments
 (0)
Please sign in to comment.