mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-28 08:17:37 +00:00
metrics: Add metrics report script
This PR adds metrics report script for kata metrics. Fixes #7782 Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
This commit is contained in:
parent
e4fb20c74a
commit
69781fc027
97
tests/metrics/report/makereport.sh
Executable file
97
tests/metrics/report/makereport.sh
Executable file
@ -0,0 +1,97 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Copyright (c) 2018-2023 Intel Corporation
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
# Take the data found in subdirectories of the metrics 'results' directory,
|
||||||
|
# and turn them into a PDF report. Use a Dockerfile containing all the tooling
|
||||||
|
# and scripts we need to do that.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
SCRIPT_PATH=$(dirname "$(readlink -f "$0")")
|
||||||
|
source "${SCRIPT_PATH}/../lib/common.bash"
|
||||||
|
|
||||||
|
IMAGE="${IMAGE:-metrics-report}"
|
||||||
|
DOCKERFILE="${SCRIPT_PATH}/report_dockerfile/Dockerfile"
|
||||||
|
|
||||||
|
HOST_INPUT_DIR="${SCRIPT_PATH}/../results"
|
||||||
|
R_ENV_FILE="${HOST_INPUT_DIR}/Env.R"
|
||||||
|
HOST_OUTPUT_DIR="${SCRIPT_PATH}/output"
|
||||||
|
|
||||||
|
GUEST_INPUT_DIR="/inputdir/"
|
||||||
|
GUEST_OUTPUT_DIR="/outputdir/"
|
||||||
|
|
||||||
|
# If in debugging mode, we also map in the scripts dir so you can
|
||||||
|
# dynamically edit and re-load them at the R prompt
|
||||||
|
HOST_SCRIPT_DIR="${SCRIPT_PATH}/report_dockerfile"
|
||||||
|
GUEST_SCRIPT_DIR="/scripts/"
|
||||||
|
|
||||||
|
setup() {
|
||||||
|
echo "Checking subdirectories"
|
||||||
|
check_subdir="$(ls -dx ${HOST_INPUT_DIR}/*/ 2> /dev/null | wc -l)"
|
||||||
|
if [ $check_subdir -eq 0 ]; then
|
||||||
|
die "No subdirs in [${HOST_INPUT_DIR}] to read results from."
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Checking Dockerfile"
|
||||||
|
check_dockerfiles_images "$IMAGE" "$DOCKERFILE"
|
||||||
|
|
||||||
|
mkdir -p "$HOST_OUTPUT_DIR" && true
|
||||||
|
|
||||||
|
echo "inputdir=\"${GUEST_INPUT_DIR}\"" > ${R_ENV_FILE}
|
||||||
|
echo "outputdir=\"${GUEST_OUTPUT_DIR}\"" >> ${R_ENV_FILE}
|
||||||
|
|
||||||
|
# A bit of a hack to get an R syntax'd list of dirs to process
|
||||||
|
# Also, need it as not host-side dir path - so short relative names
|
||||||
|
resultdirs="$(cd ${HOST_INPUT_DIR}; ls -dx */)"
|
||||||
|
resultdirslist=$(echo ${resultdirs} | sed 's/ \+/", "/g')
|
||||||
|
echo "resultdirs=c(" >> ${R_ENV_FILE}
|
||||||
|
echo " \"${resultdirslist}\"" >> ${R_ENV_FILE}
|
||||||
|
echo ")" >> ${R_ENV_FILE}
|
||||||
|
}
|
||||||
|
|
||||||
|
run() {
|
||||||
|
docker run -ti --rm -v ${HOST_INPUT_DIR}:${GUEST_INPUT_DIR} -v ${HOST_OUTPUT_DIR}:${GUEST_OUTPUT_DIR} ${extra_volumes} ${IMAGE} ${extra_command}
|
||||||
|
ls -la ${HOST_OUTPUT_DIR}/*
|
||||||
|
}
|
||||||
|
|
||||||
|
help() {
|
||||||
|
usage=$(cat << EOF
|
||||||
|
Usage: $0 [-h] [options]
|
||||||
|
Description:
|
||||||
|
This script generates a metrics report document
|
||||||
|
from the results directory one level up in the
|
||||||
|
directory tree (../results).
|
||||||
|
Options:
|
||||||
|
-d, Run in debug (interactive) mode
|
||||||
|
-h, Print this help
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
echo "$usage"
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
|
||||||
|
local OPTIND
|
||||||
|
while getopts "d" opt;do
|
||||||
|
case ${opt} in
|
||||||
|
d)
|
||||||
|
# In debug mode, run a shell instead of the default report generation
|
||||||
|
extra_command="bash"
|
||||||
|
extra_volumes="-v ${HOST_SCRIPT_DIR}:${GUEST_SCRIPT_DIR}"
|
||||||
|
;;
|
||||||
|
?)
|
||||||
|
# parse failure
|
||||||
|
help
|
||||||
|
die "Failed to parse arguments"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
shift $((OPTIND-1))
|
||||||
|
|
||||||
|
setup
|
||||||
|
run
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
Loading…
Reference in New Issue
Block a user