mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-29 12:14:48 +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