diff --git a/tests/metrics/network/nginx_kubernetes/nginx-network.sh b/tests/metrics/network/nginx_kubernetes/nginx-network.sh new file mode 100755 index 0000000000..1fe37e4ebd --- /dev/null +++ b/tests/metrics/network/nginx_kubernetes/nginx-network.sh @@ -0,0 +1,69 @@ +#!/bin/bash +# +# Copyright (c) 2023 Intel Corporation +# +# SPDX-License-Identifier: Apache-2.0 + +set -o pipefail + +SCRIPT_PATH=$(dirname "$(readlink -f "$0")") + +source "${SCRIPT_PATH}/../../lib/common.bash" +nginx_file=$(mktemp nginxresults.XXXXXXXXXX) +TEST_NAME="${TEST_NAME:-nginx}" + +function remove_tmp_file() { + rm -rf "${nginx_file}" +} + +trap remove_tmp_file EXIT + +function main() { + init_env + cmds=("bc" "jq" "ab") + check_cmds "${cmds[@]}" + + # Check no processes are left behind + check_processes + + wait_time=20 + sleep_time=2 + timeout="20s" + + deployment="nginx-deployment" + kubectl create -f "${SCRIPT_PATH}/runtimeclass_workloads/nginx-networking.yaml" + kubectl wait --for=condition=Available --timeout="${timeout}" deployment/"${deployment}" + kubectl expose deployment/"${deployment}" + ip=$(kubectl get service/nginx-deployment -o jsonpath='{.spec.clusterIP}') + + ab -n 100000 -c 100 http://"${ip}":80/ > "${nginx_file}" + metrics_json_init + rps=$(cat "${nginx_file}" | grep "Requests" | awk '{print $4}') + echo "Requests per second: ${rps}" + + metrics_json_start_array + + local json="$(cat << EOF + { + "requests": { + "Result" : ${rps}, + "Units": "rps" + } + } +EOF +)" + + metrics_json_add_array_element "$json" + metrics_json_end_array "Results" + metrics_json_save + + nginx_cleanup +} + +function nginx_cleanup() { + kubectl delete deployment "${deployment}" + kubectl delete service "${deployment}" + check_processes +} + +main "$@"