Add a one-line mechanism to exclude languages in OSS benchmarks. (#37172)

This change adds a mechanism to exclude languages in OSS benchmarks with a one-line change, when necessary.

Currently dotnet is excluded from the benchmarks (https://github.com/grpc/grpc/pull/36759).

This change also formats benchmarking shell scripts to simplify future changes.

Closes #37172

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/37172 from paulosjca:languages 4057659c84
PiperOrigin-RevId: 650303856
pull/37183/head
Paulo Castello da Costa 8 months ago committed by Copybara-Service
parent e5c99ad94b
commit bbb8ad25e2
  1. 166
      tools/internal_ci/linux/grpc_e2e_performance_gke.sh
  2. 102
      tools/internal_ci/linux/grpc_e2e_performance_gke_cxx_experiments_framework.sh
  3. 153
      tools/internal_ci/linux/grpc_e2e_performance_gke_experiment.sh
  4. 140
      tools/internal_ci/linux/grpc_psm_performance_gke_experiment.sh

@ -19,7 +19,6 @@ cd "$(dirname "$0")/../../.."
source tools/internal_ci/helper_scripts/prepare_build_linux_rc source tools/internal_ci/helper_scripts/prepare_build_linux_rc
# Environment variables to select repos and branches for various repos. # Environment variables to select repos and branches for various repos.
# You can edit these lines if you want to run from a fork. # You can edit these lines if you want to run from a fork.
GRPC_CORE_REPO=grpc/grpc GRPC_CORE_REPO=grpc/grpc
@ -43,20 +42,20 @@ gcloud auth configure-docker
# Connect to benchmarks-prod2 cluster. # Connect to benchmarks-prod2 cluster.
gcloud config set project grpc-testing gcloud config set project grpc-testing
gcloud container clusters get-credentials benchmarks-prod2 \ gcloud container clusters get-credentials benchmarks-prod2 \
--zone us-central1-b --project grpc-testing --zone us-central1-b --project grpc-testing
# Set up environment variables. # Set up environment variables.
LOAD_TEST_PREFIX="${KOKORO_BUILD_INITIATOR}" LOAD_TEST_PREFIX="${KOKORO_BUILD_INITIATOR}"
# BEGIN differentiate experimental configuration from master configuration. # BEGIN differentiate experimental configuration from master configuration.
if [[ "${KOKORO_BUILD_INITIATOR%%-*}" == kokoro && "${KOKORO_GITHUB_COMMIT_URL%/*}" == "https://github.com/grpc/grpc/commit" ]]; then if [[ "${KOKORO_BUILD_INITIATOR%%-*}" == kokoro && "${KOKORO_GITHUB_COMMIT_URL%/*}" == "https://github.com/grpc/grpc/commit" ]]; then
# Use "official" BQ tables only for builds initiated by Kokoro and running # Use "official" BQ tables only for builds initiated by Kokoro and running
# from grpc/grpc. These results show up in the "official" public dashboard. # from grpc/grpc. These results show up in the "official" public dashboard.
BIGQUERY_TABLE_8CORE=e2e_benchmarks.ci_master_results_8core BIGQUERY_TABLE_8CORE=e2e_benchmarks.ci_master_results_8core
BIGQUERY_TABLE_32CORE=e2e_benchmarks.ci_master_results_32core BIGQUERY_TABLE_32CORE=e2e_benchmarks.ci_master_results_32core
else else
# Use experimental BQ tables otherwise. # Use experimental BQ tables otherwise.
BIGQUERY_TABLE_8CORE=e2e_benchmarks.experimental_results BIGQUERY_TABLE_8CORE=e2e_benchmarks.experimental_results
BIGQUERY_TABLE_32CORE=e2e_benchmarks.experimental_results_32core BIGQUERY_TABLE_32CORE=e2e_benchmarks.experimental_results_32core
fi fi
# END differentiate experimental configuration from master configuration. # END differentiate experimental configuration from master configuration.
CLOUD_LOGGING_URL="https://source.cloud.google.com/results/invocations/${KOKORO_BUILD_ID}" CLOUD_LOGGING_URL="https://source.cloud.google.com/results/invocations/${KOKORO_BUILD_ID}"
@ -67,9 +66,9 @@ ROOT_DIRECTORY_OF_DOCKERFILES="../test-infra/containers/pre_built_workers/"
GRPC_COMMIT="$(git show --format="%H" --no-patch)" GRPC_COMMIT="$(git show --format="%H" --no-patch)"
# Prebuilt workers for core languages are always built from grpc/grpc. # Prebuilt workers for core languages are always built from grpc/grpc.
if [[ "${KOKORO_GITHUB_COMMIT_URL%/*}" == "https://github.com/grpc/grpc/commit" ]]; then if [[ "${KOKORO_GITHUB_COMMIT_URL%/*}" == "https://github.com/grpc/grpc/commit" ]]; then
GRPC_CORE_COMMIT="${KOKORO_GIT_COMMIT}" GRPC_CORE_COMMIT="${KOKORO_GIT_COMMIT}"
else else
GRPC_CORE_COMMIT="$(git ls-remote -h "https://github.com/${GRPC_CORE_REPO}.git" "${GRPC_CORE_GITREF}" | cut -f1)" GRPC_CORE_COMMIT="$(git ls-remote -h "https://github.com/${GRPC_CORE_REPO}.git" "${GRPC_CORE_GITREF}" | cut -f1)"
fi fi
GRPC_DOTNET_COMMIT="$(git ls-remote "https://github.com/${GRPC_DOTNET_REPO}.git" "${GRPC_DOTNET_GITREF}" | cut -f1)" GRPC_DOTNET_COMMIT="$(git ls-remote "https://github.com/${GRPC_DOTNET_REPO}.git" "${GRPC_DOTNET_GITREF}" | cut -f1)"
@ -94,76 +93,109 @@ popd
# Build test configurations. # Build test configurations.
buildConfigs() { buildConfigs() {
local -r pool="$1" local -r pool="$1"
local -r table="$2" local -r table="$2"
shift 2 shift 2
tools/run_tests/performance/loadtest_config.py "$@" \ tools/run_tests/performance/loadtest_config.py "$@" \
-t ./tools/run_tests/performance/templates/loadtest_template_prebuilt_all_languages.yaml \ -t ./tools/run_tests/performance/templates/loadtest_template_prebuilt_all_languages.yaml \
-s driver_pool="${DRIVER_POOL}" -s driver_image= \ -s driver_pool="${DRIVER_POOL}" -s driver_image= \
-s client_pool="${pool}" -s server_pool="${pool}" \ -s client_pool="${pool}" -s server_pool="${pool}" \
-s big_query_table="${table}" -s timeout_seconds=900 \ -s big_query_table="${table}" -s timeout_seconds=900 \
-s prebuilt_image_prefix="${PREBUILT_IMAGE_PREFIX}" \ -s prebuilt_image_prefix="${PREBUILT_IMAGE_PREFIX}" \
-s prebuilt_image_tag="${UNIQUE_IDENTIFIER}" \ -s prebuilt_image_tag="${UNIQUE_IDENTIFIER}" \
-a ci_buildNumber="${KOKORO_BUILD_NUMBER}" \ -a ci_buildNumber="${KOKORO_BUILD_NUMBER}" \
-a ci_buildUrl="${CLOUD_LOGGING_URL}" \ -a ci_buildUrl="${CLOUD_LOGGING_URL}" \
-a ci_jobName="${KOKORO_JOB_NAME}" \ -a ci_jobName="${KOKORO_JOB_NAME}" \
-a ci_gitCommit="${GRPC_COMMIT}" \ -a ci_gitCommit="${GRPC_COMMIT}" \
-a ci_gitCommit_core="${GRPC_CORE_COMMIT}" \ -a ci_gitCommit_core="${GRPC_CORE_COMMIT}" \
-a ci_gitCommit_dotnet="${GRPC_DOTNET_COMMIT}" \ -a ci_gitCommit_dotnet="${GRPC_DOTNET_COMMIT}" \
-a ci_gitCommit_go="${GRPC_GO_COMMIT}" \ -a ci_gitCommit_go="${GRPC_GO_COMMIT}" \
-a ci_gitCommit_java="${GRPC_JAVA_COMMIT}" \ -a ci_gitCommit_java="${GRPC_JAVA_COMMIT}" \
-a ci_gitActualCommit="${KOKORO_GIT_COMMIT}" \ -a ci_gitActualCommit="${KOKORO_GIT_COMMIT}" \
--prefix="${LOAD_TEST_PREFIX}" -u "${UNIQUE_IDENTIFIER}" -u "${pool}" \ --prefix="${LOAD_TEST_PREFIX}" -u "${UNIQUE_IDENTIFIER}" -u "${pool}" \
-a pool="${pool}" --category=scalable \ -a pool="${pool}" --category=scalable \
--allow_client_language=c++ --allow_server_language=c++ \ --allow_client_language=c++ --allow_server_language=c++ \
--allow_server_language=node \ --allow_server_language=node \
-o "loadtest_with_prebuilt_workers_${pool}.yaml" -o "loadtest_with_prebuilt_workers_${pool}.yaml"
} }
# Add languages # List all languages.
declare -A useLanguage=(
[c++]=1
[dotnet]=1
[go]=1
[java]=1
[node]=1
[ruby]=1
)
# Disable specific languages.
declare -a disabledLanguages=(
# Add a language here to disable it.
dotnet
)
for language in "${disabledLanguages[@]}"; do
unset "useLanguage[${language}]"
done
# Add arguments for languages.
declare -a configLangArgs8core=() declare -a configLangArgs8core=()
declare -a configLangArgs32core=() declare -a configLangArgs32core=()
declare -a runnerLangArgs=() declare -a runnerLangArgs=()
# c++ # c++
configLangArgs8core+=( -l c++ ) if [[ -v "useLanguage[c++]" ]]; then
configLangArgs32core+=( -l c++ ) configLangArgs8core+=(-l c++)
runnerLangArgs+=( -l "cxx:${GRPC_CORE_REPO}:${GRPC_CORE_COMMIT}" ) configLangArgs32core+=(-l c++)
runnerLangArgs+=(-l "cxx:${GRPC_CORE_REPO}:${GRPC_CORE_COMMIT}")
fi
# dotnet # dotnet
# configLangArgs8core+=( -l dotnet ) if [[ -v "useLanguage[dotnet]" ]]; then
# configLangArgs32core+=( -l dotnet ) configLangArgs8core+=(-l dotnet)
# runnerLangArgs+=( -l "dotnet:${GRPC_DOTNET_REPO}:${GRPC_DOTNET_COMMIT}" ) configLangArgs32core+=(-l dotnet)
runnerLangArgs+=(-l "dotnet:${GRPC_DOTNET_REPO}:${GRPC_DOTNET_COMMIT}")
fi
# # go # go
configLangArgs8core+=( -l go ) if [[ -v "useLanguage[go]" ]]; then
configLangArgs32core+=( -l go ) configLangArgs8core+=(-l go)
runnerLangArgs+=( -l "go:${GRPC_GO_REPO}:${GRPC_GO_COMMIT}" ) configLangArgs32core+=(-l go)
runnerLangArgs+=(-l "go:${GRPC_GO_REPO}:${GRPC_GO_COMMIT}")
fi
# java # java
configLangArgs8core+=( -l java ) if [[ -v "useLanguage[java]" ]]; then
configLangArgs32core+=( -l java ) configLangArgs8core+=(-l java)
runnerLangArgs+=( -l "java:${GRPC_JAVA_REPO}:${GRPC_JAVA_COMMIT}" ) configLangArgs32core+=(-l java)
runnerLangArgs+=(-l "java:${GRPC_JAVA_REPO}:${GRPC_JAVA_COMMIT}")
fi
# node # node
configLangArgs8core+=( -l node ) # 8-core only. if [[ -v "useLanguage[node]" ]]; then
runnerLangArgs+=( -l "node:${GRPC_NODE_REPO}:${GRPC_NODE_COMMIT}" ) configLangArgs8core+=(-l node) # 8-core only.
runnerLangArgs+=(-l "node:${GRPC_NODE_REPO}:${GRPC_NODE_COMMIT}")
fi
# python # python
configLangArgs8core+=( -l python ) # 8-core only. if [[ -v "useLanguage[python]" ]]; then
runnerLangArgs+=( -l "python:${GRPC_CORE_REPO}:${GRPC_CORE_COMMIT}" ) configLangArgs8core+=(-l python) # 8-core only.
runnerLangArgs+=(-l "python:${GRPC_CORE_REPO}:${GRPC_CORE_COMMIT}")
fi
# ruby # ruby
configLangArgs8core+=( -l ruby ) # 8-core only. if [[ -v "useLanguage[ruby]" ]]; then
runnerLangArgs+=( -l "ruby:${GRPC_CORE_REPO}:${GRPC_CORE_COMMIT}" ) configLangArgs8core+=(-l ruby) # 8-core only.
runnerLangArgs+=(-l "ruby:${GRPC_CORE_REPO}:${GRPC_CORE_COMMIT}")
fi
buildConfigs "${WORKER_POOL_8CORE}" "${BIGQUERY_TABLE_8CORE}" "${configLangArgs8core[@]}" buildConfigs "${WORKER_POOL_8CORE}" "${BIGQUERY_TABLE_8CORE}" "${configLangArgs8core[@]}"
buildConfigs "${WORKER_POOL_32CORE}" "${BIGQUERY_TABLE_32CORE}" "${configLangArgs32core[@]}" buildConfigs "${WORKER_POOL_32CORE}" "${BIGQUERY_TABLE_32CORE}" "${configLangArgs32core[@]}"
# Delete prebuilt images on exit. # Delete prebuilt images on exit.
deleteImages() { deleteImages() {
echo "deleting images on exit" echo "deleting images on exit"
../test-infra/bin/delete_prebuilt_workers \ ../test-infra/bin/delete_prebuilt_workers \
-p "${PREBUILT_IMAGE_PREFIX}" \ -p "${PREBUILT_IMAGE_PREFIX}" \
-t "${UNIQUE_IDENTIFIER}" -t "${UNIQUE_IDENTIFIER}"
} }
@ -171,16 +203,16 @@ trap deleteImages EXIT
# Build and push prebuilt images for running tests. # Build and push prebuilt images for running tests.
time ../test-infra/bin/prepare_prebuilt_workers "${runnerLangArgs[@]}" \ time ../test-infra/bin/prepare_prebuilt_workers "${runnerLangArgs[@]}" \
-p "${PREBUILT_IMAGE_PREFIX}" \ -p "${PREBUILT_IMAGE_PREFIX}" \
-t "${UNIQUE_IDENTIFIER}" \ -t "${UNIQUE_IDENTIFIER}" \
-r "${ROOT_DIRECTORY_OF_DOCKERFILES}" -r "${ROOT_DIRECTORY_OF_DOCKERFILES}"
# Run tests. # Run tests.
time ../test-infra/bin/runner \ time ../test-infra/bin/runner \
-i "loadtest_with_prebuilt_workers_${WORKER_POOL_8CORE}.yaml" \ -i "loadtest_with_prebuilt_workers_${WORKER_POOL_8CORE}.yaml" \
-i "loadtest_with_prebuilt_workers_${WORKER_POOL_32CORE}.yaml" \ -i "loadtest_with_prebuilt_workers_${WORKER_POOL_32CORE}.yaml" \
-log-url-prefix "${LOG_URL_PREFIX}" \ -log-url-prefix "${LOG_URL_PREFIX}" \
-polling-interval 5s \ -polling-interval 5s \
-delete-successful-tests \ -delete-successful-tests \
-c "${WORKER_POOL_8CORE}:2" -c "${WORKER_POOL_32CORE}:2" \ -c "${WORKER_POOL_8CORE}:2" -c "${WORKER_POOL_32CORE}:2" \
-o "runner/sponge_log.xml" -o "runner/sponge_log.xml"

@ -18,9 +18,9 @@ set -ex
# #
# To run the benchmarks, add your experiment to the set below. # To run the benchmarks, add your experiment to the set below.
declare -a GRPC_EXPERIMENTS=( declare -a GRPC_EXPERIMENTS=(
"event_engine_listener" "event_engine_listener"
"event_engine_client" "event_engine_client"
"event_engine_client,event_engine_listener" "event_engine_client,event_engine_listener"
) )
# Enter the gRPC repo root. # Enter the gRPC repo root.
@ -43,13 +43,13 @@ gcloud auth configure-docker
# Connect to benchmarks-prod2 cluster. # Connect to benchmarks-prod2 cluster.
gcloud config set project grpc-testing gcloud config set project grpc-testing
gcloud container clusters get-credentials benchmarks-prod2 \ gcloud container clusters get-credentials benchmarks-prod2 \
--zone us-central1-b --project grpc-testing --zone us-central1-b --project grpc-testing
# Set up environment variables. # Set up environment variables.
LOAD_TEST_PREFIX="${KOKORO_BUILD_INITIATOR}" LOAD_TEST_PREFIX="${KOKORO_BUILD_INITIATOR}"
# BEGIN differentiate experimental configuration from master configuration. # BEGIN differentiate experimental configuration from master configuration.
if [[ "${KOKORO_BUILD_INITIATOR%%-*}" == kokoro ]]; then if [[ "${KOKORO_BUILD_INITIATOR%%-*}" == kokoro ]]; then
LOAD_TEST_PREFIX=kokoro LOAD_TEST_PREFIX=kokoro
fi fi
# Use the "official" BQ tables so that the measurements will show up in the # Use the "official" BQ tables so that the measurements will show up in the
# "official" public dashboard. # "official" public dashboard.
@ -64,9 +64,9 @@ ROOT_DIRECTORY_OF_DOCKERFILES="../test-infra/containers/pre_built_workers/"
GRPC_COMMIT="$(git show --format="%H" --no-patch)" GRPC_COMMIT="$(git show --format="%H" --no-patch)"
# Prebuilt workers for core languages are always built from grpc/grpc. # Prebuilt workers for core languages are always built from grpc/grpc.
if [[ "${KOKORO_GITHUB_COMMIT_URL%/*}" == "https://github.com/grpc/grpc/commit" ]]; then if [[ "${KOKORO_GITHUB_COMMIT_URL%/*}" == "https://github.com/grpc/grpc/commit" ]]; then
GRPC_CORE_COMMIT="${KOKORO_GIT_COMMIT}" GRPC_CORE_COMMIT="${KOKORO_GIT_COMMIT}"
else else
GRPC_CORE_COMMIT="$(git ls-remote -h "https://github.com/${GRPC_CORE_REPO}.git" "${GRPC_CORE_GITREF}" | cut -f1)" GRPC_CORE_COMMIT="$(git ls-remote -h "https://github.com/${GRPC_CORE_REPO}.git" "${GRPC_CORE_GITREF}" | cut -f1)"
fi fi
# Kokoro jobs run on dedicated pools. # Kokoro jobs run on dedicated pools.
@ -89,62 +89,62 @@ declare -a loadtest_files=()
# Build test configurations. # Build test configurations.
buildConfigs() { buildConfigs() {
local -r pool="$1" local -r pool="$1"
local -r base_table="$2" local -r base_table="$2"
local -r experiment="$3" local -r experiment="$3"
shift 3 shift 3
# Multiple experiments are delimited by `__` (two underscores) in BigQuery. # Multiple experiments are delimited by `__` (two underscores) in BigQuery.
SANITIZED_EXPERIMENT="${experiment//,/__}" SANITIZED_EXPERIMENT="${experiment//,/__}"
OUTFILE="loadtest_with_prebuilt_workers_${pool}_${SANITIZED_EXPERIMENT}.yaml" OUTFILE="loadtest_with_prebuilt_workers_${pool}_${SANITIZED_EXPERIMENT}.yaml"
tools/run_tests/performance/loadtest_config.py "$@" \ tools/run_tests/performance/loadtest_config.py "$@" \
-t ./tools/run_tests/performance/templates/loadtest_template_prebuilt_cxx_experiments.yaml \ -t ./tools/run_tests/performance/templates/loadtest_template_prebuilt_cxx_experiments.yaml \
-s driver_pool="${DRIVER_POOL}" -s driver_image= \ -s driver_pool="${DRIVER_POOL}" -s driver_image= \
-s client_pool="${pool}" -s server_pool="${pool}" \ -s client_pool="${pool}" -s server_pool="${pool}" \
-s big_query_table="${base_table}_${SANITIZED_EXPERIMENT}" -s timeout_seconds=900 \ -s big_query_table="${base_table}_${SANITIZED_EXPERIMENT}" -s timeout_seconds=900 \
-s prebuilt_image_prefix="${PREBUILT_IMAGE_PREFIX}" \ -s prebuilt_image_prefix="${PREBUILT_IMAGE_PREFIX}" \
-s prebuilt_image_tag="${UNIQUE_IDENTIFIER}" \ -s prebuilt_image_tag="${UNIQUE_IDENTIFIER}" \
-s grpc_experiment="${experiment}" \ -s grpc_experiment="${experiment}" \
-a ci_buildNumber="${KOKORO_BUILD_NUMBER}" \ -a ci_buildNumber="${KOKORO_BUILD_NUMBER}" \
-a ci_buildUrl="${CLOUD_LOGGING_URL}" \ -a ci_buildUrl="${CLOUD_LOGGING_URL}" \
-a ci_jobName="${KOKORO_JOB_NAME}" \ -a ci_jobName="${KOKORO_JOB_NAME}" \
-a ci_gitCommit="${GRPC_COMMIT}" \ -a ci_gitCommit="${GRPC_COMMIT}" \
-a ci_gitCommit_core="${GRPC_CORE_COMMIT}" \ -a ci_gitCommit_core="${GRPC_CORE_COMMIT}" \
-a ci_gitActualCommit="${KOKORO_GIT_COMMIT}" \ -a ci_gitActualCommit="${KOKORO_GIT_COMMIT}" \
--prefix="${LOAD_TEST_PREFIX}" -u "${UNIQUE_IDENTIFIER}" -u "${pool}" \ --prefix="${LOAD_TEST_PREFIX}" -u "${UNIQUE_IDENTIFIER}" -u "${pool}" \
-a pool="${pool}" --category=dashboard \ -a pool="${pool}" --category=dashboard \
--allow_client_language=c++ --allow_server_language=c++ \ --allow_client_language=c++ --allow_server_language=c++ \
--allow_server_language=node \ --allow_server_language=node \
-o "${OUTFILE}" -o "${OUTFILE}"
loadtest_files+=(-i "${OUTFILE}") loadtest_files+=(-i "${OUTFILE}")
} }
for experiment in "${GRPC_EXPERIMENTS[@]}"; do for experiment in "${GRPC_EXPERIMENTS[@]}"; do
buildConfigs "${WORKER_POOL_8CORE}" "${BIGQUERY_TABLE_8CORE}" "${experiment}" -l c++ buildConfigs "${WORKER_POOL_8CORE}" "${BIGQUERY_TABLE_8CORE}" "${experiment}" -l c++
buildConfigs "${WORKER_POOL_32CORE}" "${BIGQUERY_TABLE_32CORE}" "${experiment}" -l c++ buildConfigs "${WORKER_POOL_32CORE}" "${BIGQUERY_TABLE_32CORE}" "${experiment}" -l c++
done done
# Delete prebuilt images on exit. # Delete prebuilt images on exit.
deleteImages() { deleteImages() {
echo "deleting images on exit" echo "deleting images on exit"
../test-infra/bin/delete_prebuilt_workers \ ../test-infra/bin/delete_prebuilt_workers \
-p "${PREBUILT_IMAGE_PREFIX}" \ -p "${PREBUILT_IMAGE_PREFIX}" \
-t "${UNIQUE_IDENTIFIER}" -t "${UNIQUE_IDENTIFIER}"
} }
trap deleteImages EXIT trap deleteImages EXIT
# Build and push prebuilt images for running tests. # Build and push prebuilt images for running tests.
time ../test-infra/bin/prepare_prebuilt_workers \ time ../test-infra/bin/prepare_prebuilt_workers \
-l "cxx:${GRPC_CORE_REPO}:${GRPC_CORE_COMMIT}" \ -l "cxx:${GRPC_CORE_REPO}:${GRPC_CORE_COMMIT}" \
-p "${PREBUILT_IMAGE_PREFIX}" \ -p "${PREBUILT_IMAGE_PREFIX}" \
-t "${UNIQUE_IDENTIFIER}" \ -t "${UNIQUE_IDENTIFIER}" \
-r "${ROOT_DIRECTORY_OF_DOCKERFILES}" -r "${ROOT_DIRECTORY_OF_DOCKERFILES}"
# Run tests. # Run tests.
../test-infra/bin/runner \ ../test-infra/bin/runner \
${loadtest_files[@]} \ "${loadtest_files[@]}" \
-log-url-prefix "${LOG_URL_PREFIX}" \ -log-url-prefix "${LOG_URL_PREFIX}" \
-polling-interval 5s \ -polling-interval 5s \
-delete-successful-tests \ -delete-successful-tests \
-c "${WORKER_POOL_8CORE}:2" -c "${WORKER_POOL_32CORE}:2" \ -c "${WORKER_POOL_8CORE}:2" -c "${WORKER_POOL_32CORE}:2" \
-o "runner/sponge_log.xml" -o "runner/sponge_log.xml"

@ -19,7 +19,6 @@ cd "$(dirname "$0")/../../.."
source tools/internal_ci/helper_scripts/prepare_build_linux_rc source tools/internal_ci/helper_scripts/prepare_build_linux_rc
# Environment variables to select repos and branches for various repos. # Environment variables to select repos and branches for various repos.
# You can edit these lines if you want to run from a fork. # You can edit these lines if you want to run from a fork.
GRPC_CORE_REPO=grpc/grpc GRPC_CORE_REPO=grpc/grpc
@ -43,13 +42,13 @@ gcloud auth configure-docker
# Connect to benchmarks-prod2 cluster. # Connect to benchmarks-prod2 cluster.
gcloud config set project grpc-testing gcloud config set project grpc-testing
gcloud container clusters get-credentials benchmarks-prod2 \ gcloud container clusters get-credentials benchmarks-prod2 \
--zone us-central1-b --project grpc-testing --zone us-central1-b --project grpc-testing
# Set up environment variables. # Set up environment variables.
LOAD_TEST_PREFIX="${KOKORO_BUILD_INITIATOR}" LOAD_TEST_PREFIX="${KOKORO_BUILD_INITIATOR}"
# BEGIN differentiate experimental configuration from master configuration. # BEGIN differentiate experimental configuration from master configuration.
if [[ "${KOKORO_BUILD_INITIATOR%%-*}" == kokoro ]]; then if [[ "${KOKORO_BUILD_INITIATOR%%-*}" == kokoro ]]; then
LOAD_TEST_PREFIX=kokoro-test LOAD_TEST_PREFIX=kokoro-test
fi fi
BIGQUERY_TABLE_8CORE=e2e_benchmarks.experimental_results BIGQUERY_TABLE_8CORE=e2e_benchmarks.experimental_results
BIGQUERY_TABLE_32CORE=e2e_benchmarks.experimental_results_32core BIGQUERY_TABLE_32CORE=e2e_benchmarks.experimental_results_32core
@ -62,9 +61,9 @@ ROOT_DIRECTORY_OF_DOCKERFILES="../test-infra/containers/pre_built_workers/"
GRPC_COMMIT="$(git show --format="%H" --no-patch)" GRPC_COMMIT="$(git show --format="%H" --no-patch)"
# Prebuilt workers for core languages are always built from grpc/grpc. # Prebuilt workers for core languages are always built from grpc/grpc.
if [[ "${KOKORO_GITHUB_COMMIT_URL%/*}" == "https://github.com/grpc/grpc/commit" ]]; then if [[ "${KOKORO_GITHUB_COMMIT_URL%/*}" == "https://github.com/grpc/grpc/commit" ]]; then
GRPC_CORE_COMMIT="${KOKORO_GIT_COMMIT}" GRPC_CORE_COMMIT="${KOKORO_GIT_COMMIT}"
else else
GRPC_CORE_COMMIT="$(git ls-remote -h "https://github.com/${GRPC_CORE_REPO}.git" "${GRPC_CORE_GITREF}" | cut -f1)" GRPC_CORE_COMMIT="$(git ls-remote -h "https://github.com/${GRPC_CORE_REPO}.git" "${GRPC_CORE_GITREF}" | cut -f1)"
fi fi
GRPC_DOTNET_COMMIT="$(git ls-remote "https://github.com/${GRPC_DOTNET_REPO}.git" "${GRPC_DOTNET_GITREF}" | cut -f1)" GRPC_DOTNET_COMMIT="$(git ls-remote "https://github.com/${GRPC_DOTNET_REPO}.git" "${GRPC_DOTNET_GITREF}" | cut -f1)"
@ -89,75 +88,109 @@ popd
# Build test configurations. # Build test configurations.
buildConfigs() { buildConfigs() {
local -r pool="$1" local -r pool="$1"
local -r table="$2" local -r table="$2"
shift 2 shift 2
tools/run_tests/performance/loadtest_config.py "$@" \ tools/run_tests/performance/loadtest_config.py "$@" \
-t ./tools/run_tests/performance/templates/loadtest_template_prebuilt_all_languages.yaml \ -t ./tools/run_tests/performance/templates/loadtest_template_prebuilt_all_languages.yaml \
-s driver_pool="${DRIVER_POOL}" -s driver_image= \ -s driver_pool="${DRIVER_POOL}" -s driver_image= \
-s client_pool="${pool}" -s server_pool="${pool}" \ -s client_pool="${pool}" -s server_pool="${pool}" \
-s big_query_table="${table}" -s timeout_seconds=900 \ -s big_query_table="${table}" -s timeout_seconds=900 \
-s prebuilt_image_prefix="${PREBUILT_IMAGE_PREFIX}" \ -s prebuilt_image_prefix="${PREBUILT_IMAGE_PREFIX}" \
-s prebuilt_image_tag="${UNIQUE_IDENTIFIER}" \ -s prebuilt_image_tag="${UNIQUE_IDENTIFIER}" \
-a ci_buildNumber="${KOKORO_BUILD_NUMBER}" \ -a ci_buildNumber="${KOKORO_BUILD_NUMBER}" \
-a ci_buildUrl="${CLOUD_LOGGING_URL}" \ -a ci_buildUrl="${CLOUD_LOGGING_URL}" \
-a ci_jobName="${KOKORO_JOB_NAME}" \ -a ci_jobName="${KOKORO_JOB_NAME}" \
-a ci_gitCommit="${GRPC_COMMIT}" \ -a ci_gitCommit="${GRPC_COMMIT}" \
-a ci_gitCommit_core="${GRPC_CORE_COMMIT}" \ -a ci_gitCommit_core="${GRPC_CORE_COMMIT}" \
-a ci_gitCommit_dotnet="${GRPC_DOTNET_COMMIT}" \ -a ci_gitCommit_dotnet="${GRPC_DOTNET_COMMIT}" \
-a ci_gitCommit_go="${GRPC_GO_COMMIT}" \ -a ci_gitCommit_go="${GRPC_GO_COMMIT}" \
-a ci_gitCommit_java="${GRPC_JAVA_COMMIT}" \ -a ci_gitCommit_java="${GRPC_JAVA_COMMIT}" \
-a ci_gitActualCommit="${KOKORO_GIT_COMMIT}" \ -a ci_gitActualCommit="${KOKORO_GIT_COMMIT}" \
--prefix="${LOAD_TEST_PREFIX}" -u "${UNIQUE_IDENTIFIER}" -u "${pool}" \ --prefix="${LOAD_TEST_PREFIX}" -u "${UNIQUE_IDENTIFIER}" -u "${pool}" \
-a pool="${pool}" --category=scalable \ -a pool="${pool}" --category=scalable \
--allow_client_language=c++ --allow_server_language=c++ \ --allow_client_language=c++ --allow_server_language=c++ \
-o "loadtest_with_prebuilt_workers_${pool}.yaml" --allow_server_language=node \
-o "loadtest_with_prebuilt_workers_${pool}.yaml"
} }
# Add languages # List all languages.
declare -A useLanguage=(
[c++]=1
[dotnet]=1
[go]=1
[java]=1
[node]=1
[ruby]=1
)
# Disable specific languages.
declare -a disabledLanguages=(
# Add a language here to disable it.
dotnet
)
for language in "${disabledLanguages[@]}"; do
unset "useLanguage[${language}]"
done
# Add arguments for languages.
declare -a configLangArgs8core=() declare -a configLangArgs8core=()
declare -a configLangArgs32core=() declare -a configLangArgs32core=()
declare -a runnerLangArgs=() declare -a runnerLangArgs=()
# c++ # c++
configLangArgs8core+=( -l c++ ) if [[ -v "useLanguage[c++]" ]]; then
configLangArgs32core+=( -l c++ ) configLangArgs8core+=(-l c++)
runnerLangArgs+=( -l "cxx:${GRPC_CORE_REPO}:${GRPC_CORE_COMMIT}" ) configLangArgs32core+=(-l c++)
runnerLangArgs+=(-l "cxx:${GRPC_CORE_REPO}:${GRPC_CORE_COMMIT}")
fi
# dotnet # dotnet
# configLangArgs8core+=( -l dotnet ) if [[ -v "useLanguage[dotnet]" ]]; then
# configLangArgs32core+=( -l dotnet ) configLangArgs8core+=(-l dotnet)
# runnerLangArgs+=( -l "dotnet:${GRPC_DOTNET_REPO}:${GRPC_DOTNET_COMMIT}" ) configLangArgs32core+=(-l dotnet)
runnerLangArgs+=(-l "dotnet:${GRPC_DOTNET_REPO}:${GRPC_DOTNET_COMMIT}")
fi
# # go # go
configLangArgs8core+=( -l go ) if [[ -v "useLanguage[go]" ]]; then
configLangArgs32core+=( -l go ) configLangArgs8core+=(-l go)
runnerLangArgs+=( -l "go:${GRPC_GO_REPO}:${GRPC_GO_COMMIT}" ) configLangArgs32core+=(-l go)
runnerLangArgs+=(-l "go:${GRPC_GO_REPO}:${GRPC_GO_COMMIT}")
fi
# java # java
configLangArgs8core+=( -l java ) if [[ -v "useLanguage[java]" ]]; then
configLangArgs32core+=( -l java ) configLangArgs8core+=(-l java)
runnerLangArgs+=( -l "java:${GRPC_JAVA_REPO}:${GRPC_JAVA_COMMIT}" ) configLangArgs32core+=(-l java)
runnerLangArgs+=(-l "java:${GRPC_JAVA_REPO}:${GRPC_JAVA_COMMIT}")
fi
# node # node
configLangArgs8core+=( -l node ) # 8-core only. if [[ -v "useLanguage[node]" ]]; then
runnerLangArgs+=( -l "node:${GRPC_NODE_REPO}:${GRPC_NODE_COMMIT}" ) configLangArgs8core+=(-l node) # 8-core only.
runnerLangArgs+=(-l "node:${GRPC_NODE_REPO}:${GRPC_NODE_COMMIT}")
fi
# python # python
configLangArgs8core+=( -l python ) # 8-core only. if [[ -v "useLanguage[python]" ]]; then
runnerLangArgs+=( -l "python:${GRPC_CORE_REPO}:${GRPC_CORE_COMMIT}" ) configLangArgs8core+=(-l python) # 8-core only.
runnerLangArgs+=(-l "python:${GRPC_CORE_REPO}:${GRPC_CORE_COMMIT}")
fi
# ruby # ruby
configLangArgs8core+=( -l ruby ) # 8-core only. if [[ -v "useLanguage[ruby]" ]]; then
runnerLangArgs+=( -l "ruby:${GRPC_CORE_REPO}:${GRPC_CORE_COMMIT}" ) configLangArgs8core+=(-l ruby) # 8-core only.
runnerLangArgs+=(-l "ruby:${GRPC_CORE_REPO}:${GRPC_CORE_COMMIT}")
fi
buildConfigs "${WORKER_POOL_8CORE}" "${BIGQUERY_TABLE_8CORE}" "${configLangArgs8core[@]}" buildConfigs "${WORKER_POOL_8CORE}" "${BIGQUERY_TABLE_8CORE}" "${configLangArgs8core[@]}"
buildConfigs "${WORKER_POOL_32CORE}" "${BIGQUERY_TABLE_32CORE}" "${configLangArgs32core[@]}" buildConfigs "${WORKER_POOL_32CORE}" "${BIGQUERY_TABLE_32CORE}" "${configLangArgs32core[@]}"
# Delete prebuilt images on exit. # Delete prebuilt images on exit.
deleteImages() { deleteImages() {
echo "deleting images on exit" echo "deleting images on exit"
../test-infra/bin/delete_prebuilt_workers \ ../test-infra/bin/delete_prebuilt_workers \
-p "${PREBUILT_IMAGE_PREFIX}" \ -p "${PREBUILT_IMAGE_PREFIX}" \
-t "${UNIQUE_IDENTIFIER}" -t "${UNIQUE_IDENTIFIER}"
} }
@ -165,16 +198,16 @@ trap deleteImages EXIT
# Build and push prebuilt images for running tests. # Build and push prebuilt images for running tests.
time ../test-infra/bin/prepare_prebuilt_workers "${runnerLangArgs[@]}" \ time ../test-infra/bin/prepare_prebuilt_workers "${runnerLangArgs[@]}" \
-p "${PREBUILT_IMAGE_PREFIX}" \ -p "${PREBUILT_IMAGE_PREFIX}" \
-t "${UNIQUE_IDENTIFIER}" \ -t "${UNIQUE_IDENTIFIER}" \
-r "${ROOT_DIRECTORY_OF_DOCKERFILES}" -r "${ROOT_DIRECTORY_OF_DOCKERFILES}"
# Run tests. # Run tests.
time ../test-infra/bin/runner \ time ../test-infra/bin/runner \
-i "loadtest_with_prebuilt_workers_${WORKER_POOL_8CORE}.yaml" \ -i "loadtest_with_prebuilt_workers_${WORKER_POOL_8CORE}.yaml" \
-i "loadtest_with_prebuilt_workers_${WORKER_POOL_32CORE}.yaml" \ -i "loadtest_with_prebuilt_workers_${WORKER_POOL_32CORE}.yaml" \
-log-url-prefix "${LOG_URL_PREFIX}" \ -log-url-prefix "${LOG_URL_PREFIX}" \
-polling-interval 5s \ -polling-interval 5s \
-delete-successful-tests \ -delete-successful-tests \
-c "${WORKER_POOL_8CORE}:2" -c "${WORKER_POOL_32CORE}:2" \ -c "${WORKER_POOL_8CORE}:2" -c "${WORKER_POOL_32CORE}:2" \
-o "runner/sponge_log.xml" -o "runner/sponge_log.xml"

@ -27,13 +27,13 @@ gcloud auth configure-docker
# Connect to benchmarks-prod2 cluster. # Connect to benchmarks-prod2 cluster.
gcloud config set project grpc-testing gcloud config set project grpc-testing
gcloud container clusters get-credentials psm-benchmarks-performance \ gcloud container clusters get-credentials psm-benchmarks-performance \
--zone us-central1-b --project grpc-testing --zone us-central1-b --project grpc-testing
# Set up environment variables. # Set up environment variables.
LOAD_TEST_PREFIX="${KOKORO_BUILD_INITIATOR}" LOAD_TEST_PREFIX="${KOKORO_BUILD_INITIATOR}"
# BEGIN differentiate experimental configuration from master configuration. # BEGIN differentiate experimental configuration from master configuration.
if [[ "${KOKORO_BUILD_INITIATOR%%-*}" == kokoro ]]; then if [[ "${KOKORO_BUILD_INITIATOR%%-*}" == kokoro ]]; then
LOAD_TEST_PREFIX=kokoro-test LOAD_TEST_PREFIX=kokoro-test
fi fi
BIGQUERY_TABLE_8CORE=e2e_benchmarks.psm_experimental_results_8core BIGQUERY_TABLE_8CORE=e2e_benchmarks.psm_experimental_results_8core
# END differentiate experimental configuration from master configuration. # END differentiate experimental configuration from master configuration.
@ -45,9 +45,9 @@ ROOT_DIRECTORY_OF_DOCKERFILES="../test-infra/containers/pre_built_workers/"
GRPC_GITREF="$(git show --format="%H" --no-patch)" GRPC_GITREF="$(git show --format="%H" --no-patch)"
# Prebuilt workers for core languages are always built from grpc/grpc. # Prebuilt workers for core languages are always built from grpc/grpc.
if [[ "${KOKORO_GITHUB_COMMIT_URL%/*}" == "https://github.com/grpc/grpc/commit" ]]; then if [[ "${KOKORO_GITHUB_COMMIT_URL%/*}" == "https://github.com/grpc/grpc/commit" ]]; then
GRPC_CORE_GITREF="${KOKORO_GIT_COMMIT}" GRPC_CORE_GITREF="${KOKORO_GIT_COMMIT}"
else else
GRPC_CORE_GITREF="$(git ls-remote -h https://github.com/grpc/grpc.git master | cut -f1)" GRPC_CORE_GITREF="$(git ls-remote -h https://github.com/grpc/grpc.git master | cut -f1)"
fi fi
GRPC_JAVA_GITREF="$(git ls-remote -h https://github.com/grpc/grpc-java.git master | cut -f1)" GRPC_JAVA_GITREF="$(git ls-remote -h https://github.com/grpc/grpc-java.git master | cut -f1)"
# Kokoro jobs run on dedicated pools. # Kokoro jobs run on dedicated pools.
@ -75,69 +75,69 @@ PSM_IMAGE_TAG=${TEST_INFRA_VERSION}
# Build psm test configurations. # Build psm test configurations.
psmBuildConfigs() { psmBuildConfigs() {
local -r pool="$1" local -r pool="$1"
local -r table="$2" local -r table="$2"
local -r proxy_type="$3" local -r proxy_type="$3"
shift 3 shift 3
tools/run_tests/performance/loadtest_config.py "$@" \ tools/run_tests/performance/loadtest_config.py "$@" \
-t ./tools/run_tests/performance/templates/loadtest_template_psm_"${proxy_type}"_prebuilt_all_languages.yaml \ -t ./tools/run_tests/performance/templates/loadtest_template_psm_"${proxy_type}"_prebuilt_all_languages.yaml \
-s driver_pool="${DRIVER_POOL}" -s driver_image= \ -s driver_pool="${DRIVER_POOL}" -s driver_image= \
-s client_pool="${pool}" -s server_pool="${pool}" \ -s client_pool="${pool}" -s server_pool="${pool}" \
-s big_query_table="${table}" -s timeout_seconds=900 \ -s big_query_table="${table}" -s timeout_seconds=900 \
-s prebuilt_image_prefix="${PREBUILT_IMAGE_PREFIX}" \ -s prebuilt_image_prefix="${PREBUILT_IMAGE_PREFIX}" \
-s prebuilt_image_tag="${UNIQUE_IDENTIFIER}" \ -s prebuilt_image_tag="${UNIQUE_IDENTIFIER}" \
-s psm_image_prefix="${PSM_IMAGE_PREFIX}" \ -s psm_image_prefix="${PSM_IMAGE_PREFIX}" \
-s psm_image_tag="${PSM_IMAGE_TAG}" \ -s psm_image_tag="${PSM_IMAGE_TAG}" \
-a ci_buildNumber="${KOKORO_BUILD_NUMBER}" \ -a ci_buildNumber="${KOKORO_BUILD_NUMBER}" \
-a ci_buildUrl="${CLOUD_LOGGING_URL}" \ -a ci_buildUrl="${CLOUD_LOGGING_URL}" \
-a ci_jobName="${KOKORO_JOB_NAME}" \ -a ci_jobName="${KOKORO_JOB_NAME}" \
-a ci_gitCommit="${GRPC_GITREF}" \ -a ci_gitCommit="${GRPC_GITREF}" \
-a ci_gitCommit_java="${GRPC_JAVA_GITREF}" \ -a ci_gitCommit_java="${GRPC_JAVA_GITREF}" \
-a ci_gitActualCommit="${KOKORO_GIT_COMMIT}" \ -a ci_gitActualCommit="${KOKORO_GIT_COMMIT}" \
-a enablePrometheus=true \ -a enablePrometheus=true \
--prefix="${LOAD_TEST_PREFIX}" -u "${UNIQUE_IDENTIFIER}" -u "${pool}" -u "${proxy_type}"\ --prefix="${LOAD_TEST_PREFIX}" -u "${UNIQUE_IDENTIFIER}" -u "${pool}" -u "${proxy_type}" \
-a pool="${pool}" \ -a pool="${pool}" \
--category=psm \ --category=psm \
--allow_client_language=c++ --allow_server_language=c++ \ --allow_client_language=c++ --allow_server_language=c++ \
-o "psm_${proxy_type}_loadtest_with_prebuilt_workers_${pool}.yaml" -o "psm_${proxy_type}_loadtest_with_prebuilt_workers_${pool}.yaml"
} }
psmBuildConfigs "${WORKER_POOL_8CORE}" "${BIGQUERY_TABLE_8CORE}" proxied -a queue="${WORKER_POOL_8CORE}-proxied" -l c++ -l java --client_channels=8 --server_threads=16 --offered_loads 100 300 500 700 900 1000 1500 2000 2500 4000 6000 8000 10000 12000 14000 16000 18000 20000 22000 24000 26000 28000 30000 psmBuildConfigs "${WORKER_POOL_8CORE}" "${BIGQUERY_TABLE_8CORE}" proxied -a queue="${WORKER_POOL_8CORE}-proxied" -l c++ -l java --client_channels=8 --server_threads=16 --offered_loads 100 300 500 700 900 1000 1500 2000 2500 4000 6000 8000 10000 12000 14000 16000 18000 20000 22000 24000 26000 28000 30000
psmBuildConfigs "${WORKER_POOL_8CORE}" "${BIGQUERY_TABLE_8CORE}" proxyless -a queue="${WORKER_POOL_8CORE}-proxyless" -l c++ -l java --client_channels=8 --server_threads=16 --offered_loads 100 300 500 700 900 1000 1500 2000 2500 4000 6000 8000 10000 12000 14000 16000 18000 20000 22000 24000 26000 28000 30000 psmBuildConfigs "${WORKER_POOL_8CORE}" "${BIGQUERY_TABLE_8CORE}" proxyless -a queue="${WORKER_POOL_8CORE}-proxyless" -l c++ -l java --client_channels=8 --server_threads=16 --offered_loads 100 300 500 700 900 1000 1500 2000 2500 4000 6000 8000 10000 12000 14000 16000 18000 20000 22000 24000 26000 28000 30000
# Build regular test configurations. # Build regular test configurations.
buildConfigs() { buildConfigs() {
local -r pool="$1" local -r pool="$1"
local -r table="$2" local -r table="$2"
shift 2 shift 2
tools/run_tests/performance/loadtest_config.py "$@" \ tools/run_tests/performance/loadtest_config.py "$@" \
-t ./tools/run_tests/performance/templates/loadtest_template_prebuilt_all_languages.yaml \ -t ./tools/run_tests/performance/templates/loadtest_template_prebuilt_all_languages.yaml \
-s driver_pool="${DRIVER_POOL}" -s driver_image= \ -s driver_pool="${DRIVER_POOL}" -s driver_image= \
-s client_pool="${pool}" -s server_pool="${pool}" \ -s client_pool="${pool}" -s server_pool="${pool}" \
-s big_query_table="${table}" -s timeout_seconds=900 \ -s big_query_table="${table}" -s timeout_seconds=900 \
-s prebuilt_image_prefix="${PREBUILT_IMAGE_PREFIX}" \ -s prebuilt_image_prefix="${PREBUILT_IMAGE_PREFIX}" \
-s prebuilt_image_tag="${UNIQUE_IDENTIFIER}" \ -s prebuilt_image_tag="${UNIQUE_IDENTIFIER}" \
-a ci_buildNumber="${KOKORO_BUILD_NUMBER}" \ -a ci_buildNumber="${KOKORO_BUILD_NUMBER}" \
-a ci_buildUrl="${CLOUD_LOGGING_URL}" \ -a ci_buildUrl="${CLOUD_LOGGING_URL}" \
-a ci_jobName="${KOKORO_JOB_NAME}" \ -a ci_jobName="${KOKORO_JOB_NAME}" \
-a ci_gitCommit="${GRPC_GITREF}" \ -a ci_gitCommit="${GRPC_GITREF}" \
-a ci_gitCommit_java="${GRPC_JAVA_GITREF}" \ -a ci_gitCommit_java="${GRPC_JAVA_GITREF}" \
-a ci_gitActualCommit="${KOKORO_GIT_COMMIT}" \ -a ci_gitActualCommit="${KOKORO_GIT_COMMIT}" \
-a enablePrometheus=true \ -a enablePrometheus=true \
--prefix="${LOAD_TEST_PREFIX}" -u "${UNIQUE_IDENTIFIER}" -u "${pool}" \ --prefix="${LOAD_TEST_PREFIX}" -u "${UNIQUE_IDENTIFIER}" -u "${pool}" \
-a pool="${pool}" --category=psm \ -a pool="${pool}" --category=psm \
--allow_client_language=c++ --allow_server_language=c++ \ --allow_client_language=c++ --allow_server_language=c++ \
-o "regular_loadtest_with_prebuilt_workers_${pool}.yaml" -o "regular_loadtest_with_prebuilt_workers_${pool}.yaml"
} }
buildConfigs "${WORKER_POOL_8CORE}" "${BIGQUERY_TABLE_8CORE}" -a queue="${WORKER_POOL_8CORE}-regular" -l c++ -l java --client_channels=8 --server_threads=16 --offered_loads 100 300 500 700 900 1000 1500 2000 2500 4000 6000 8000 10000 12000 14000 16000 18000 20000 22000 24000 26000 28000 30000 buildConfigs "${WORKER_POOL_8CORE}" "${BIGQUERY_TABLE_8CORE}" -a queue="${WORKER_POOL_8CORE}-regular" -l c++ -l java --client_channels=8 --server_threads=16 --offered_loads 100 300 500 700 900 1000 1500 2000 2500 4000 6000 8000 10000 12000 14000 16000 18000 20000 22000 24000 26000 28000 30000
# Delete prebuilt images on exit. # Delete prebuilt images on exit.
deleteImages() { deleteImages() {
echo "deleting images on exit" echo "deleting images on exit"
../test-infra/bin/delete_prebuilt_workers \ ../test-infra/bin/delete_prebuilt_workers \
-p "${PREBUILT_IMAGE_PREFIX}" \ -p "${PREBUILT_IMAGE_PREFIX}" \
-t "${UNIQUE_IDENTIFIER}" -t "${UNIQUE_IDENTIFIER}"
} }
@ -145,22 +145,22 @@ trap deleteImages EXIT
# Build and push prebuilt images for running tests. # Build and push prebuilt images for running tests.
time ../test-infra/bin/prepare_prebuilt_workers \ time ../test-infra/bin/prepare_prebuilt_workers \
-l "cxx:${GRPC_CORE_GITREF}" \ -l "cxx:${GRPC_CORE_GITREF}" \
-l "java:${GRPC_JAVA_GITREF}" \ -l "java:${GRPC_JAVA_GITREF}" \
-p "${PREBUILT_IMAGE_PREFIX}" \ -p "${PREBUILT_IMAGE_PREFIX}" \
-t "${UNIQUE_IDENTIFIER}" \ -t "${UNIQUE_IDENTIFIER}" \
-r "${ROOT_DIRECTORY_OF_DOCKERFILES}" -r "${ROOT_DIRECTORY_OF_DOCKERFILES}"
# Run tests. # Run tests.
time ../test-infra/bin/runner \ time ../test-infra/bin/runner \
-i "psm_proxied_loadtest_with_prebuilt_workers_${WORKER_POOL_8CORE}.yaml" \ -i "psm_proxied_loadtest_with_prebuilt_workers_${WORKER_POOL_8CORE}.yaml" \
-i "psm_proxyless_loadtest_with_prebuilt_workers_${WORKER_POOL_8CORE}.yaml" \ -i "psm_proxyless_loadtest_with_prebuilt_workers_${WORKER_POOL_8CORE}.yaml" \
-i "regular_loadtest_with_prebuilt_workers_${WORKER_POOL_8CORE}.yaml" \ -i "regular_loadtest_with_prebuilt_workers_${WORKER_POOL_8CORE}.yaml" \
-log-url-prefix "${LOG_URL_PREFIX}" \ -log-url-prefix "${LOG_URL_PREFIX}" \
-annotation-key queue \ -annotation-key queue \
-polling-interval 5s \ -polling-interval 5s \
-delete-successful-tests \ -delete-successful-tests \
-c "${WORKER_POOL_8CORE}-proxied:1" \ -c "${WORKER_POOL_8CORE}-proxied:1" \
-c "${WORKER_POOL_8CORE}-proxyless:1" \ -c "${WORKER_POOL_8CORE}-proxyless:1" \
-c "${WORKER_POOL_8CORE}-regular:1" \ -c "${WORKER_POOL_8CORE}-regular:1" \
-o "runner/sponge_log.xml" -o "runner/sponge_log.xml"

Loading…
Cancel
Save