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. 74
      tools/internal_ci/linux/grpc_e2e_performance_gke.sh
  2. 2
      tools/internal_ci/linux/grpc_e2e_performance_gke_cxx_experiments_framework.sh
  3. 75
      tools/internal_ci/linux/grpc_e2e_performance_gke_experiment.sh
  4. 2
      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
@ -120,42 +119,75 @@ buildConfigs() {
-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[@]}"

@ -142,7 +142,7 @@ time ../test-infra/bin/prepare_prebuilt_workers \
# 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 \

@ -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
@ -111,45 +110,79 @@ buildConfigs() {
--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 \
-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[@]}"

@ -96,7 +96,7 @@ psmBuildConfigs() {
-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++ \

Loading…
Cancel
Save