From ea39c105e238c08d96d43fd58fb544fd9a9d2064 Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Thu, 18 Apr 2024 10:10:24 -0700 Subject: [PATCH 01/22] test: add benchmarking functions to cse_helpers.sh --- .../linux/cloud-init/artifacts/cse_helpers.sh | 82 ++++++++++++++----- 1 file changed, 60 insertions(+), 22 deletions(-) diff --git a/parts/linux/cloud-init/artifacts/cse_helpers.sh b/parts/linux/cloud-init/artifacts/cse_helpers.sh index 34f13e6da0c..be788d73e16 100755 --- a/parts/linux/cloud-init/artifacts/cse_helpers.sh +++ b/parts/linux/cloud-init/artifacts/cse_helpers.sh @@ -380,39 +380,77 @@ should_skip_nvidia_drivers() { } start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) + set +x + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + set -x } -stop_watch () { +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi +} + +capture_benchmarks () { + set +x + + if [ ! -f /opt/azure/perf/jsonBenchmarks.json ]; then + sudo mkdir -p /opt/azure/perf + echo '[]' > /opt/azure/perf/jsonBenchmarks.json + chmod 755 /opt/azure/perf/jsonBenchmarks.json + fi + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) - - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} + + if [[ "$is_final_section" == true ]]; then -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" /opt/azure/perf/jsonBenchmarks.json > tmp.json && mv tmp.json /opt/azure/perf/jsonBenchmarks.json + fi + set -x } #HELPERSEOF \ No newline at end of file From f018921223e3115f566aa36b8b43ce12e8609587 Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Thu, 18 Apr 2024 10:11:54 -0700 Subject: [PATCH 02/22] test: add benchmarking variables to install scripts --- vhdbuilder/packer/install-dependencies.sh | 7 ++++--- vhdbuilder/packer/post-install-dependencies.sh | 7 ++++--- vhdbuilder/packer/pre-install-dependencies.sh | 7 ++++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/vhdbuilder/packer/install-dependencies.sh b/vhdbuilder/packer/install-dependencies.sh index 20e2da02011..9e0a7f9fb8f 100644 --- a/vhdbuilder/packer/install-dependencies.sh +++ b/vhdbuilder/packer/install-dependencies.sh @@ -1,12 +1,13 @@ #!/bin/bash script_start_timestamp=$(date +%H:%M:%S) -start_timestamp=$(date +%H:%M:%S) +section_start_timestamp=$(date +%H:%M:%S) -capture_script_start=$(date +%s) -capture_time=$(date +%s) +script_start_stopwatch=$(date +%s) +section_start_stopwatch=$(date +%s) declare -a benchmarks=() +declare -a jsonBenchmarks=() OS=$(sort -r /etc/*-release | gawk 'match($0, /^(ID_LIKE=(coreos)|ID=(.*))$/, a) { print toupper(a[2] a[3]); exit }') OS_VERSION=$(sort -r /etc/*-release | gawk 'match($0, /^(VERSION_ID=(.*))$/, a) { print toupper(a[2] a[3]); exit }' | tr -d '"') diff --git a/vhdbuilder/packer/post-install-dependencies.sh b/vhdbuilder/packer/post-install-dependencies.sh index 0e3f4b067c3..0bb80e1ce59 100644 --- a/vhdbuilder/packer/post-install-dependencies.sh +++ b/vhdbuilder/packer/post-install-dependencies.sh @@ -1,12 +1,13 @@ #!/bin/bash script_start_timestamp=$(date +%H:%M:%S) -start_timestamp=$(date +%H:%M:%S) +section_start_timestamp=$(date +%H:%M:%S) -capture_script_start=$(date +%s) -capture_time=$(date +%s) +script_start_stopwatch=$(date +%s) +section_start_stopwatch=$(date +%s) declare -a benchmarks=() +declare -a jsonBenchmarks=() OS=$(sort -r /etc/*-release | gawk 'match($0, /^(ID_LIKE=(coreos)|ID=(.*))$/, a) { print toupper(a[2] a[3]); exit }') UBUNTU_OS_NAME="UBUNTU" diff --git a/vhdbuilder/packer/pre-install-dependencies.sh b/vhdbuilder/packer/pre-install-dependencies.sh index 26f72ab00d8..76b3a8137b4 100644 --- a/vhdbuilder/packer/pre-install-dependencies.sh +++ b/vhdbuilder/packer/pre-install-dependencies.sh @@ -1,12 +1,13 @@ #!/bin/bash script_start_timestamp=$(date +%H:%M:%S) -start_timestamp=$(date +%H:%M:%S) +section_start_timestamp=$(date +%H:%M:%S) -capture_script_start=$(date +%s) -capture_time=$(date +%s) +script_start_stopwatch=$(date +%s) +section_start_stopwatch=$(date +%s) declare -a benchmarks=() +declare -a jsonBenchmarks=() OS=$(sort -r /etc/*-release | gawk 'match($0, /^(ID_LIKE=(coreos)|ID=(.*))$/, a) { print toupper(a[2] a[3]); exit }') OS_VERSION=$(sort -r /etc/*-release | gawk 'match($0, /^(VERSION_ID=(.*))$/, a) { print toupper(a[2] a[3]); exit }' | tr -d '"') From 30637681224e8be99dc211e0947e0f04eb8b09c6 Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Thu, 18 Apr 2024 10:14:18 -0700 Subject: [PATCH 03/22] test: download jsonBenchmarks.json to agent vm and rm from packer vm --- vhdbuilder/packer/vhd-image-builder-arm64-gen2.json | 12 ++++++++++++ vhdbuilder/packer/vhd-image-builder-base.json | 12 ++++++++++++ .../packer/vhd-image-builder-mariner-arm64.json | 12 ++++++++++++ vhdbuilder/packer/vhd-image-builder-mariner.json | 12 ++++++++++++ 4 files changed, 48 insertions(+) diff --git a/vhdbuilder/packer/vhd-image-builder-arm64-gen2.json b/vhdbuilder/packer/vhd-image-builder-arm64-gen2.json index 5dec6d90490..0a4d7c025b1 100644 --- a/vhdbuilder/packer/vhd-image-builder-arm64-gen2.json +++ b/vhdbuilder/packer/vhd-image-builder-arm64-gen2.json @@ -624,6 +624,18 @@ "source": "/opt/azure/vhd-install.complete", "destination": "release-notes.txt" }, + { + "type": "file", + "direction": "download", + "source": "/opt/azure/perf/jsonBenchmarks.json", + "destination": "jsonBenchmarks.json" + }, + { + "type": "shell", + "inline": [ + "sudo rm /opt/azure/perf/jsonBenchmarks.json" + ] + }, { "type": "shell", "inline": [ diff --git a/vhdbuilder/packer/vhd-image-builder-base.json b/vhdbuilder/packer/vhd-image-builder-base.json index 8849308e0aa..179bbe9232d 100644 --- a/vhdbuilder/packer/vhd-image-builder-base.json +++ b/vhdbuilder/packer/vhd-image-builder-base.json @@ -632,6 +632,18 @@ "source": "/opt/azure/vhd-install.complete", "destination": "release-notes.txt" }, + { + "type": "file", + "direction": "download", + "source": "/opt/azure/perf/jsonBenchmarks.json", + "destination": "jsonBenchmarks.json" + }, + { + "type": "shell", + "inline": [ + "sudo rm /opt/azure/perf/jsonBenchmarks.json" + ] + }, { "type": "shell", "inline": [ diff --git a/vhdbuilder/packer/vhd-image-builder-mariner-arm64.json b/vhdbuilder/packer/vhd-image-builder-mariner-arm64.json index f6a7f9e854f..7927097cc75 100644 --- a/vhdbuilder/packer/vhd-image-builder-mariner-arm64.json +++ b/vhdbuilder/packer/vhd-image-builder-mariner-arm64.json @@ -591,6 +591,18 @@ "source": "/opt/azure/vhd-install.complete", "destination": "release-notes.txt" }, + { + "type": "file", + "direction": "download", + "source": "/opt/azure/perf/jsonBenchmarks.json", + "destination": "jsonBenchmarks.json" + }, + { + "type": "shell", + "inline": [ + "sudo rm /opt/azure/perf/jsonBenchmarks.json" + ] + }, { "type": "shell", "inline": [ diff --git a/vhdbuilder/packer/vhd-image-builder-mariner.json b/vhdbuilder/packer/vhd-image-builder-mariner.json index 21c3aab0a02..c195958ef50 100644 --- a/vhdbuilder/packer/vhd-image-builder-mariner.json +++ b/vhdbuilder/packer/vhd-image-builder-mariner.json @@ -618,6 +618,18 @@ "source": "/opt/azure/vhd-install.complete", "destination": "release-notes.txt" }, + { + "type": "file", + "direction": "download", + "source": "/opt/azure/perf/jsonBenchmarks.json", + "destination": "jsonBenchmarks.json" + }, + { + "type": "shell", + "inline": [ + "sudo rm /opt/azure/perf/jsonBenchmarks.json" + ] + }, { "type": "shell", "inline": [ From 7b6de8568adc5683a7ab7bd17324c6b1eb967fc7 Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Thu, 18 Apr 2024 10:20:45 -0700 Subject: [PATCH 04/22] test: publish build performance data, fix capitalization nits --- .../templates/.builder-release-template.yaml | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/.pipelines/templates/.builder-release-template.yaml b/.pipelines/templates/.builder-release-template.yaml index a66e6c4f375..5bea853044a 100644 --- a/.pipelines/templates/.builder-release-template.yaml +++ b/.pipelines/templates/.builder-release-template.yaml @@ -39,7 +39,7 @@ steps: - bash: | pwd ls -R - displayName: show Directory + displayName: Show Directory - bash: | set -x GOPATH="$(go env GOPATH)" @@ -49,7 +49,7 @@ steps: GO111MODULE=on go install cuelang.org/go/cmd/cue@latest popd cue export ./schemas/manifest.cue > ./parts/linux/cloud-init/artifacts/manifest.json - displayName: setup cue + displayName: Setup Cue - bash: | SKU_NAME=${OS_VERSION} && \ if [[ "${HYPERV_GENERATION,,}" == "v2" ]]; then SKU_NAME="${SKU_NAME}gen2"; fi && \ @@ -107,7 +107,7 @@ steps: -e LINUX_MSI_RESOURCE_ID=${AZURE_MSI_RESOURCE_ID} \ ${CONTAINER_IMAGE} make -f packer.mk run-packer retryCountOnTaskFailure: 3 - displayName: Building VHD + displayName: Build VHD - script: | OS_DISK_URI="$(cat packer-output | grep "OSDiskUri:" | cut -d " " -f 2)" && \ MANAGED_SIG_ID="$(cat packer-output | grep "ManagedImageSharedImageGalleryId:" | cut -d " " -f 2)" && \ @@ -144,12 +144,18 @@ steps: inputs: artifactName: 'vhd-release-notes-${{ parameters.artifactName }}' targetPath: 'release-notes.txt' - displayName: publish release notes + displayName: Publish Release Notes - task: PublishPipelineArtifact@0 inputs: artifactName: 'vhd-image-bom-${{ parameters.artifactName }}' targetPath: 'image-bom.json' - displayName: publish container image list + displayName: Publish Container Image List + condition: and(succeeded(), eq(variables.DRY_RUN, 'False')) + - task: PublishPipelineArtifact@1 + inputs: + artifactName: 'build-performance-data-${{ parameters.artifactName }}' + targetPath: 'jsonBenchmarks.json' + displayName: Publish Build Performance Data condition: and(succeeded(), eq(variables.DRY_RUN, 'False')) - bash: | echo MODE=$(MODE) && \ @@ -180,7 +186,7 @@ steps: -e PRIVATE_PACKAGES_URL="${PRIVATE_PACKAGES_URL}" \ -e LINUX_MSI_RESOURCE_ID=${AZURE_MSI_RESOURCE_ID} \ ${CONTAINER_IMAGE} make -f packer.mk cleanup - displayName: Clean Up Packer Generated Resources + displayName: Clean Up Packer-generated Resources condition: always() - bash: | echo MODE=$(MODE) && \ @@ -234,7 +240,7 @@ steps: -e ARCHITECTURE=${ARCHITECTURE} \ -e IMAGE_VERSION=${IMAGE_VERSION} \ ${CONTAINER_IMAGE} make -f packer.mk generate-sas - displayName: Getting Shared Access Signature URI + displayName: Get Shared Access Signature URI condition: and(succeeded(), eq(variables.DRY_RUN, 'False')) - task: PublishPipelineArtifact@1 inputs: From 9de5432ac3e6177572fe48f02225b61cda5f2baf Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Thu, 18 Apr 2024 10:47:40 -0700 Subject: [PATCH 05/22] test: modify benchmarking workflow --- vhdbuilder/packer/install-dependencies.sh | 30 +++++++++---------- .../packer/post-install-dependencies.sh | 20 ++++++------- vhdbuilder/packer/pre-install-dependencies.sh | 26 +++++++--------- 3 files changed, 34 insertions(+), 42 deletions(-) diff --git a/vhdbuilder/packer/install-dependencies.sh b/vhdbuilder/packer/install-dependencies.sh index 9e0a7f9fb8f..3a5319a1bcd 100644 --- a/vhdbuilder/packer/install-dependencies.sh +++ b/vhdbuilder/packer/install-dependencies.sh @@ -28,7 +28,7 @@ COMPONENTS_FILEPATH=/opt/azure/components.json echo "" echo "Components downloaded in this VHD build (some of the below components might get deleted during cluster provisioning if they are not needed):" >> ${VHD_LOGS_FILEPATH} -stop_watch $capture_time "Declare Variables / Configure Environment" false +capture_benchmarks false "declare_variables_and_source_packer_files" start_watch echo "Logging the kernel after purge and reinstall + reboot: $(uname -r)" @@ -54,7 +54,7 @@ APT::Periodic::AutocleanInterval "0"; APT::Periodic::Unattended-Upgrade "0"; EOF fi -stop_watch $capture_time "Purge and Re-install Ubuntu" false +capture_benchmarks false "purge_and_reinstall_ubuntu" start_watch # If the IMG_SKU does not contain "minimal", installDeps normally @@ -84,7 +84,7 @@ SystemMaxUse=1G RuntimeMaxUse=1G ForwardToSyslog=yes EOF -stop_watch $capture_time "Install Dependencies" false +capture_benchmarks false "install_dependencies" start_watch if [[ ${CONTAINER_RUNTIME:-""} != "containerd" ]]; then @@ -112,7 +112,7 @@ if [[ "${UBUNTU_RELEASE}" == "18.04" || "${UBUNTU_RELEASE}" == "20.04" || "${UBU overrideNetworkConfig || exit 1 disableNtpAndTimesyncdInstallChrony || exit 1 fi -stop_watch $capture_time "Check Container Runtime / Network Configurations" false +capture_benchmarks false "check_container_runtime_and_network_configurations" start_watch CONTAINERD_SERVICE_DIR="/etc/systemd/system/containerd.service.d" @@ -169,7 +169,7 @@ containerd_version="$(echo "$installed_version" | cut -d- -f1)" containerd_patch_version="$(echo "$installed_version" | cut -d- -f2)" installStandaloneContainerd ${containerd_version} ${containerd_patch_version} echo " - [installed] containerd v${containerd_version}-${containerd_patch_version}" >> ${VHD_LOGS_FILEPATH} -stop_watch $capture_time "Create Containerd Service Directory, Download Shims, Configure Runtime and Network" false +capture_benchmarks false "create_containerd_service_directory_download_shims_configure_runtime_and_network" start_watch DOWNLOAD_FILES=$(jq ".DownloadFiles" $COMPONENTS_FILEPATH | jq .[] --monochrome-output --compact-output) @@ -191,7 +191,7 @@ for CRICTL_VERSION in ${CRICTL_VERSIONS}; do downloadCrictl ${CRICTL_VERSION} echo " - crictl version ${CRICTL_VERSION}" >> ${VHD_LOGS_FILEPATH} done -stop_watch $capture_time "Download Components, Determine / Download crictl Version" false +capture_benchmarks false "download_crictl" start_watch installAndConfigureArtifactStreaming() { @@ -230,7 +230,7 @@ downloadTeleportdPlugin ${TELEPORTD_PLUGIN_DOWNLOAD_URL} "0.8.0" INSTALLED_RUNC_VERSION=$(runc --version | head -n1 | sed 's/runc version //') echo " - runc version ${INSTALLED_RUNC_VERSION}" >> ${VHD_LOGS_FILEPATH} -stop_watch $capture_time "Artifact Streaming, Download Containerd Plugins" false +capture_benchmarks false "artifact_streaming_and_download_teleportd" start_watch if [[ $OS == $UBUNTU_OS_NAME && $(isARM64) != 1 ]]; then # no ARM64 SKU with GPU now @@ -266,7 +266,7 @@ cat << EOF >> ${VHD_LOGS_FILEPATH} EOF echo "${CONTAINER_RUNTIME} images pre-pulled:" >> ${VHD_LOGS_FILEPATH} -stop_watch $capture_time "Pull NVIDIA driver image (mcr), Start installBcc subshell" false +capture_benchmarks false "pull_nvidia_driver_image(mcr)_and_run_installBcc_in_subshell" start_watch string_replace() { @@ -314,7 +314,7 @@ watcherStaticImg=${watcherBaseImg//\*/static} # can't use cliTool because crictl doesn't support retagging. retagContainerImage "ctr" ${watcherFullImg} ${watcherStaticImg} -stop_watch $capture_time "Pull and Re-tag Container Images" false +capture_benchmarks false "pull_and_retag_container_images" start_watch # doing this at vhd allows CSE to be faster with just mv @@ -377,7 +377,7 @@ done if [[ $OS == $UBUNTU_OS_NAME || ( $OS == $MARINER_OS_NAME && $OS_VERSION == "2.0" ) ]]; then systemctlEnableAndStart ipv6_nftables || exit 1 fi -stop_watch $capture_time "Configure Networking and Interface" false +capture_benchmarks false "configure_networking_and_interface" start_watch if [[ $OS == $UBUNTU_OS_NAME && $(isARM64) != 1 ]]; then # no ARM64 SKU with GPU now @@ -406,7 +406,7 @@ if grep -q "fullgpu" <<< "$FEATURE_FLAGS" && grep -q "gpudaemon" <<< "$FEATURE_F systemctlEnableAndStart nvidia-device-plugin || exit 1 fi fi -stop_watch $capture_time "GPU Device plugin" false +capture_benchmarks false "download_gpu_device_plugin" start_watch # Kubelet credential provider plugins @@ -452,7 +452,7 @@ for KUBE_PROXY_IMAGE_VERSION in ${KUBE_PROXY_IMAGE_VERSIONS}; do # shellcheck disable=SC2181 echo " - ${CONTAINER_IMAGE}" >>${VHD_LOGS_FILEPATH} done -stop_watch $capture_time "Configure Telemetry, Create Logging Directory, Kube-proxy" false +capture_benchmarks false "configure_telemetry_create_logging_directory_and_download_kube-proxy_images" start_watch # download kubernetes package from the given URL using MSI for auth for azcopy @@ -518,8 +518,6 @@ for PATCHED_KUBE_BINARY_VERSION in ${KUBE_BINARY_VERSIONS}; do done rm -f ./azcopy # cleanup immediately after usage will return in two downloads -stop_watch $capture_time "Download and Process Kubernetes Packages / Extract Binaries" false - +capture_benchmarks false "download_kubernetes_binaries" echo "install-dependencies step completed successfully" -stop_watch $capture_script_start "install-dependencies.sh" true -show_benchmarks +capture_benchmarks true "install_dependencies.sh" diff --git a/vhdbuilder/packer/post-install-dependencies.sh b/vhdbuilder/packer/post-install-dependencies.sh index 0bb80e1ce59..4cd7f5338ad 100644 --- a/vhdbuilder/packer/post-install-dependencies.sh +++ b/vhdbuilder/packer/post-install-dependencies.sh @@ -18,7 +18,7 @@ source /home/packer/provision_source.sh source /home/packer/provision_source_distro.sh source /home/packer/tool_installs.sh source /home/packer/tool_installs_distro.sh -stop_watch $capture_time "Determine OS / Set Comparison / Execute home/packer files" false +capture_benchmarks false "determine_os_and_source_packer_files" start_watch CPU_ARCH=$(getCPUArch) #amd64 or arm64 @@ -26,7 +26,7 @@ VHD_LOGS_FILEPATH=/opt/azure/vhd-install.complete # Hardcode the desired size of the OS disk so we don't accidently rely on extra disk space MAX_BLOCK_COUNT=30298176 # 30 GB -stop_watch $capture_time "Set Variables" false +capture_benchmarks false "set_variables" start_watch if [[ $OS == $UBUNTU_OS_NAME ]]; then @@ -53,7 +53,7 @@ if [[ $OS == $UBUNTU_OS_NAME ]]; then detachAndCleanUpUA fi fi -stop_watch $capture_time "Log / Detach UA and Clean-up" false +capture_benchmarks false "log_and_detach_ua" start_watch # shellcheck disable=SC2129 @@ -64,7 +64,7 @@ ls -ltr /usr/local/bin/* >> ${VHD_LOGS_FILEPATH} ls -ltr /dev/* | grep sgx >> ${VHD_LOGS_FILEPATH} echo -e "=== Installed Packages Begin\n$(listInstalledPackages)\n=== Installed Packages End" >> ${VHD_LOGS_FILEPATH} -stop_watch $capture_time "List Installed Packages" false +capture_benchmarks false "list_installed_packages" start_watch echo "Disk usage:" >> ${VHD_LOGS_FILEPATH} @@ -77,7 +77,7 @@ usage=$(awk -v used=${used_blocks} -v capacity=${MAX_BLOCK_COUNT} 'BEGIN{print ( usage=${usage%.*} [ ${usage} -ge 99 ] && echo "ERROR: root partition on OS device (${os_device}) already passed 99% of the 30GB cap!" && exit 1 [ ${usage} -ge 75 ] && echo "WARNING: root partition on OS device (${os_device}) already passed 75% of the 30GB cap!" -stop_watch $capture_time "Determine Disk Usage" false +capture_benchmarks false "determine_disk_usage" start_watch echo -e "=== os-release Begin" >> ${VHD_LOGS_FILEPATH} @@ -97,14 +97,14 @@ tee -a ${VHD_LOGS_FILEPATH} < /proc/version echo "Container runtime: ${CONTAINER_RUNTIME}" echo "FIPS enabled: ${ENABLE_FIPS}" } >> ${VHD_LOGS_FILEPATH} -stop_watch $capture_time "Write Logs" false +capture_benchmarks false "write_logs" start_watch if [[ $(isARM64) != 1 ]]; then # no asc-baseline-1.1.0-268.arm64.deb installAscBaseline fi -stop_watch $capture_time "Instal Asc Baseline" false +capture_benchmarks false "install_asc_baseline" start_watch if [[ ${UBUNTU_RELEASE} == "18.04" || ${UBUNTU_RELEASE} == "20.04" || ${UBUNTU_RELEASE} == "22.04" ]]; then @@ -112,8 +112,6 @@ if [[ ${UBUNTU_RELEASE} == "18.04" || ${UBUNTU_RELEASE} == "20.04" || ${UBUNTU_R relinkResolvConf fi fi -stop_watch $capture_time "RelinkResolveConf" false - +capture_benchmarks false "resolve_conf" echo "post-install-dependencies step completed successfully" -stop_watch $capture_script_start "post-install-dependencies.sh" true -show_benchmarks \ No newline at end of file +capture_benchmarks true "post_install_dependencies.sh" \ No newline at end of file diff --git a/vhdbuilder/packer/pre-install-dependencies.sh b/vhdbuilder/packer/pre-install-dependencies.sh index 76b3a8137b4..3c3916b7705 100644 --- a/vhdbuilder/packer/pre-install-dependencies.sh +++ b/vhdbuilder/packer/pre-install-dependencies.sh @@ -24,8 +24,6 @@ source /home/packer/provision_source_distro.sh source /home/packer/tool_installs.sh source /home/packer/tool_installs_distro.sh source /home/packer/packer_source.sh -stop_watch $capture_time "Declare Variables / Remove Comments / Execute home/packer files" false -start_watch CPU_ARCH=$(getCPUArch) #amd64 or arm64 VHD_LOGS_FILEPATH=/opt/azure/vhd-install.complete @@ -37,26 +35,26 @@ cat components.json > ${COMPONENTS_FILEPATH} cat manifest.json > ${MANIFEST_FILEPATH} cat ${THIS_DIR}/kube-proxy-images.json > ${KUBE_PROXY_IMAGES_FILEPATH} echo "Starting build on " $(date) > ${VHD_LOGS_FILEPATH} -stop_watch $capture_time "Create Post-build Test" false -start_watch if [[ $OS == $MARINER_OS_NAME ]]; then chmod 755 /opt chmod 755 /opt/azure chmod 644 ${VHD_LOGS_FILEPATH} fi -stop_watch $capture_time "Set Permissions if Mariner" false + +installJq +capture_benchmarks false "source_packer_files_declare_variables_and_set_mariner_permissions" start_watch copyPackerFiles systemctlEnableAndStart disk_queue || exit 1 -stop_watch $capture_time "Copy Packer Files" false +capture_benchmarks false "copy_packer_files" start_watch mkdir /opt/certs chmod 1666 /opt/certs systemctlEnableAndStart update_certs.path || exit 1 -stop_watch $capture_time "Make Certs Directory / Set Permissions / Update Certs" false +capture_benchmarks false "make_directory_and_update_certs" start_watch systemctlEnableAndStart ci-syslog-watcher.path || exit 1 @@ -65,17 +63,17 @@ systemctlEnableAndStart ci-syslog-watcher.service || exit 1 # enable AKS log collector echo -e "\n# Disable WALA log collection because AKS Log Collector is installed.\nLogs.Collect=n" >> /etc/waagent.conf || exit 1 systemctlEnableAndStart aks-log-collector.timer || exit 1 -stop_watch $capture_time "Start System Logs / AKS Log Collector" false +capture_benchmarks false "start_system_logs_and_aks_log_collector" start_watch # enable the modified logrotate service and remove the auto-generated default logrotate cron job if present systemctlEnableAndStart logrotate.timer || exit 1 rm -f /etc/cron.daily/logrotate -stop_watch $capture_time "Start Modified Log-rotate Service / Remove Auto-generated Service" false +capture_benchmarks false "enable_modified_log_rotate_service" start_watch systemctlEnableAndStart sync-container-logs.service || exit 1 -stop_watch $capture_time "Sync Container Logs" false +capture_benchmarks false "sync_container_logs" start_watch # First handle Mariner + FIPS @@ -113,7 +111,7 @@ else installFIPS fi fi -stop_watch $capture_time "Handle Mariner / FIPS Configurations" false +capture_benchmarks false "handle_mariner_and_fips_configurations" start_watch # Handle Azure Linux + CgroupV2 @@ -135,8 +133,6 @@ if [[ "${UBUNTU_RELEASE}" == "22.04" && "${ENABLE_FIPS,,}" != "true" ]]; then update-grub fi -stop_watch $capture_time "Handle Azure Linux / CgroupV2" false - +capture_benchmarks false "handle_azureLinux_and_cgroupV2" echo "pre-install-dependencies step finished successfully" -stop_watch $capture_script_start "pre-install-dependencies.sh" true -show_benchmarks \ No newline at end of file +capture_benchmarks true "pre_install_dependencies.sh" \ No newline at end of file From eff713caa79e2bb640a4f128960ccd84f44b6b0d Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Thu, 18 Apr 2024 10:56:57 -0700 Subject: [PATCH 06/22] chore: change file name --- .pipelines/templates/.builder-release-template.yaml | 2 +- parts/linux/cloud-init/artifacts/cse_helpers.sh | 8 ++++---- vhdbuilder/packer/vhd-image-builder-arm64-gen2.json | 6 +++--- vhdbuilder/packer/vhd-image-builder-base.json | 6 +++--- vhdbuilder/packer/vhd-image-builder-mariner-arm64.json | 6 +++--- vhdbuilder/packer/vhd-image-builder-mariner.json | 6 +++--- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.pipelines/templates/.builder-release-template.yaml b/.pipelines/templates/.builder-release-template.yaml index 5bea853044a..f6288bb7cf1 100644 --- a/.pipelines/templates/.builder-release-template.yaml +++ b/.pipelines/templates/.builder-release-template.yaml @@ -154,7 +154,7 @@ steps: - task: PublishPipelineArtifact@1 inputs: artifactName: 'build-performance-data-${{ parameters.artifactName }}' - targetPath: 'jsonBenchmarks.json' + targetPath: 'performance-data.json' displayName: Publish Build Performance Data condition: and(succeeded(), eq(variables.DRY_RUN, 'False')) - bash: | diff --git a/parts/linux/cloud-init/artifacts/cse_helpers.sh b/parts/linux/cloud-init/artifacts/cse_helpers.sh index be788d73e16..77418d4f330 100755 --- a/parts/linux/cloud-init/artifacts/cse_helpers.sh +++ b/parts/linux/cloud-init/artifacts/cse_helpers.sh @@ -404,10 +404,10 @@ installJq () { capture_benchmarks () { set +x - if [ ! -f /opt/azure/perf/jsonBenchmarks.json ]; then + if [ ! -f /opt/azure/perf/performance-data ]; then sudo mkdir -p /opt/azure/perf - echo '[]' > /opt/azure/perf/jsonBenchmarks.json - chmod 755 /opt/azure/perf/jsonBenchmarks.json + echo '[]' > /opt/azure/perf/performance-data.json + chmod 755 /opt/azure/perf/performance-data.json fi local is_final_section=$1 @@ -448,7 +448,7 @@ capture_benchmarks () { echo "Benchmarks:" echo "$script_object" | jq -C . - jq ". += [$script_object]" /opt/azure/perf/jsonBenchmarks.json > tmp.json && mv tmp.json /opt/azure/perf/jsonBenchmarks.json + jq ". += [$script_object]" /opt/azure/perf/performance-data.json > tmp.json && mv tmp.json /opt/azure/perf/performance-data.json fi set -x } diff --git a/vhdbuilder/packer/vhd-image-builder-arm64-gen2.json b/vhdbuilder/packer/vhd-image-builder-arm64-gen2.json index 0a4d7c025b1..0dff67aeb61 100644 --- a/vhdbuilder/packer/vhd-image-builder-arm64-gen2.json +++ b/vhdbuilder/packer/vhd-image-builder-arm64-gen2.json @@ -627,13 +627,13 @@ { "type": "file", "direction": "download", - "source": "/opt/azure/perf/jsonBenchmarks.json", - "destination": "jsonBenchmarks.json" + "source": "/opt/azure/perf/performance-data.json", + "destination": "performance-data.json" }, { "type": "shell", "inline": [ - "sudo rm /opt/azure/perf/jsonBenchmarks.json" + "sudo rm /opt/azure/perf/performance-data.json" ] }, { diff --git a/vhdbuilder/packer/vhd-image-builder-base.json b/vhdbuilder/packer/vhd-image-builder-base.json index 179bbe9232d..62a8a3f25af 100644 --- a/vhdbuilder/packer/vhd-image-builder-base.json +++ b/vhdbuilder/packer/vhd-image-builder-base.json @@ -635,13 +635,13 @@ { "type": "file", "direction": "download", - "source": "/opt/azure/perf/jsonBenchmarks.json", - "destination": "jsonBenchmarks.json" + "source": "/opt/azure/perf/performance-data.json", + "destination": "performance-data.json" }, { "type": "shell", "inline": [ - "sudo rm /opt/azure/perf/jsonBenchmarks.json" + "sudo rm /opt/azure/perf/performance-data.json" ] }, { diff --git a/vhdbuilder/packer/vhd-image-builder-mariner-arm64.json b/vhdbuilder/packer/vhd-image-builder-mariner-arm64.json index 7927097cc75..8caa7c31079 100644 --- a/vhdbuilder/packer/vhd-image-builder-mariner-arm64.json +++ b/vhdbuilder/packer/vhd-image-builder-mariner-arm64.json @@ -594,13 +594,13 @@ { "type": "file", "direction": "download", - "source": "/opt/azure/perf/jsonBenchmarks.json", - "destination": "jsonBenchmarks.json" + "source": "/opt/azure/perf/performance-data.json", + "destination": "performance-data.json" }, { "type": "shell", "inline": [ - "sudo rm /opt/azure/perf/jsonBenchmarks.json" + "sudo rm /opt/azure/perf/performance-data.json" ] }, { diff --git a/vhdbuilder/packer/vhd-image-builder-mariner.json b/vhdbuilder/packer/vhd-image-builder-mariner.json index c195958ef50..5f9f68b903b 100644 --- a/vhdbuilder/packer/vhd-image-builder-mariner.json +++ b/vhdbuilder/packer/vhd-image-builder-mariner.json @@ -621,13 +621,13 @@ { "type": "file", "direction": "download", - "source": "/opt/azure/perf/jsonBenchmarks.json", - "destination": "jsonBenchmarks.json" + "source": "/opt/azure/perf/performance-data.json", + "destination": "performance-data.json" }, { "type": "shell", "inline": [ - "sudo rm /opt/azure/perf/jsonBenchmarks.json" + "sudo rm /opt/azure/perf/performance-data.json" ] }, { From 09c7a016d4c95de20ba9cb04131d803bbabcb569 Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Thu, 18 Apr 2024 13:16:01 -0700 Subject: [PATCH 07/22] fix: add persmissions to /opt/azure/perf --- parts/linux/cloud-init/artifacts/cse_helpers.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/parts/linux/cloud-init/artifacts/cse_helpers.sh b/parts/linux/cloud-init/artifacts/cse_helpers.sh index 77418d4f330..1b53c9a66e3 100755 --- a/parts/linux/cloud-init/artifacts/cse_helpers.sh +++ b/parts/linux/cloud-init/artifacts/cse_helpers.sh @@ -407,6 +407,7 @@ capture_benchmarks () { if [ ! -f /opt/azure/perf/performance-data ]; then sudo mkdir -p /opt/azure/perf echo '[]' > /opt/azure/perf/performance-data.json + chmod 755 /opt/azure/perf/ chmod 755 /opt/azure/perf/performance-data.json fi From 1d7fa6fd2ed5b8b381c5addc1355f4a68906be96 Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Fri, 19 Apr 2024 07:37:00 -0700 Subject: [PATCH 08/22] fix: mariner permissions --- parts/linux/cloud-init/artifacts/cse_helpers.sh | 9 +-------- vhdbuilder/packer/pre-install-dependencies.sh | 5 ++++- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/parts/linux/cloud-init/artifacts/cse_helpers.sh b/parts/linux/cloud-init/artifacts/cse_helpers.sh index 1b53c9a66e3..e51bb4237f3 100755 --- a/parts/linux/cloud-init/artifacts/cse_helpers.sh +++ b/parts/linux/cloud-init/artifacts/cse_helpers.sh @@ -404,13 +404,6 @@ installJq () { capture_benchmarks () { set +x - if [ ! -f /opt/azure/perf/performance-data ]; then - sudo mkdir -p /opt/azure/perf - echo '[]' > /opt/azure/perf/performance-data.json - chmod 755 /opt/azure/perf/ - chmod 755 /opt/azure/perf/performance-data.json - fi - local is_final_section=$1 local title=$2 @@ -449,7 +442,7 @@ capture_benchmarks () { echo "Benchmarks:" echo "$script_object" | jq -C . - jq ". += [$script_object]" /opt/azure/perf/performance-data.json > tmp.json && mv tmp.json /opt/azure/perf/performance-data.json + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} fi set -x } diff --git a/vhdbuilder/packer/pre-install-dependencies.sh b/vhdbuilder/packer/pre-install-dependencies.sh index 3c3916b7705..2db6ff5e567 100644 --- a/vhdbuilder/packer/pre-install-dependencies.sh +++ b/vhdbuilder/packer/pre-install-dependencies.sh @@ -30,15 +30,18 @@ VHD_LOGS_FILEPATH=/opt/azure/vhd-install.complete COMPONENTS_FILEPATH=/opt/azure/components.json MANIFEST_FILEPATH=/opt/azure/manifest.json KUBE_PROXY_IMAGES_FILEPATH=/opt/azure/kube-proxy-images.json -#this is used by post build test to check whether the compoenents do indeed exist +VHD_BUILD_PERF_DATA=/opt/azure/vhd-build-performance-data.json +#this is used by post build test to check whether the components do indeed exist cat components.json > ${COMPONENTS_FILEPATH} cat manifest.json > ${MANIFEST_FILEPATH} cat ${THIS_DIR}/kube-proxy-images.json > ${KUBE_PROXY_IMAGES_FILEPATH} echo "Starting build on " $(date) > ${VHD_LOGS_FILEPATH} +echo '[]' > ${VHD_BUILD_PERF_DATA} if [[ $OS == $MARINER_OS_NAME ]]; then chmod 755 /opt chmod 755 /opt/azure + chmod 755 ${VHD_BUILD_PERF_DATA} chmod 644 ${VHD_LOGS_FILEPATH} fi From 4a57070d9597f4ac36d816e254b3edd7d3f65e4a Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Fri, 19 Apr 2024 07:38:43 -0700 Subject: [PATCH 09/22] fix: additional mariner permissions test --- parts/linux/cloud-init/artifacts/cse_helpers.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/parts/linux/cloud-init/artifacts/cse_helpers.sh b/parts/linux/cloud-init/artifacts/cse_helpers.sh index e51bb4237f3..3a04cdebd2d 100755 --- a/parts/linux/cloud-init/artifacts/cse_helpers.sh +++ b/parts/linux/cloud-init/artifacts/cse_helpers.sh @@ -444,6 +444,7 @@ capture_benchmarks () { jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} fi + chmod 755 ${VHD_BUILD_PERF_DATA} set -x } From 28102a05f8e2e7d97dd4188ea572873c19c8876a Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Fri, 19 Apr 2024 07:45:39 -0700 Subject: [PATCH 10/22] fix: refactor download and publishing logic --- .pipelines/templates/.builder-release-template.yaml | 2 +- vhdbuilder/packer/vhd-image-builder-arm64-gen2.json | 6 +++--- vhdbuilder/packer/vhd-image-builder-base.json | 6 +++--- vhdbuilder/packer/vhd-image-builder-mariner-arm64.json | 6 +++--- vhdbuilder/packer/vhd-image-builder-mariner.json | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.pipelines/templates/.builder-release-template.yaml b/.pipelines/templates/.builder-release-template.yaml index f6288bb7cf1..07bef06aedb 100644 --- a/.pipelines/templates/.builder-release-template.yaml +++ b/.pipelines/templates/.builder-release-template.yaml @@ -154,7 +154,7 @@ steps: - task: PublishPipelineArtifact@1 inputs: artifactName: 'build-performance-data-${{ parameters.artifactName }}' - targetPath: 'performance-data.json' + targetPath: 'vhd-build-performance-data.json' displayName: Publish Build Performance Data condition: and(succeeded(), eq(variables.DRY_RUN, 'False')) - bash: | diff --git a/vhdbuilder/packer/vhd-image-builder-arm64-gen2.json b/vhdbuilder/packer/vhd-image-builder-arm64-gen2.json index 0dff67aeb61..a2ef47e36be 100644 --- a/vhdbuilder/packer/vhd-image-builder-arm64-gen2.json +++ b/vhdbuilder/packer/vhd-image-builder-arm64-gen2.json @@ -627,13 +627,13 @@ { "type": "file", "direction": "download", - "source": "/opt/azure/perf/performance-data.json", - "destination": "performance-data.json" + "source": "/opt/azure/vhd-build-performance-data.json", + "destination": "vhd-build-performance-data.json" }, { "type": "shell", "inline": [ - "sudo rm /opt/azure/perf/performance-data.json" + "sudo rm /opt/azure/vhd-build-performance-data.json" ] }, { diff --git a/vhdbuilder/packer/vhd-image-builder-base.json b/vhdbuilder/packer/vhd-image-builder-base.json index 62a8a3f25af..9d47bca8bf9 100644 --- a/vhdbuilder/packer/vhd-image-builder-base.json +++ b/vhdbuilder/packer/vhd-image-builder-base.json @@ -635,13 +635,13 @@ { "type": "file", "direction": "download", - "source": "/opt/azure/perf/performance-data.json", - "destination": "performance-data.json" + "source": "/opt/azure/vhd-build-performance-data.json", + "destination": "vhd-build-performance-data.json" }, { "type": "shell", "inline": [ - "sudo rm /opt/azure/perf/performance-data.json" + "sudo rm /opt/azure/vhd-build-performance-data.json" ] }, { diff --git a/vhdbuilder/packer/vhd-image-builder-mariner-arm64.json b/vhdbuilder/packer/vhd-image-builder-mariner-arm64.json index 8caa7c31079..29e9c9c70f4 100644 --- a/vhdbuilder/packer/vhd-image-builder-mariner-arm64.json +++ b/vhdbuilder/packer/vhd-image-builder-mariner-arm64.json @@ -594,13 +594,13 @@ { "type": "file", "direction": "download", - "source": "/opt/azure/perf/performance-data.json", - "destination": "performance-data.json" + "source": "/opt/azure/vhd-build-performance-data.json", + "destination": "vhd-build-performance-data.json" }, { "type": "shell", "inline": [ - "sudo rm /opt/azure/perf/performance-data.json" + "sudo rm /opt/azure/vhd-build-performance-data.json" ] }, { diff --git a/vhdbuilder/packer/vhd-image-builder-mariner.json b/vhdbuilder/packer/vhd-image-builder-mariner.json index 5f9f68b903b..5d536188cb7 100644 --- a/vhdbuilder/packer/vhd-image-builder-mariner.json +++ b/vhdbuilder/packer/vhd-image-builder-mariner.json @@ -621,13 +621,13 @@ { "type": "file", "direction": "download", - "source": "/opt/azure/perf/performance-data.json", - "destination": "performance-data.json" + "source": "/opt/azure/vhd-build-performance-data.json", + "destination": "vhd-build-performance-data.json" }, { "type": "shell", "inline": [ - "sudo rm /opt/azure/perf/performance-data.json" + "sudo rm /opt/azure/vhd-build-performance-data.json" ] }, { From 29d97795805702314294206e5623c43f08ad5cbe Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Fri, 19 Apr 2024 07:49:13 -0700 Subject: [PATCH 11/22] test: mariner permissions --- parts/linux/cloud-init/artifacts/cse_helpers.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/parts/linux/cloud-init/artifacts/cse_helpers.sh b/parts/linux/cloud-init/artifacts/cse_helpers.sh index 3a04cdebd2d..e51bb4237f3 100755 --- a/parts/linux/cloud-init/artifacts/cse_helpers.sh +++ b/parts/linux/cloud-init/artifacts/cse_helpers.sh @@ -444,7 +444,6 @@ capture_benchmarks () { jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} fi - chmod 755 ${VHD_BUILD_PERF_DATA} set -x } From 93d61e954fc8378e64abfb68304c16bd321fe01a Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Fri, 19 Apr 2024 07:56:47 -0700 Subject: [PATCH 12/22] fix: declare vhd_build_perf_data variable in all scripts --- vhdbuilder/packer/install-dependencies.sh | 1 + vhdbuilder/packer/post-install-dependencies.sh | 1 + 2 files changed, 2 insertions(+) diff --git a/vhdbuilder/packer/install-dependencies.sh b/vhdbuilder/packer/install-dependencies.sh index 3a5319a1bcd..5af45a9bdb7 100644 --- a/vhdbuilder/packer/install-dependencies.sh +++ b/vhdbuilder/packer/install-dependencies.sh @@ -25,6 +25,7 @@ source /home/packer/tool_installs_distro.sh CPU_ARCH=$(getCPUArch) #amd64 or arm64 VHD_LOGS_FILEPATH=/opt/azure/vhd-install.complete COMPONENTS_FILEPATH=/opt/azure/components.json +VHD_BUILD_PERF_DATA=/opt/azure/vhd-build-performance-data.json echo "" echo "Components downloaded in this VHD build (some of the below components might get deleted during cluster provisioning if they are not needed):" >> ${VHD_LOGS_FILEPATH} diff --git a/vhdbuilder/packer/post-install-dependencies.sh b/vhdbuilder/packer/post-install-dependencies.sh index 4cd7f5338ad..a3c927ca6c5 100644 --- a/vhdbuilder/packer/post-install-dependencies.sh +++ b/vhdbuilder/packer/post-install-dependencies.sh @@ -23,6 +23,7 @@ start_watch CPU_ARCH=$(getCPUArch) #amd64 or arm64 VHD_LOGS_FILEPATH=/opt/azure/vhd-install.complete +VHD_BUILD_PERF_DATA=/opt/azure/vhd-build-performance-data.json # Hardcode the desired size of the OS disk so we don't accidently rely on extra disk space MAX_BLOCK_COUNT=30298176 # 30 GB From 812e74470c60a77bb9269da82876bb844f01ba28 Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Fri, 19 Apr 2024 07:57:44 -0700 Subject: [PATCH 13/22] fix: check permissions loction for mariner --- parts/linux/cloud-init/artifacts/cse_helpers.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/parts/linux/cloud-init/artifacts/cse_helpers.sh b/parts/linux/cloud-init/artifacts/cse_helpers.sh index e51bb4237f3..3a04cdebd2d 100755 --- a/parts/linux/cloud-init/artifacts/cse_helpers.sh +++ b/parts/linux/cloud-init/artifacts/cse_helpers.sh @@ -444,6 +444,7 @@ capture_benchmarks () { jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} fi + chmod 755 ${VHD_BUILD_PERF_DATA} set -x } From a69e1aaef1f0c98a5f848136018c47bb7820d768 Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Fri, 19 Apr 2024 08:54:15 -0700 Subject: [PATCH 14/22] fix: unbound variable / mariner permissions --- parts/linux/cloud-init/artifacts/cse_helpers.sh | 2 +- vhdbuilder/packer/post-install-dependencies.sh | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/parts/linux/cloud-init/artifacts/cse_helpers.sh b/parts/linux/cloud-init/artifacts/cse_helpers.sh index 3a04cdebd2d..5b5e0a6e970 100755 --- a/parts/linux/cloud-init/artifacts/cse_helpers.sh +++ b/parts/linux/cloud-init/artifacts/cse_helpers.sh @@ -443,8 +443,8 @@ capture_benchmarks () { echo "$script_object" | jq -C . jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - chmod 755 ${VHD_BUILD_PERF_DATA} set -x } diff --git a/vhdbuilder/packer/post-install-dependencies.sh b/vhdbuilder/packer/post-install-dependencies.sh index a3c927ca6c5..e4609aa11be 100644 --- a/vhdbuilder/packer/post-install-dependencies.sh +++ b/vhdbuilder/packer/post-install-dependencies.sh @@ -18,8 +18,6 @@ source /home/packer/provision_source.sh source /home/packer/provision_source_distro.sh source /home/packer/tool_installs.sh source /home/packer/tool_installs_distro.sh -capture_benchmarks false "determine_os_and_source_packer_files" -start_watch CPU_ARCH=$(getCPUArch) #amd64 or arm64 VHD_LOGS_FILEPATH=/opt/azure/vhd-install.complete @@ -27,7 +25,7 @@ VHD_BUILD_PERF_DATA=/opt/azure/vhd-build-performance-data.json # Hardcode the desired size of the OS disk so we don't accidently rely on extra disk space MAX_BLOCK_COUNT=30298176 # 30 GB -capture_benchmarks false "set_variables" +capture_benchmarks false "set_variables_and_source_packer_files" start_watch if [[ $OS == $UBUNTU_OS_NAME ]]; then From 64a725e0210293fa655a4c8f00202b737ae326e1 Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Fri, 19 Apr 2024 08:59:14 -0700 Subject: [PATCH 15/22] fix: test mariner permisssions --- parts/linux/cloud-init/artifacts/cse_helpers.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/parts/linux/cloud-init/artifacts/cse_helpers.sh b/parts/linux/cloud-init/artifacts/cse_helpers.sh index 5b5e0a6e970..e51bb4237f3 100755 --- a/parts/linux/cloud-init/artifacts/cse_helpers.sh +++ b/parts/linux/cloud-init/artifacts/cse_helpers.sh @@ -443,7 +443,6 @@ capture_benchmarks () { echo "$script_object" | jq -C . jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} - chmod 755 ${VHD_BUILD_PERF_DATA} fi set -x } From 006b763ac34f60ab6e718e82e8ccfa7deca4946c Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Fri, 19 Apr 2024 09:05:55 -0700 Subject: [PATCH 16/22] test: mariner permissions --- parts/linux/cloud-init/artifacts/cse_helpers.sh | 1 + vhdbuilder/packer/pre-install-dependencies.sh | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/parts/linux/cloud-init/artifacts/cse_helpers.sh b/parts/linux/cloud-init/artifacts/cse_helpers.sh index e51bb4237f3..5b5e0a6e970 100755 --- a/parts/linux/cloud-init/artifacts/cse_helpers.sh +++ b/parts/linux/cloud-init/artifacts/cse_helpers.sh @@ -443,6 +443,7 @@ capture_benchmarks () { echo "$script_object" | jq -C . jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi set -x } diff --git a/vhdbuilder/packer/pre-install-dependencies.sh b/vhdbuilder/packer/pre-install-dependencies.sh index 2db6ff5e567..112c75e3679 100644 --- a/vhdbuilder/packer/pre-install-dependencies.sh +++ b/vhdbuilder/packer/pre-install-dependencies.sh @@ -41,7 +41,6 @@ echo '[]' > ${VHD_BUILD_PERF_DATA} if [[ $OS == $MARINER_OS_NAME ]]; then chmod 755 /opt chmod 755 /opt/azure - chmod 755 ${VHD_BUILD_PERF_DATA} chmod 644 ${VHD_LOGS_FILEPATH} fi From 7e24901bcf6ef30b24f11c542e23852b0d7a29e0 Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Fri, 19 Apr 2024 11:42:17 -0700 Subject: [PATCH 17/22] perf: remove start_watch function from cse_helpers.sh --- .../linux/cloud-init/artifacts/cse_helpers.sh | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/parts/linux/cloud-init/artifacts/cse_helpers.sh b/parts/linux/cloud-init/artifacts/cse_helpers.sh index 5b5e0a6e970..932c730e98e 100755 --- a/parts/linux/cloud-init/artifacts/cse_helpers.sh +++ b/parts/linux/cloud-init/artifacts/cse_helpers.sh @@ -379,14 +379,16 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - set +x - section_start_stopwatch=$(date +%s) - section_start_timestamp=$(date +%H:%M:%S) - set -x -} +#start_watch () { + #set +x + #section_start_stopwatch=$(date +%s) + #section_start_timestamp=$(date +%H:%M:%S) + #set -x +#} installJq () { + # jq is not available until downloaded in install-dependencies.sh with the installDeps function + # but it is needed earlier to call the capture_benchmarks function in pre-install-dependencies.sh output=$(jq --version) if [ -n "$output" ]; then echo "$output" @@ -402,6 +404,8 @@ installJq () { } capture_benchmarks () { + # the capture_benchmarks function is used to capture benchmark data for each section in VHD build scripts + # data will be stored in a JSON file and published as an artifact to be evaluated by github actions set +x local is_final_section=$1 @@ -420,6 +424,7 @@ capture_benchmarks () { local elapsed_seconds=$(($difference_in_seconds%60)) printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + # if the final section of the current script has not yet been reached, store the latest recorded benchmarking data in an array if [[ ! "$is_final_section" == true ]]; then benchmarks+=($title) benchmarks+=($section_start_timestamp) @@ -428,13 +433,16 @@ capture_benchmarks () { fi if [[ "$is_final_section" == true ]]; then - + + # if current section is the final section of the current sript, create a JSON object for the script as a whole script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each for ((i=0; i<${#benchmarks[@]}; i+=4)); do section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') - + + # append the section objects to the current script object script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') done @@ -442,9 +450,15 @@ capture_benchmarks () { echo "Benchmarks:" echo "$script_object" | jq -C . + # after all section objects are appended to the current script object, append current script object to the array in ${VHD_BUILD_PERF_DATA} jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} chmod 755 ${VHD_BUILD_PERF_DATA} fi + + # reset timers for next section + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + set -x } From 5e2f89d53660484e96bb6d2d3299e3ac7033ad2f Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Fri, 19 Apr 2024 11:46:55 -0700 Subject: [PATCH 18/22] chore: remove start_watch function for vhd build scripts --- vhdbuilder/packer/install-dependencies.sh | 12 ------------ vhdbuilder/packer/post-install-dependencies.sh | 6 ------ vhdbuilder/packer/pre-install-dependencies.sh | 7 ------- 3 files changed, 25 deletions(-) diff --git a/vhdbuilder/packer/install-dependencies.sh b/vhdbuilder/packer/install-dependencies.sh index 5af45a9bdb7..bbf281e1962 100644 --- a/vhdbuilder/packer/install-dependencies.sh +++ b/vhdbuilder/packer/install-dependencies.sh @@ -30,7 +30,6 @@ VHD_BUILD_PERF_DATA=/opt/azure/vhd-build-performance-data.json echo "" echo "Components downloaded in this VHD build (some of the below components might get deleted during cluster provisioning if they are not needed):" >> ${VHD_LOGS_FILEPATH} capture_benchmarks false "declare_variables_and_source_packer_files" -start_watch echo "Logging the kernel after purge and reinstall + reboot: $(uname -r)" # fix grub issue with cvm by reinstalling before other deps @@ -56,7 +55,6 @@ APT::Periodic::Unattended-Upgrade "0"; EOF fi capture_benchmarks false "purge_and_reinstall_ubuntu" -start_watch # If the IMG_SKU does not contain "minimal", installDeps normally if [[ "$IMG_SKU" != *"minimal"* ]]; then @@ -86,7 +84,6 @@ RuntimeMaxUse=1G ForwardToSyslog=yes EOF capture_benchmarks false "install_dependencies" -start_watch if [[ ${CONTAINER_RUNTIME:-""} != "containerd" ]]; then echo "Unsupported container runtime. Only containerd is supported for new VHD builds." @@ -114,7 +111,6 @@ if [[ "${UBUNTU_RELEASE}" == "18.04" || "${UBUNTU_RELEASE}" == "20.04" || "${UBU disableNtpAndTimesyncdInstallChrony || exit 1 fi capture_benchmarks false "check_container_runtime_and_network_configurations" -start_watch CONTAINERD_SERVICE_DIR="/etc/systemd/system/containerd.service.d" mkdir -p "${CONTAINERD_SERVICE_DIR}" @@ -171,7 +167,6 @@ containerd_patch_version="$(echo "$installed_version" | cut -d- -f2)" installStandaloneContainerd ${containerd_version} ${containerd_patch_version} echo " - [installed] containerd v${containerd_version}-${containerd_patch_version}" >> ${VHD_LOGS_FILEPATH} capture_benchmarks false "create_containerd_service_directory_download_shims_configure_runtime_and_network" -start_watch DOWNLOAD_FILES=$(jq ".DownloadFiles" $COMPONENTS_FILEPATH | jq .[] --monochrome-output --compact-output) for componentToDownload in ${DOWNLOAD_FILES[*]}; do @@ -193,7 +188,6 @@ for CRICTL_VERSION in ${CRICTL_VERSIONS}; do echo " - crictl version ${CRICTL_VERSION}" >> ${VHD_LOGS_FILEPATH} done capture_benchmarks false "download_crictl" -start_watch installAndConfigureArtifactStreaming() { # arguments: package name, package extension @@ -232,7 +226,6 @@ downloadTeleportdPlugin ${TELEPORTD_PLUGIN_DOWNLOAD_URL} "0.8.0" INSTALLED_RUNC_VERSION=$(runc --version | head -n1 | sed 's/runc version //') echo " - runc version ${INSTALLED_RUNC_VERSION}" >> ${VHD_LOGS_FILEPATH} capture_benchmarks false "artifact_streaming_and_download_teleportd" -start_watch if [[ $OS == $UBUNTU_OS_NAME && $(isARM64) != 1 ]]; then # no ARM64 SKU with GPU now gpu_action="copy" @@ -268,7 +261,6 @@ EOF echo "${CONTAINER_RUNTIME} images pre-pulled:" >> ${VHD_LOGS_FILEPATH} capture_benchmarks false "pull_nvidia_driver_image(mcr)_and_run_installBcc_in_subshell" -start_watch string_replace() { echo ${1//\*/$2} @@ -316,7 +308,6 @@ watcherStaticImg=${watcherBaseImg//\*/static} # can't use cliTool because crictl doesn't support retagging. retagContainerImage "ctr" ${watcherFullImg} ${watcherStaticImg} capture_benchmarks false "pull_and_retag_container_images" -start_watch # doing this at vhd allows CSE to be faster with just mv unpackAzureCNI() { @@ -379,7 +370,6 @@ if [[ $OS == $UBUNTU_OS_NAME || ( $OS == $MARINER_OS_NAME && $OS_VERSION == "2.0 systemctlEnableAndStart ipv6_nftables || exit 1 fi capture_benchmarks false "configure_networking_and_interface" -start_watch if [[ $OS == $UBUNTU_OS_NAME && $(isARM64) != 1 ]]; then # no ARM64 SKU with GPU now NVIDIA_DEVICE_PLUGIN_VERSIONS=" @@ -408,7 +398,6 @@ if grep -q "fullgpu" <<< "$FEATURE_FLAGS" && grep -q "gpudaemon" <<< "$FEATURE_F fi fi capture_benchmarks false "download_gpu_device_plugin" -start_watch # Kubelet credential provider plugins CREDENTIAL_PROVIDER_VERSIONS=" @@ -454,7 +443,6 @@ for KUBE_PROXY_IMAGE_VERSION in ${KUBE_PROXY_IMAGE_VERSIONS}; do echo " - ${CONTAINER_IMAGE}" >>${VHD_LOGS_FILEPATH} done capture_benchmarks false "configure_telemetry_create_logging_directory_and_download_kube-proxy_images" -start_watch # download kubernetes package from the given URL using MSI for auth for azcopy # if it is a kube-proxy package, extract image from the downloaded package diff --git a/vhdbuilder/packer/post-install-dependencies.sh b/vhdbuilder/packer/post-install-dependencies.sh index e4609aa11be..578bee5a9a2 100644 --- a/vhdbuilder/packer/post-install-dependencies.sh +++ b/vhdbuilder/packer/post-install-dependencies.sh @@ -26,7 +26,6 @@ VHD_BUILD_PERF_DATA=/opt/azure/vhd-build-performance-data.json # Hardcode the desired size of the OS disk so we don't accidently rely on extra disk space MAX_BLOCK_COUNT=30298176 # 30 GB capture_benchmarks false "set_variables_and_source_packer_files" -start_watch if [[ $OS == $UBUNTU_OS_NAME ]]; then # shellcheck disable=SC2021 @@ -53,7 +52,6 @@ if [[ $OS == $UBUNTU_OS_NAME ]]; then fi fi capture_benchmarks false "log_and_detach_ua" -start_watch # shellcheck disable=SC2129 echo "kubelet/kubectl downloaded:" >> ${VHD_LOGS_FILEPATH} @@ -64,7 +62,6 @@ ls -ltr /dev/* | grep sgx >> ${VHD_LOGS_FILEPATH} echo -e "=== Installed Packages Begin\n$(listInstalledPackages)\n=== Installed Packages End" >> ${VHD_LOGS_FILEPATH} capture_benchmarks false "list_installed_packages" -start_watch echo "Disk usage:" >> ${VHD_LOGS_FILEPATH} df -h >> ${VHD_LOGS_FILEPATH} @@ -77,7 +74,6 @@ usage=${usage%.*} [ ${usage} -ge 99 ] && echo "ERROR: root partition on OS device (${os_device}) already passed 99% of the 30GB cap!" && exit 1 [ ${usage} -ge 75 ] && echo "WARNING: root partition on OS device (${os_device}) already passed 75% of the 30GB cap!" capture_benchmarks false "determine_disk_usage" -start_watch echo -e "=== os-release Begin" >> ${VHD_LOGS_FILEPATH} cat /etc/os-release >> ${VHD_LOGS_FILEPATH} @@ -97,14 +93,12 @@ tee -a ${VHD_LOGS_FILEPATH} < /proc/version echo "FIPS enabled: ${ENABLE_FIPS}" } >> ${VHD_LOGS_FILEPATH} capture_benchmarks false "write_logs" -start_watch if [[ $(isARM64) != 1 ]]; then # no asc-baseline-1.1.0-268.arm64.deb installAscBaseline fi capture_benchmarks false "install_asc_baseline" -start_watch if [[ ${UBUNTU_RELEASE} == "18.04" || ${UBUNTU_RELEASE} == "20.04" || ${UBUNTU_RELEASE} == "22.04" ]]; then if [[ ${ENABLE_FIPS,,} == "true" || ${CPU_ARCH} == "arm64" ]]; then diff --git a/vhdbuilder/packer/pre-install-dependencies.sh b/vhdbuilder/packer/pre-install-dependencies.sh index 112c75e3679..7df6e5b9754 100644 --- a/vhdbuilder/packer/pre-install-dependencies.sh +++ b/vhdbuilder/packer/pre-install-dependencies.sh @@ -46,18 +46,15 @@ fi installJq capture_benchmarks false "source_packer_files_declare_variables_and_set_mariner_permissions" -start_watch copyPackerFiles systemctlEnableAndStart disk_queue || exit 1 capture_benchmarks false "copy_packer_files" -start_watch mkdir /opt/certs chmod 1666 /opt/certs systemctlEnableAndStart update_certs.path || exit 1 capture_benchmarks false "make_directory_and_update_certs" -start_watch systemctlEnableAndStart ci-syslog-watcher.path || exit 1 systemctlEnableAndStart ci-syslog-watcher.service || exit 1 @@ -66,17 +63,14 @@ systemctlEnableAndStart ci-syslog-watcher.service || exit 1 echo -e "\n# Disable WALA log collection because AKS Log Collector is installed.\nLogs.Collect=n" >> /etc/waagent.conf || exit 1 systemctlEnableAndStart aks-log-collector.timer || exit 1 capture_benchmarks false "start_system_logs_and_aks_log_collector" -start_watch # enable the modified logrotate service and remove the auto-generated default logrotate cron job if present systemctlEnableAndStart logrotate.timer || exit 1 rm -f /etc/cron.daily/logrotate capture_benchmarks false "enable_modified_log_rotate_service" -start_watch systemctlEnableAndStart sync-container-logs.service || exit 1 capture_benchmarks false "sync_container_logs" -start_watch # First handle Mariner + FIPS if [[ ${OS} == ${MARINER_OS_NAME} ]]; then @@ -114,7 +108,6 @@ else fi fi capture_benchmarks false "handle_mariner_and_fips_configurations" -start_watch # Handle Azure Linux + CgroupV2 if [[ ${OS} == ${MARINER_OS_NAME} ]] && [[ "${ENABLE_CGROUPV2,,}" == "true" ]]; then From 03d3cbd7c3aa71451a5851d3c31d1701ccaa8dca Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Fri, 19 Apr 2024 13:15:11 -0700 Subject: [PATCH 19/22] chore: remove start_watch function --- parts/linux/cloud-init/artifacts/cse_helpers.sh | 7 ------- 1 file changed, 7 deletions(-) diff --git a/parts/linux/cloud-init/artifacts/cse_helpers.sh b/parts/linux/cloud-init/artifacts/cse_helpers.sh index 932c730e98e..e72094853d9 100755 --- a/parts/linux/cloud-init/artifacts/cse_helpers.sh +++ b/parts/linux/cloud-init/artifacts/cse_helpers.sh @@ -379,13 +379,6 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -#start_watch () { - #set +x - #section_start_stopwatch=$(date +%s) - #section_start_timestamp=$(date +%H:%M:%S) - #set -x -#} - installJq () { # jq is not available until downloaded in install-dependencies.sh with the installDeps function # but it is needed earlier to call the capture_benchmarks function in pre-install-dependencies.sh From 1910f01b02d5d1e7de107f555b4717a0cea5d9d5 Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Fri, 19 Apr 2024 13:26:21 -0700 Subject: [PATCH 20/22] chore: generate --- .../AKSUbuntu1604+Containerd/CustomData | 2 +- .../AKSUbuntu1604+Containerd/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../testdata/AKSUbuntu1604+Docker/CustomData | 2 +- .../testdata/AKSUbuntu1604+Docker/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../AKSUbuntu1604+GPUDedicatedVHD/CustomData | 2 +- .../AKSUbuntu1604+GPUDedicatedVHD/line9.sh | 75 ++++++++++++----- .../testdata/AKSUbuntu1604+K8S115/CustomData | 2 +- .../testdata/AKSUbuntu1604+K8S115/line9.sh | 75 ++++++++++++----- .../testdata/AKSUbuntu1604+K8S117/CustomData | 2 +- .../testdata/AKSUbuntu1604+K8S117/line9.sh | 75 ++++++++++++----- .../testdata/AKSUbuntu1604+K8S118/CustomData | 2 +- .../testdata/AKSUbuntu1604+K8S118/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../AKSUbuntu1604+KubeletConfigFile/line9.sh | 75 ++++++++++++----- .../AKSUbuntu1604+OSKubeletDisk/CustomData | 2 +- .../AKSUbuntu1604+OSKubeletDisk/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../AKSUbuntu1604+TempDiskExplicit/CustomData | 2 +- .../AKSUbuntu1604+TempDiskExplicit/line9.sh | 75 ++++++++++++----- .../AKSUbuntu1604+TempDiskToggle/CustomData | 2 +- .../AKSUbuntu1604+TempDiskToggle/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../AKSUbuntu1804+ArtifactStreaming/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../AKSUbuntu1804+Containerd+Certsd/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../AKSUbuntu1804+Containerd+Kubenet/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../AKSUbuntu1804+Containerd+MIG/CustomData | 2 +- .../AKSUbuntu1804+Containerd+MIG/line9.sh | 75 ++++++++++++----- .../AKSUbuntu1804+Containerd+MotD/CustomData | 2 +- .../AKSUbuntu1804+Containerd+MotD/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../AKSUbuntu1804+CustomCATrust/CustomData | 2 +- .../AKSUbuntu1804+CustomCATrust/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../AKSUbuntu1804+DisableCustomData/line9.sh | 75 ++++++++++++----- .../AKSUbuntu1804+HTTPProxy/CustomData | 2 +- .../testdata/AKSUbuntu1804+HTTPProxy/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../testdata/AKSUbuntu1804+NoneCNI/CustomData | 2 +- .../testdata/AKSUbuntu1804+NoneCNI/line9.sh | 75 ++++++++++++----- .../AKSUbuntu1804+krustlet/CustomData | 2 +- .../testdata/AKSUbuntu1804+krustlet/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../testdata/AKSUbuntu2204+China/CustomData | 2 +- .../testdata/AKSUbuntu2204+China/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../AKSUbuntu2204+Containerd+MIG/CustomData | 2 +- .../AKSUbuntu2204+Containerd+MIG/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../AKSUbuntu2204+CustomCloud/CustomData | 2 +- .../AKSUbuntu2204+CustomCloud/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../AKSUbuntu2204+SSHStatusOff/CustomData | 2 +- .../AKSUbuntu2204+SSHStatusOff/line9.sh | 75 ++++++++++++----- .../AKSUbuntu2204+SSHStatusOn/CustomData | 2 +- .../AKSUbuntu2204+SSHStatusOn/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../AKSUbuntu2204+SecurityProfile/CustomData | 2 +- .../AKSUbuntu2204+SecurityProfile/line9.sh | 75 ++++++++++++----- .../AKSUbuntu2204+cgroupv2/CustomData | 2 +- .../testdata/AKSUbuntu2204+cgroupv2/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../testdata/AzureLinuxV2+Kata/CustomData | 2 +- pkg/agent/testdata/AzureLinuxV2+Kata/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- pkg/agent/testdata/CustomizedImage/CustomData | 2 +- pkg/agent/testdata/CustomizedImage/line9.sh | 75 ++++++++++++----- .../testdata/CustomizedImageKata/CustomData | 2 +- .../testdata/CustomizedImageKata/line9.sh | 75 ++++++++++++----- .../testdata/MarinerV2+CustomCloud/CustomData | 2 +- .../testdata/MarinerV2+CustomCloud/line9.sh | 75 ++++++++++++----- pkg/agent/testdata/MarinerV2+Kata/CustomData | 2 +- pkg/agent/testdata/MarinerV2+Kata/line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- .../CustomData | 2 +- .../line9.sh | 75 ++++++++++++----- pkg/agent/testdata/RawUbuntu/CustomData | 2 +- pkg/agent/testdata/RawUbuntu/line9.sh | 75 ++++++++++++----- .../testdata/RawUbuntuContainerd/CustomData | 2 +- .../testdata/RawUbuntuContainerd/line9.sh | 75 ++++++++++++----- pkg/templates/templates_generated.go | 84 ++++++++++++++----- 147 files changed, 4004 insertions(+), 1701 deletions(-) diff --git a/pkg/agent/testdata/AKSUbuntu1604+Containerd/CustomData b/pkg/agent/testdata/AKSUbuntu1604+Containerd/CustomData index 845b42384ae..d6a5e52d282 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+Containerd/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+Containerd/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1604+Containerd/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+Containerd/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+Containerd/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+Containerd/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+CustomLinuxOSConfig/CustomData b/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+CustomLinuxOSConfig/CustomData index e565809df73..b9236fc82c9 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+CustomLinuxOSConfig/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+CustomLinuxOSConfig/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+CustomLinuxOSConfig/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+CustomLinuxOSConfig/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+CustomLinuxOSConfig/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+CustomLinuxOSConfig/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+DynamicKubeletConfig/CustomData b/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+DynamicKubeletConfig/CustomData index e565809df73..b9236fc82c9 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+DynamicKubeletConfig/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+DynamicKubeletConfig/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+DynamicKubeletConfig/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+DynamicKubeletConfig/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+DynamicKubeletConfig/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+CustomKubeletConfig+DynamicKubeletConfig/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=false/CustomData b/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=false/CustomData index b3896cb6019..847ce452664 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=false/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=false/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=false/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=false/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=false/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=false/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=true/CustomData b/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=true/CustomData index b3896cb6019..847ce452664 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=true/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=true/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=true/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=true/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=true/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+Disable1804SystemdResolved=true/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+Docker/CustomData b/pkg/agent/testdata/AKSUbuntu1604+Docker/CustomData index 845b42384ae..d6a5e52d282 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+Docker/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+Docker/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1604+Docker/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+Docker/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+Docker/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+Docker/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+DynamicKubeletConfig/CustomData b/pkg/agent/testdata/AKSUbuntu1604+DynamicKubeletConfig/CustomData index 8247a982f23..da7fbe3bbbf 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+DynamicKubeletConfig/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+DynamicKubeletConfig/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - H4sIAAAAAAAA/9RZ+3Ob1pf/XX/FKcW11BohZMdN5CEtlrDMWBIsIKdZJ8tguJKoEVC4cpKvrf99514uL0t2k3an03WnLeI87jmf8wS+/068DSLx1s1WLdU0Heu9ZavToT1xLFsxbedC0SbyCVDacKLPR44202zH1qaqPrflVznlQpuozjvFHl6WlNOccqlPRs47ZaLN5r8pY3Vmyz/nBFOdqIql7mF4nTMohu1oM8tWJpNS6ZucNNKHV6q5Q+33GuSR/m420ZVRRZca9Cv1/R6efoOHGEH4SvJxg1zDqM9Amurn76nYRLMqnPoMqKnljI3xM0ef1jTs+MZgG+ozW9FmqjnaZWHAmfPZcJfIoLt6bRGGmTYbl7TjXkXbseqYgXY1P1dJWsx027nQ57ORfMyg0qbjPWLHldhEtetIHZ80ozgdO8a8Zurxqx1Xh/Y+vtNdPlMjNu6yPo8eTd2aUwzE4UzbdepEKqNomPrIGanne5j6u0zG1dhRRiNWTQyavNRqllDi6yIJRoapn6vsLouePrfPiZnEkVlOelULnmJojqWa16pZZ5D2MoxmljPR9au5wdj6e9mU/56b6i5zEV3FVvYn82mvxvG0ik6lGvFppp4yQ64vR0+Dc7qbGTsH/9yrVcEulZ08nFu2PnUsVTGHl85InyrazMp9e80UjI35rvzr4xrR1K5V06qn9uuTXfJT/16/qvGo19pQdYzJfKzNGopOKyZtdqE7pj51hrppzg1bHcmvWT5b49+ePedNb5endsIbqWqzI0WbVNF5U2vAc2Ok2GpFYnk4tFSS3NeapekzxxqammHTOJmqMqo0Sb1e7RDSD+fG2FRGao2jZoYxN8cs4aVevywSUtGmSsIgSz2G/1CzHMWytPHMMXXddox3siRJOzSaP4ZqTjWLWCpLElNrKLT3DHXjPWWSJamu2TAm7x1Dsax3ukmL7UIby5L0qlm45RDQWVlIUtGS8j60kz6S9HODQTdUU7EJhqpp6qYsSUX7sc09xDfQysGiRWnZyvDKGau2o5hTx9av1JksFTPwKctMtd/p5hXzZZ4rlqViJD5lt+bnM9V2DFO90H6TJTIVy6I8n2uTUWETGWw5KO8UwxmaKkmXHIxirNQp2syaX1xoQ02d0Yy4cixDGaqyRMYM5bbViWropl0rbdU0ZanocxW9SPicXDhi2tqFMiQDx1SVKRlzhR5ZKnrcHiamTJZIa8s3F9s2SJL/9t4ZKgS3a9W0ZalobKwyCEk1bUuWTsvtgpltqUMCqj2xnHNdty3bVIxyHqq/qcOi7svsOC0CPNKsc2WiOpphK+cT1ZIl0tbynmnOLZto2E2uormNNItIOZZ1KUs/10NnqsQSx1T/a66Z6kjuFwU602lJKGPVYr22X1SmNVMM61Ive0F95+kVyg1TuyZEMj3IsCMx6RfFSm7Wg9XvnRRJU26bU8W6YkoZbWiqI3Vma8okbzWjvStdj+Sfbsl8O4tTDEIKIsKe+KOQohC5GYJHWLqf7uBw7WJv1eZ7RyD+T1sbORPtSpXbXpyiOOs8aiO53f2x0+HFI3A78ABJGkQYcLxJEpS23Zv+R3Bvjj92zgB9DjBsDzst3XJIUyV19G2nMynn2w+FR8ApCD4ccoed1vx8PrPnjm45M2Wqylz+m2tNFZMMx4rAbnAttsTJ4iZLxTD23JBu/3ebW+ThsJU3tJxK7vuxd4fSFvqcEO/owLqWOf6hGm8FAgN5yzX4VMuunxLdB37gtmbX2khTisZZoNfvvu72BKn15LbUlY67kiAVUuXUJ7OdJEDJyR13T7u90oDilNxCbaqMVce6VArLyxt1o/fJ2Mq49PZ6K/APzyh+UYvMrb20uw68NM7iBe568Vp07zLyr7BMNqUo6fj5tM8LZTgdyZyHU0g3EQhCkgb3QYiWyAdBSNcgCBHCwirOMAjCpwCvhCiDJPAHYpLGniiJUSYmAWFexxuSVF8SJN8GkX+UpZ4sxgkWl8nmyM+wLK6j/Eec4CCOMjklfC9Juh5lrKSLGw0NpWssrjve5em1z8EIYZn5lgQ+u7yHwuxBYXJ5kxkwqFtDgeJaZLMYKsNL1Rlppizeu6noud4KiS6RS71VcI8ysUW2BGVGxlKNOY1jTPhygZZ6rc5ssgmPx3SwFPrCeCm6/9mkSJyWcVbI7676GaMoI9Z0h5sMx2vLS4MEi+geRTgTW8O5OSFbvTG3ZRGvE9HbpKFzj9LbOEPdeINbrRTh9Iu39p1g4SzcINykqN2BhxYAAKEFKJN56Qw+uQF2shChROb7Z4CDNYo3WOaPzyBbBQsMP/zw5IKqWMQpBBBEwLcz9AdIwDOlnTPwY8pC/pg64IsLjn/4dcsRXbcpcu/g8RE+lNzBAm6AD0BAf5T64OMZ4BWKSibyh7xVDOpn5G0w8uEDx//6gSOC5JTsrMGaIrxJI5DKmyjMUIODOg98BURJXQT00o+jXOJPjt1WoEdZGMd3m6SEvA6zVIOZQB5jN3TqwKfIi1Nf5k+oaIbdFFO6zLd9FyP46SDr5FpXQYgApxvUQL04HYRSa4G/QE2UewRfcsgzkfA2aYqiZ06tQtVu1xlBqNna6YCwRMA3vHs+mJxN+Gr50hBLEakk/+ibPCNZj3zu5WxgIX4+D8rgvwhJ7kOZGt9kZpz+GZAZ8uLIz7hGilV17USxk2EXZ/+GAif1/XfL+/+qZmtoLRF2sJveumFYooTd1HkJqZydIrVJw6Ic81DzDzXpbQE49wx0Nd4n8LkpCPg/C8pCTvsa6Gra/iJ8RbBOeyStQxAWmTW5B55ex5Uxb4GvjRrov/1BaughZt0A/wt8J0MPPu4zhpaOixuKGgy1CvxLkaWjbxGE1Xijd76yBIhg4uKVzJ+wKL9qRLmu60/DXGduxvnmBoQF8MVp8PFjGej9Ma6r+ptBLktzb6hLk0hwyYMCQs2gvxV9dC9GmzD8t4SeMizitBn1FwJeBfmYsibuPfLZTkr3Ly+MN74QRAEWCG/WpRyUd5miBISLP0gyFHq2HPCUgwSRBaL3LV2zVHr4vapfHNai8HJW/BNNk3KSdToATiTmiT5XGVgVR2Xz27cMjta2lX3JMFp7mCQvnWHfNpMgu/cilwzYk781hUozwHfROo7Ik3Xs+l8jwOwGnpnyDwyz8mwyxTdZdbQgRLGQuEuUgtAsv9/jTRq5IRESNqXAXyqnKmQZjpP/d/EiRv+TwfpmVP0gc2+/rlH9q4Bldv87sc07DHHl23D9u2DSghNykP49gNyjNAviyFniIs0wysjDdpu+G1zA4UH2IToEjv+Vg0dgbx2v4RFWyPVBiEDqcCDLwPES19q2quxVI5IDSuRbjWa+0+ZB6vXgFRz3gM/9MdX8ja9lK/bckvlfmnJlq5OaTQ7ewpN3I7wk5LzdMF62KoCbB4AQIbKHPIGZrXESePEm9CGKMdyi/OGq/mjYiASDNljAd7DnaQukPvG0/6rmDIrySpG+6vic24fbL5WK522pR2OUlyQNR61VB4uaLWGQYWETBTgDQVhsQpKvZJd/ZFsH2WSkbobS+8BD3BODm7MACk95iaT4c2DGSVIHc6fzfZUaxsv0ML/R+h6lw3iduLW3V8V7cEXm2/kmQvZWjzxb+8D9xJFNW+o0WM9L1v5zrDc3ZMMrdW9ZOZR3zrcc29obCx8pJeSX6msKoC6bv4E/JP+QOixK8Bryw1fBcoUyfJ2Xscy3tQtLLp9B8jO2XGk6T5UIi/4LpvMPTaXbfdaXubZt+fGniLTTEbo17pZ2fFHfrY2rcf5NgBU3+V1+xOiXt0aaqQ5t3XxfNNr1nR+kICTAN8j5Er7JVj7wDw3KtuzkO1VHcui01wM3wcISYSgMZiqIeVs5v2ambX/MD4oTspm6CaZvAQo55twLU6P5VuSsBUC/ShARmeDHPGi8KSYJXqvgr5g0fnK3BEHw4mgRLImngksKN049RG/6aEH5yqce4kgYe3cZvV3AIcQwSu6Wg4Gev0wfDOS6ljj0K8SEL0/fw7b+bHBRp6UzOqJ2x9JZ3jTZ8wMB/AkO7JJobW1bS4SHxlxJvVWZYW7qrWS+vcnX3nWnNOgG+AdCPDra0op0yY/TE44c8ISSrsn93WfRvI5ycmtnzjLq2i+otPcEmWJOT0/qLZaY0q5M79QP3X+m9MxpvVqPC+Nl5uDYyV/tl+flmYbd7I5mZvVeLifk3KRGZ27jdeTB8azTqjHSUWfXX1lyBxdwYHcPjmdcjjLJhKLsijnNTon850Up3+9ZHDkZToNoKfNt+P0PsktUq5AguOkSiI4Mu+sEgLazwqQtt8OqJyh1Sf5qPmFlBuxhZF2N3uGkbv94l8V2szuCDuTHEiz3KFIJkhN0j0IATosWcbqmBrjhLu8UZZm7RPmhZCyFCCN/APyPz+g1Ap/y9p6h2/vohw8lYAPgy+ujOjgD4Gu/jgo4BsCzq6PSfaKDXR7VvB0AX/04KlwbAM+ujkoPCk4j8I9Ks4ubduBvD6nptRfh/EMtL7bwFviH3W9gW/6hmcXbLpFqVa2II+2Cg+9kClCzwuoNpbYwrMhK4WR3QeLk344dPw3IdlxtrqRXfqaXt7H/Rebb1WsxEC6BmyLs+i52B/S7CkfX0ySNP38B7kcOuBXGyUAUpdM33f6rky77v7hmUmIQZdiNPPSLmwQC28vlfq8vCb2+0JNYzdVK7a+4Sh2pfC3WD44nLpE9gRQigsOuF6+TDUZd7C6zSZBheIS1m7QzFCIPt7u02z7Sh4U2Z90FyTjZjChgGnEjDLkz4AKu0+nc9D52791wg0AUgVu4YYa4UpIClXMe1r+H8DUb88cK+lXjk4u9FbCIeG6CNyna91ml+gZCC6CiXg4OpoMDq5OrjJO6xnJKv/C9puxuLyov+PxgsUApijzkBJHDvsXIu59s+Adp2+lUBqDQTTLkO6t4k1J+fq8m8fi01+t0dsTWQbTBiAo+I3lAJcXTfdI1M58RZmJkXufPiMI93KLIW63d9A64Q/6hvz0EAfIPc6QNgZorH8BBr+8Pyv9wwDd8rX4yH6ob7PBWsWw8HNPZTRKokfWVSfnTJUcrgT6D0sfyAfAZ/STuPEkSMsLLgfs1WnbFaX1VoijymaAa+RSHAfCN3KFnkoQXEHAfIr5E8UNESOXP7Ce5zVVU2gqeEKk5+wgo8rkOa3GfnIpYlFHt/POSOMgNKJdQjn+oJG9+/bjlyi00L1iyDQRctcmRu+TQ7y/ViaGalqpf/G8AAAD//50GzqT6LwAA + H4sIAAAAAAAA/9R6fXebxrb3//oUu5QcS42RhPzSRH5IiyUs81gSuoCc5rq+LAwjiVgCAkhJjq3vftcMAwwScpP2rK7edLVFs3+zZ7/vPZAff2g9eH7rwY4XNUXXLeODYSqjnjm0DFPWTetKVofSKRBab6hN+5Y6Vk3LVEeKNjWls5RypQ4V671s9q5zynlKudaGfeu9PFTH09/kgTI2pZ9Tgq4MFdlQKgBvUoA8MS11bJjycJgzfZuS+lrvRtH3qJ12idzX3o+Hmtwv6GKJfqN8qMB0ShgsBMbl5JMSmbFRhxpppF1+INuGqlHYqUMNNTKswWRw4OhzhsOebtRsPW1syupY0fv7EGo4fTru7ROp6W7eGBgwVseDnHbSLmh7Up1Qo91MLxUcFmPNtK606bgvnVBTqaNBxbaTYttQMVlLnZyWvTgaWJMpI+rJ2Z6qPbMKd76P01Us4z70sPVI6DJKUSP2xuq+Uqdi7sWJrvWtvnJZAersgyY3A0vu92k2UdOkqcZIQohvsiDoT3TtUqGr1Hva1LzEYmJFxinpjHGePFEtQ9FvFZ0FiJWA/tiwhpp2M51QWKcSJv/3VFf2wZl3ZVOuDubzNoPYzaJzkSHuRuo5FeT2ur/rnPP9yNg7+Oc2kwX7VHpyb2qY2sgyFFnvXVt9bSSrYyPV7Q1lMJhM9/e/OWGIunqr6AYb2m9O98m7+r05YzDKrdpTrMlwOlDHJUbnBUgdX2mWro2snqbr04mp9KU3NJ6NwW8Hz3nb3scwJ7wVizLbl9Vh4Z23TAGeTvqyqRQkGoc9Q8HBfasaqja2jJ6uTkziJ12R+wUnsd1mDsH1cDoZ6HJfYRCMGJOpPqABL7Y7eZLgjNYV7AZJbFP791TDkg1DHYwtXdNMa/JeEkVxj0biZ6LoI9XAkkqiSNlOZFJ7etrkAwFJoshynkyGH6yJbBjvNZ0k25U6kETxrJy4eRPQaFqIYlaS0jq0Fz6i+HMJoE0UXTaxDRVd13RJFLPyY+oVxLdQS41FktIw5d6NNVBMS9ZHlqndKGNJzHrgLmSsmO81/YbqMk0ZS2LWEnfhxvRyrJjWRFeu1N8kEXfFPCkvp+qwn8mEG1tqlPfyxOrpCg6X1BhZW2Ep6tiYXl2pPVUZk4i4sYyJ3FMkEbcZgjaVoTLRdJNJbUXXJTGrcwU9C/iUnCmim+qV3MMNR1fkEW5zGR9JzGpcBYgyk0Rc2tLJxTQnOMh/+2D1ZGy3W0U3JTErbDQzMEnRTUMSz/PpgoptKD1sVHNoWJeaZhqmLk/yfqj8pvSyvM+j4zxzcF81LuWhYqkTU74cKoYk4rKW1kx9apiYw35wZcWtrxp4l2UY15L4M+s6XcGSWLryX1NVV/pSJ0vQsUZSQh4oBq21nSwzjbE8Ma61vBawM087Yz7R1VtMxN0DNzvsk06WrHiRdVanfZoFTT5tjmTjhjKltJ6u9JWxqcrDtNT0K0e6No4/zZD4ehxECQgRtFDitH4SIrREdozgGeb250c4WtmJs6jz7WNo/U9d7VtD9UaR6k4QoSBuPKt9qd78qdHgW8dgN+AJwsjzE0iCdRiiqG7fde7Bvju5b1wA+uIlsD1q1DTDwkUV59H3nU53Wd9/KDxDEoHgwhF31KhNL6djc2pphjWWR4rEpb+52kjWcXMsCHSBq9EhTmqt46i1DBx7Sab/x/UDcpJlLS1oKRWvu4HziKIa+hJi7UjDupU4/qlob5kFutKWK+EUw2RP8Tee69m18a3aV+WscGbW6zTfNNuCWNtZFpviSVMUxGxX3vVxb8cBkCO5k+Z5s50LkJ2SSqiO5IFiGddyJnm+wApdtceUB7m2t1uBfzrA+EUuErdyoubKc6IgDmZJ0wlWLfsxxv8K83Cdb8UVP+32aaL0Rn2Jc5IIorUPghBG3sZbojlyQRCiFQiCjxJhEcQJCMJnL1kIfgyh53ZbYRQ4LbHlx63Qw+BVsMZB9TVE0oPnu8dx5EitIExa83B97MaJ1Fr56Y8gTLzAj6UI417aaTsEWOzOFkocctWoX/e0S8OrSkEfJRLVLfRc+riBTOxuJnK+SAXostIQQ3E1PFn05N61YvVVXWpt7Kjl2M4CtWy8L3IW3gbFrRqeEuQxbksMOAqCBOPSDTXlVhmbeBIeDEhjyfgtg3nL/vc6Qq1R7mcZ/24qXxLkx1iaZm8dJ8HKcCIvTFpog/wkbtV6U32Ip/rJ1JRaySpsOetoaW1Q9BDEqBmsk1otQkn01Vm5ljezZra3XEeo3oCnGgAApnkolnjxAj7bXmLFS4RCie9cQOKtULBOJP7kAuKFN0vgX//aeSAsZkEEHng+8PUYfQIReMq0cQFuQCD4D2UHfPbA8U+/bjnM6yFC9iM8P8PvOdqbwR3wHgjoU84P7i8gWSA/B+E/yFkEoHxBzjpBLvzO8b/+zuGN+JT4ogSNULKOfBDzRbSMUQlBlAe+MEROnXnk0Q38dMcfHLstjO7HyyB4XIe5yVkzi4yZscmDxF5arOEj5ASRK/GnZGuc2FFC6BJfd+0EwetXcSPluvCWCJJojUpWz04HIeea2V8gIkptbF98yAFPOOsoQv6BUwtX1essEARG1kYDhDkCvqTdYWdyJsYx8VLaFiGcSe7xd2mGox653MvRQF18OA5y579oklSHPDS+S8wg+iNDxsgJfDfmSiFW5LXlB1ac2En8T0hwnN9/Nb3/UznLWGuOEiuxowd7ucytlNiR9ZKlUjix1DpaZumYupp/YnZvM4NzB0zHYHfMZ0cgJP+eEQg+7VtMx3D7k+bLnHXexmG9BGEWG8MN8OQ5KIR5BzzTaqDz7l9iiQ8W6w74X+AHCdpwXyUMSR07KTEqAZgM/FOeJa1v5i2L9kZWvjEF8MbQThYSf0q9fFbyMsvrD93Mgst+vrsDYQZ8dhrc3+eOrvYxy+ovOjlPzUpX5yJh5+KLAkJlp79ruWjT8tfL5T/F9QQwC6Ky119weOHkEwIN7Q1y6UxK5i9nGaxdwfO9RMDYuEkQBDuPUAjC1SccDBmfLQc8QWAnUke0v6dq5kyPflS0qyPGCy9Hxd9RNAkSj9MecC0sXsvlCgGL5ChkfveOmqO2rcVf4wStnAQHL+lh39eTIN44vo0b7Olf6kK5GODaaBX4+GYd2O63bKByA09F+RuaWX427uLruDhaEPxACO05ikAop9/HYB359hJvEtb5hj+VToXL4iQI/8/5Cwv9dzrru63qerH98G2F6h9lWCr3P9O2aYXBqnyfXf+qMUnCCamR/jkG2aAo9gLfmidZmCUoxpftOnk3OIOjV/Hv/hFw/K8cPAN963gLz7BAtguCD2KDA0kCjhe52rZWRK/i4xiQfdcoFfO9Mg9iuw1ncNIGPtVHV9I3voYpm1ND4n8p78tLnVgucvAOdt6N8KKQYpvLYF4rDFw+AAQf4Tlkx8x0jBPBCdZLF/wggQeUXq7Yq2HJE9S03gx+gIrbFogdrGnnjFEG+WmmiN90fIp24eFrweKwLKw3+mlKEncwpdqbMbIsvTgR1r6XxCAIs/USxyue5Z/p1IEnGbEZo2jjOYjbEbjcCyDTlBdxiB8yZhCGrDH3Kt83saFYyofqjVYbFPWCVWgzb6+y9+CyxNfTSQTPrQ6+W7vAvebwpC02StDLHNo5BL27wxNezntL0yFfudxydGovDXw4lZCbs2cYALs3fQN/hP/BeZil4C2khy+8+QLFyW2axhJfV68MKb+DpGdsuVx0njARZp0XROefyky3VdLnsbatucFnH5fTPnqYPM7N4IqdrSc3g/SbAE1u/Dv/iNHJl/qqrvRMTf+QFdrVo+tFIITAl8jpEL6OFy7wTyXKNq/ke1mHY+i83QY7TIQ5SiATmLLA4m2l9JmKtv0pPSgI8WRqhwl5C5Dto8q90DXKb0UuagDkqwTeImH7UQ1Kb4pxgDMZ/A2dxg0f5yAITuDPvDnWVLBx4gaRg8iii2YEl996sCLLwHmMyXJmDiGAfvg473a19GV6tyuxXIKlW1hM+Lr7Hrb2R42LKC1ekBa135Yu0qJJ7w/Y4Dt2oI+Ya21bm6OkN5nKkbPII8yOnIXE19fp2Ltq5ALdAf+EicfHW5KRNv5xfsrhA3Yo0Qqv799F0zxKybW9PkupKzejktrjxbI+Oj9lSywWpV6I3mAPrT5TPHBam6lxy2AeW0lgpa/28/PSSEvs+JFEZvFeLiWkaJyjY7v0OvLVybhRY4Ck1ZnsK0vu1RW8MpuvTsZcamUcCVnaZX2anuK7h7cS3Mc48K04iTx/LvF1+PgJzxLFKCQIdjQHzCNO7FUIQMpZJtKW24NqIYpsHL+qi6FUgAogrWpkhRObnZN9iGnHj9g6kB6LbVnBSMGWHKINWgJwqj8LohURwF7uY0coju05Sg/FbWmJEuR2gf/pAN+J5xJs+wDdrKIfPeUG6wKfPx+zxukCz/w6zszRBZ4+HefqYx708ZjRtgt88eM4U60LPH06zjXIkBPPPc7FzhZNz90eEdGZF+H8ExMXW3gH/NP+N7At/1SO4m0T76oVpYjD5YKDHyRioHKGsQWFGRgWeKSw4kcvtNJvx5YbeXg6LiZXXCu/kMeHwP0q8fXitRgI18CNUGK7dmJ3yXcVjoynYRR8+QrcTxxwiyQJu62WeP622Tk7bdL/t1Z0V8vz48T2HfSLHXoCnculTrsjCu2O0BZpzjGp9mdUJYoUumbjB8djlfCcgBMRwVHTCVbhOkHNxJ7HQy9O4BlWdliP0RI5Sb1Jqu0zuSzUOePRCwfhuk8MpmI1lkvuAjiPazQad+375sZerhG0WsDN7GWMuHwnMVSKPGK/h/CMjORa4aVc//8noP4I1kmI72V1LHBmLsyCWEXwgeNTSNkolD0l1Zgam9Zpjn/SDDrCZX+LYbdGx2s3gMT1Z0Clwm3x46ca2xU+foLPdpwBSKqXJd3rJ9mUkfE8AxHO23+SL/F0GtmOHSbrCFkPyHcWKzt6jDMT4oB+/aWWTydebM08315aMSIftNOZjfYTL1kiPLHlKy981cp7ACGSGlQgrruvRt1XRu4qjt89lwOJZFDJcSlP15vNUIR8B1meb9GvW1LFRzDy1dtKv4Xhe8ZnO3EWjQbr8O/kmMpWyXLmFWZBSzuMkWstgnVE+PCVJ7ROztvtRmNv28rz1wkiGw/sfEV2ts6rdjPiH9hMt9HLvbBhviFblAtwr9odt5v/hwO+pFTxkwpbLNBTarUsnX6odm/mX9bBRXy+luo8ibdGBaHshzy+qqClAKwC7OtOvQlQKwrCH8sPhHdaW9PACx4+IierTj5t3JRGSieXasiVSTtK4TpYSci2lTQErqxxBqrycIXqHBw91XlGxkYXnrhggyJczfFzIQTXhQOSHQOXCYFBJYGOgas4tgsVwmy32yM6KP7oJXhcQYBFweZmnAh2FNlf8S0piFxMDeitbIMA91SYRcEKwghtvGAdZzkcg+274EQIc6VrkHosJvcuZDuL/HVfve5J7Qvw/h//9GNx8t2v99sL8F5Lpw3m1V/WIGiMVkcBJdIweGJ4evdbbge1HxGlDa/FYstuMJSBnQJYGRBl9AlGk3hgpG1UBEG1mP+xKDjK/t5IZtnD6YVHwDK9SJ/0N8cCSy7CyNIC91LKHpXZwjM079jEuYfXEuwwzKKZXHSZSeQyt3qXK80/ZcHTuawHzVpqiY+fgGviY+7KyHsO+Kfi70xPFP3K6sumjEfpZBWSORlf3Veb4mf1BnKMs1gFLvx8dnYYlPa+A91xZy44EC0Vs0EtH7e3tdqP18pwouiGol39bwAAAP//pTja2T42AAA= diff --git a/pkg/agent/testdata/AKSUbuntu1604+DynamicKubeletConfig/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+DynamicKubeletConfig/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+DynamicKubeletConfig/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+DynamicKubeletConfig/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+EnablePrivateClusterHostsConfigAgent/CustomData b/pkg/agent/testdata/AKSUbuntu1604+EnablePrivateClusterHostsConfigAgent/CustomData index b1a1eac2d69..82a5ac2ce9c 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+EnablePrivateClusterHostsConfigAgent/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+EnablePrivateClusterHostsConfigAgent/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1604+EnablePrivateClusterHostsConfigAgent/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+EnablePrivateClusterHostsConfigAgent/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+EnablePrivateClusterHostsConfigAgent/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+EnablePrivateClusterHostsConfigAgent/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+GPUDedicatedVHD/CustomData b/pkg/agent/testdata/AKSUbuntu1604+GPUDedicatedVHD/CustomData index 9b22121e25c..3f9fb4b7c1f 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+GPUDedicatedVHD/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+GPUDedicatedVHD/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1604+GPUDedicatedVHD/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+GPUDedicatedVHD/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+GPUDedicatedVHD/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+GPUDedicatedVHD/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+K8S115/CustomData b/pkg/agent/testdata/AKSUbuntu1604+K8S115/CustomData index 845b42384ae..d6a5e52d282 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+K8S115/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+K8S115/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1604+K8S115/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+K8S115/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+K8S115/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+K8S115/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+K8S117/CustomData b/pkg/agent/testdata/AKSUbuntu1604+K8S117/CustomData index b1a1eac2d69..82a5ac2ce9c 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+K8S117/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+K8S117/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1604+K8S117/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+K8S117/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+K8S117/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+K8S117/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+K8S118/CustomData b/pkg/agent/testdata/AKSUbuntu1604+K8S118/CustomData index b1a1eac2d69..82a5ac2ce9c 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+K8S118/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+K8S118/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - H4sIAAAAAAAA/9RZ+3Ob1pf/XX/FKcW11BohZMdN5CEtlrDMWBIsIKdZJ8tguJKoEVC4cpKvrf99514uL0t2k3an03WnLeI87jmf8wS+/068DSLx1s1WLdU0Heu9ZavToT1xLFsxbedC0SbyCVDacKLPR44202zH1qaqPrflVznlQpuozjvFHl6WlNOccqlPRs47ZaLN5r8pY3Vmyz/nBFOdqIql7mF4nTMohu1oM8tWJpNS6ZucNNKHV6q5Q+33GuSR/m420ZVRRZca9Cv1/R6efoOHGEH4SvJxg1zDqM9Amurn76nYRLMqnPoMqKnljI3xM0ef1jTs+MZgG+ozW9FmqjnaZWHAmfPZcJfIoLt6bRGGmTYbl7TjXkXbseqYgXY1P1dJWsx027nQ57ORfMyg0qbjPWLHldhEtetIHZ80ozgdO8a8Zurxqx1Xh/Y+vtNdPlMjNu6yPo8eTd2aUwzE4UzbdepEKqNomPrIGanne5j6u0zG1dhRRiNWTQyavNRqllDi6yIJRoapn6vsLouePrfPiZnEkVlOelULnmJojqWa16pZZ5D2MoxmljPR9au5wdj6e9mU/56b6i5zEV3FVvYn82mvxvG0ik6lGvFppp4yQ64vR0+Dc7qbGTsH/9yrVcEulZ08nFu2PnUsVTGHl85InyrazMp9e80UjI35rvzr4xrR1K5V06qn9uuTXfJT/16/qvGo19pQdYzJfKzNGopOKyZtdqE7pj51hrppzg1bHcmvWT5b49+ePedNb5endsIbqWqzI0WbVNF5U2vAc2Ok2GpFYnk4tFSS3NeapekzxxqammHTOJmqMqo0Sb1e7RDSD+fG2FRGao2jZoYxN8cs4aVevywSUtGmSsIgSz2G/1CzHMWytPHMMXXddox3siRJOzSaP4ZqTjWLWCpLElNrKLT3DHXjPWWSJamu2TAm7x1Dsax3ukmL7UIby5L0qlm45RDQWVlIUtGS8j60kz6S9HODQTdUU7EJhqpp6qYsSUX7sc09xDfQysGiRWnZyvDKGau2o5hTx9av1JksFTPwKctMtd/p5hXzZZ4rlqViJD5lt+bnM9V2DFO90H6TJTIVy6I8n2uTUWETGWw5KO8UwxmaKkmXHIxirNQp2syaX1xoQ02d0Yy4cixDGaqyRMYM5bbViWropl0rbdU0ZanocxW9SPicXDhi2tqFMiQDx1SVKRlzhR5ZKnrcHiamTJZIa8s3F9s2SJL/9t4ZKgS3a9W0ZalobKwyCEk1bUuWTsvtgpltqUMCqj2xnHNdty3bVIxyHqq/qcOi7svsOC0CPNKsc2WiOpphK+cT1ZIl0tbynmnOLZto2E2uormNNItIOZZ1KUs/10NnqsQSx1T/a66Z6kjuFwU602lJKGPVYr22X1SmNVMM61Ive0F95+kVyg1TuyZEMj3IsCMx6RfFSm7Wg9XvnRRJU26bU8W6YkoZbWiqI3Vma8okbzWjvStdj+Sfbsl8O4tTDEIKIsKe+KOQohC5GYJHWLqf7uBw7WJv1eZ7RyD+T1sbORPtSpXbXpyiOOs8aiO53f2x0+HFI3A78ABJGkQYcLxJEpS23Zv+R3Bvjj92zgB9DjBsDzst3XJIUyV19G2nMynn2w+FR8ApCD4ccoed1vx8PrPnjm45M2Wqylz+m2tNFZMMx4rAbnAttsTJ4iZLxTD23JBu/3ebW+ThsJU3tJxK7vuxd4fSFvqcEO/owLqWOf6hGm8FAgN5yzX4VMuunxLdB37gtmbX2khTisZZoNfvvu72BKn15LbUlY67kiAVUuXUJ7OdJEDJyR13T7u90oDilNxCbaqMVce6VArLyxt1o/fJ2Mq49PZ6K/APzyh+UYvMrb20uw68NM7iBe568Vp07zLyr7BMNqUo6fj5tM8LZTgdyZyHU0g3EQhCkgb3QYiWyAdBSNcgCBHCwirOMAjCpwCvhCiDJPAHYpLGniiJUSYmAWFexxuSVF8SJN8GkX+UpZ4sxgkWl8nmyM+wLK6j/Eec4CCOMjklfC9Juh5lrKSLGw0NpWssrjve5em1z8EIYZn5lgQ+u7yHwuxBYXJ5kxkwqFtDgeJaZLMYKsNL1Rlppizeu6noud4KiS6RS71VcI8ysUW2BGVGxlKNOY1jTPhygZZ6rc5ssgmPx3SwFPrCeCm6/9mkSJyWcVbI7676GaMoI9Z0h5sMx2vLS4MEi+geRTgTW8O5OSFbvTG3ZRGvE9HbpKFzj9LbOEPdeINbrRTh9Iu39p1g4SzcINykqN2BhxYAAKEFKJN56Qw+uQF2shChROb7Z4CDNYo3WOaPzyBbBQsMP/zw5IKqWMQpBBBEwLcz9AdIwDOlnTPwY8pC/pg64IsLjn/4dcsRXbcpcu/g8RE+lNzBAm6AD0BAf5T64OMZ4BWKSibyh7xVDOpn5G0w8uEDx//6gSOC5JTsrMGaIrxJI5DKmyjMUIODOg98BURJXQT00o+jXOJPjt1WoEdZGMd3m6SEvA6zVIOZQB5jN3TqwKfIi1Nf5k+oaIbdFFO6zLd9FyP46SDr5FpXQYgApxvUQL04HYRSa4G/QE2UewRfcsgzkfA2aYqiZ06tQtVu1xlBqNna6YCwRMA3vHs+mJxN+Gr50hBLEakk/+ibPCNZj3zu5WxgIX4+D8rgvwhJ7kOZGt9kZpz+GZAZ8uLIz7hGilV17USxk2EXZ/+GAif1/XfL+/+qZmtoLRF2sJveumFYooTd1HkJqZydIrVJw6Ic81DzDzXpbQE49wx0Nd4n8LkpCPg/C8pCTvsa6Gra/iJ8RbBOeyStQxAWmTW5B55ex5Uxb4GvjRrov/1BaughZt0A/wt8J0MPPu4zhpaOixuKGgy1CvxLkaWjbxGE1Xijd76yBIhg4uKVzJ+wKL9qRLmu60/DXGduxvnmBoQF8MVp8PFjGej9Ma6r+ptBLktzb6hLk0hwyYMCQs2gvxV9dC9GmzD8t4SeMizitBn1FwJeBfmYsibuPfLZTkr3Ly+MN74QRAEWCG/WpRyUd5miBISLP0gyFHq2HPCUgwSRBaL3LV2zVHr4vapfHNai8HJW/BNNk3KSdToATiTmiT5XGVgVR2Xz27cMjta2lX3JMFp7mCQvnWHfNpMgu/cilwzYk781hUozwHfROo7Ik3Xs+l8jwOwGnpnyDwyz8mwyxTdZdbQgRLGQuEuUgtAsv9/jTRq5IRESNqXAXyqnKmQZjpP/d/EiRv+TwfpmVP0gc2+/rlH9q4Bldv87sc07DHHl23D9u2DSghNykP49gNyjNAviyFniIs0wysjDdpu+G1zA4UH2IToEjv+Vg0dgbx2v4RFWyPVBiEDqcCDLwPES19q2quxVI5IDSuRbjWa+0+ZB6vXgFRz3gM/9MdX8ja9lK/bckvlfmnJlq5OaTQ7ewpN3I7wk5LzdMF62KoCbB4AQIbKHPIGZrXESePEm9CGKMdyi/OGq/mjYiASDNljAd7DnaQukPvG0/6rmDIrySpG+6vic24fbL5WK522pR2OUlyQNR61VB4uaLWGQYWETBTgDQVhsQpKvZJd/ZFsH2WSkbobS+8BD3BODm7MACk95iaT4c2DGSVIHc6fzfZUaxsv0ML/R+h6lw3iduLW3V8V7cEXm2/kmQvZWjzxb+8D9xJFNW+o0WM9L1v5zrDc3ZMMrdW9ZOZR3zrcc29obCx8pJeSX6msKoC6bv4E/JP+QOixK8Bryw1fBcoUyfJ2Xscy3tQtLLp9B8jO2XGk6T5UIi/4LpvMPTaXbfdaXubZt+fGniLTTEbo17pZ2fFHfrY2rcf5NgBU3+V1+xOiXt0aaqQ5t3XxfNNr1nR+kICTAN8j5Er7JVj7wDw3KtuzkO1VHcui01wM3wcISYSgMZiqIeVs5v2ambX/MD4oTspm6CaZvAQo55twLU6P5VuSsBUC/ShARmeDHPGi8KSYJXqvgr5g0fnK3BEHw4mgRLImngksKN049RG/6aEH5yqce4kgYe3cZvV3AIcQwSu6Wg4Gev0wfDOS6ljj0K8SEL0/fw7b+bHBRp6UzOqJ2x9JZ3jTZ8wMB/AkO7JJobW1bS4SHxlxJvVWZYW7qrWS+vcnX3nWnNOgG+AdCPDra0op0yY/TE44c8ISSrsn93WfRvI5ycmtnzjLq2i+otPcEmWJOT0/qLZaY0q5M79QP3X+m9MxpvVqPC+Nl5uDYyV/tl+flmYbd7I5mZvVeLifk3KRGZ27jdeTB8azTqjHSUWfXX1lyBxdwYHcPjmdcjjLJhKLsijnNTon850Up3+9ZHDkZToNoKfNt+P0PsktUq5AguOkSiI4Mu+sEgLazwqQtt8OqJyh1Sf5qPmFlBuxhZF2N3uGkbv94l8V2szuCDuTHEiz3KFIJkhN0j0IATosWcbqmBrjhLu8UZZm7RPmhZCyFCCN/APyPz+g1Ap/y9p6h2/vohw8lYAPgy+ujOjgD4Gu/jgo4BsCzq6PSfaKDXR7VvB0AX/04KlwbAM+ujkoPCk4j8I9Ks4ubduBvD6nptRfh/EMtL7bwFviH3W9gW/6hmcXbLpFqVa2II+2Cg+9kClCzwuoNpbYwrMhK4WR3QeLk344dPw3IdlxtrqRXfqaXt7H/Rebb1WsxEC6BmyLs+i52B/S7CkfX0ySNP38B7kcOuBXGyUAUpdM33f6rky77v7hmUmIQZdiNPPSLmwQC28vlfq8vCb2+0JNYzdVK7a+4Sh2pfC3WD44nLpE9gRQigsOuF6+TDUZd7C6zSZBheIS1m7QzFCIPt7u02z7Sh4U2Z90FyTjZjChgGnEjDLkz4AKu0+nc9D52791wg0AUgVu4YYa4UpIClXMe1r+H8DUb88cK+lXjk4u9FbCIeG6CNyna91ml+gZCC6CiXg4OpoMDq5OrjJO6xnJKv/C9puxuLyov+PxgsUApijzkBJHDvsXIu59s+Adp2+lUBqDQTTLkO6t4k1J+fq8m8fi01+t0dsTWQbTBiAo+I3lAJcXTfdI1M58RZmJkXufPiMI93KLIW63d9A64Q/6hvz0EAfIPc6QNgZorH8BBr+8Pyv9wwDd8rX4yH6ob7PBWsWw8HNPZTRKokfWVSfnTJUcrgT6D0sfyAfAZ/STuPEkSMsLLgfs1WnbFaX1VoijymaAa+RSHAfCN3KFnkoQXEHAfIr5E8UNESOXP7Ce5zVVU2gqeEKk5+wgo8rkOa3GfnIpYlFHt/POSOMgNKJdQjn+oJG9+/bjlyi00L1iyDQRctcmRu+TQ7y/ViaGalqpf/G8AAAD//50GzqT6LwAA + H4sIAAAAAAAA/9R6fXebxrb3//oUu5QcS42RhPzSRH5IiyUs81gSuoCc5rq+LAwjiVgCAkhJjq3vftcMAwwScpP2rK7edLVFs3+zZ7/vPZAff2g9eH7rwY4XNUXXLeODYSqjnjm0DFPWTetKVofSKRBab6hN+5Y6Vk3LVEeKNjWls5RypQ4V671s9q5zynlKudaGfeu9PFTH09/kgTI2pZ9Tgq4MFdlQKgBvUoA8MS11bJjycJgzfZuS+lrvRtH3qJ12idzX3o+Hmtwv6GKJfqN8qMB0ShgsBMbl5JMSmbFRhxpppF1+INuGqlHYqUMNNTKswWRw4OhzhsOebtRsPW1syupY0fv7EGo4fTru7ROp6W7eGBgwVseDnHbSLmh7Up1Qo91MLxUcFmPNtK606bgvnVBTqaNBxbaTYttQMVlLnZyWvTgaWJMpI+rJ2Z6qPbMKd76P01Us4z70sPVI6DJKUSP2xuq+Uqdi7sWJrvWtvnJZAersgyY3A0vu92k2UdOkqcZIQohvsiDoT3TtUqGr1Hva1LzEYmJFxinpjHGePFEtQ9FvFZ0FiJWA/tiwhpp2M51QWKcSJv/3VFf2wZl3ZVOuDubzNoPYzaJzkSHuRuo5FeT2ur/rnPP9yNg7+Oc2kwX7VHpyb2qY2sgyFFnvXVt9bSSrYyPV7Q1lMJhM9/e/OWGIunqr6AYb2m9O98m7+r05YzDKrdpTrMlwOlDHJUbnBUgdX2mWro2snqbr04mp9KU3NJ6NwW8Hz3nb3scwJ7wVizLbl9Vh4Z23TAGeTvqyqRQkGoc9Q8HBfasaqja2jJ6uTkziJ12R+wUnsd1mDsH1cDoZ6HJfYRCMGJOpPqABL7Y7eZLgjNYV7AZJbFP791TDkg1DHYwtXdNMa/JeEkVxj0biZ6LoI9XAkkqiSNlOZFJ7etrkAwFJoshynkyGH6yJbBjvNZ0k25U6kETxrJy4eRPQaFqIYlaS0jq0Fz6i+HMJoE0UXTaxDRVd13RJFLPyY+oVxLdQS41FktIw5d6NNVBMS9ZHlqndKGNJzHrgLmSsmO81/YbqMk0ZS2LWEnfhxvRyrJjWRFeu1N8kEXfFPCkvp+qwn8mEG1tqlPfyxOrpCg6X1BhZW2Ep6tiYXl2pPVUZk4i4sYyJ3FMkEbcZgjaVoTLRdJNJbUXXJTGrcwU9C/iUnCmim+qV3MMNR1fkEW5zGR9JzGpcBYgyk0Rc2tLJxTQnOMh/+2D1ZGy3W0U3JTErbDQzMEnRTUMSz/PpgoptKD1sVHNoWJeaZhqmLk/yfqj8pvSyvM+j4zxzcF81LuWhYqkTU74cKoYk4rKW1kx9apiYw35wZcWtrxp4l2UY15L4M+s6XcGSWLryX1NVV/pSJ0vQsUZSQh4oBq21nSwzjbE8Ma61vBawM087Yz7R1VtMxN0DNzvsk06WrHiRdVanfZoFTT5tjmTjhjKltJ6u9JWxqcrDtNT0K0e6No4/zZD4ehxECQgRtFDitH4SIrREdozgGeb250c4WtmJs6jz7WNo/U9d7VtD9UaR6k4QoSBuPKt9qd78qdHgW8dgN+AJwsjzE0iCdRiiqG7fde7Bvju5b1wA+uIlsD1q1DTDwkUV59H3nU53Wd9/KDxDEoHgwhF31KhNL6djc2pphjWWR4rEpb+52kjWcXMsCHSBq9EhTmqt46i1DBx7Sab/x/UDcpJlLS1oKRWvu4HziKIa+hJi7UjDupU4/qlob5kFutKWK+EUw2RP8Tee69m18a3aV+WscGbW6zTfNNuCWNtZFpviSVMUxGxX3vVxb8cBkCO5k+Z5s50LkJ2SSqiO5IFiGddyJnm+wApdtceUB7m2t1uBfzrA+EUuErdyoubKc6IgDmZJ0wlWLfsxxv8K83Cdb8UVP+32aaL0Rn2Jc5IIorUPghBG3sZbojlyQRCiFQiCjxJhEcQJCMJnL1kIfgyh53ZbYRQ4LbHlx63Qw+BVsMZB9TVE0oPnu8dx5EitIExa83B97MaJ1Fr56Y8gTLzAj6UI417aaTsEWOzOFkocctWoX/e0S8OrSkEfJRLVLfRc+riBTOxuJnK+SAXostIQQ3E1PFn05N61YvVVXWpt7Kjl2M4CtWy8L3IW3gbFrRqeEuQxbksMOAqCBOPSDTXlVhmbeBIeDEhjyfgtg3nL/vc6Qq1R7mcZ/24qXxLkx1iaZm8dJ8HKcCIvTFpog/wkbtV6U32Ip/rJ1JRaySpsOetoaW1Q9BDEqBmsk1otQkn01Vm5ljezZra3XEeo3oCnGgAApnkolnjxAj7bXmLFS4RCie9cQOKtULBOJP7kAuKFN0vgX//aeSAsZkEEHng+8PUYfQIReMq0cQFuQCD4D2UHfPbA8U+/bjnM6yFC9iM8P8PvOdqbwR3wHgjoU84P7i8gWSA/B+E/yFkEoHxBzjpBLvzO8b/+zuGN+JT4ogSNULKOfBDzRbSMUQlBlAe+MEROnXnk0Q38dMcfHLstjO7HyyB4XIe5yVkzi4yZscmDxF5arOEj5ASRK/GnZGuc2FFC6BJfd+0EwetXcSPluvCWCJJojUpWz04HIeea2V8gIkptbF98yAFPOOsoQv6BUwtX1essEARG1kYDhDkCvqTdYWdyJsYx8VLaFiGcSe7xd2mGox653MvRQF18OA5y579oklSHPDS+S8wg+iNDxsgJfDfmSiFW5LXlB1ac2En8T0hwnN9/Nb3/UznLWGuOEiuxowd7ucytlNiR9ZKlUjix1DpaZumYupp/YnZvM4NzB0zHYHfMZ0cgJP+eEQg+7VtMx3D7k+bLnHXexmG9BGEWG8MN8OQ5KIR5BzzTaqDz7l9iiQ8W6w74X+AHCdpwXyUMSR07KTEqAZgM/FOeJa1v5i2L9kZWvjEF8MbQThYSf0q9fFbyMsvrD93Mgst+vrsDYQZ8dhrc3+eOrvYxy+ovOjlPzUpX5yJh5+KLAkJlp79ruWjT8tfL5T/F9QQwC6Ky119weOHkEwIN7Q1y6UxK5i9nGaxdwfO9RMDYuEkQBDuPUAjC1SccDBmfLQc8QWAnUke0v6dq5kyPflS0qyPGCy9Hxd9RNAkSj9MecC0sXsvlCgGL5ChkfveOmqO2rcVf4wStnAQHL+lh39eTIN44vo0b7Olf6kK5GODaaBX4+GYd2O63bKByA09F+RuaWX427uLruDhaEPxACO05ikAop9/HYB359hJvEtb5hj+VToXL4iQI/8/5Cwv9dzrru63qerH98G2F6h9lWCr3P9O2aYXBqnyfXf+qMUnCCamR/jkG2aAo9gLfmidZmCUoxpftOnk3OIOjV/Hv/hFw/K8cPAN963gLz7BAtguCD2KDA0kCjhe52rZWRK/i4xiQfdcoFfO9Mg9iuw1ncNIGPtVHV9I3voYpm1ND4n8p78tLnVgucvAOdt6N8KKQYpvLYF4rDFw+AAQf4Tlkx8x0jBPBCdZLF/wggQeUXq7Yq2HJE9S03gx+gIrbFogdrGnnjFEG+WmmiN90fIp24eFrweKwLKw3+mlKEncwpdqbMbIsvTgR1r6XxCAIs/USxyue5Z/p1IEnGbEZo2jjOYjbEbjcCyDTlBdxiB8yZhCGrDH3Kt83saFYyofqjVYbFPWCVWgzb6+y9+CyxNfTSQTPrQ6+W7vAvebwpC02StDLHNo5BL27wxNezntL0yFfudxydGovDXw4lZCbs2cYALs3fQN/hP/BeZil4C2khy+8+QLFyW2axhJfV68MKb+DpGdsuVx0njARZp0XROefyky3VdLnsbatucFnH5fTPnqYPM7N4IqdrSc3g/SbAE1u/Dv/iNHJl/qqrvRMTf+QFdrVo+tFIITAl8jpEL6OFy7wTyXKNq/ke1mHY+i83QY7TIQ5SiATmLLA4m2l9JmKtv0pPSgI8WRqhwl5C5Dto8q90DXKb0UuagDkqwTeImH7UQ1Kb4pxgDMZ/A2dxg0f5yAITuDPvDnWVLBx4gaRg8iii2YEl996sCLLwHmMyXJmDiGAfvg473a19GV6tyuxXIKlW1hM+Lr7Hrb2R42LKC1ekBa135Yu0qJJ7w/Y4Dt2oI+Ya21bm6OkN5nKkbPII8yOnIXE19fp2Ltq5ALdAf+EicfHW5KRNv5xfsrhA3Yo0Qqv799F0zxKybW9PkupKzejktrjxbI+Oj9lSywWpV6I3mAPrT5TPHBam6lxy2AeW0lgpa/28/PSSEvs+JFEZvFeLiWkaJyjY7v0OvLVybhRY4Ck1ZnsK0vu1RW8MpuvTsZcamUcCVnaZX2anuK7h7cS3Mc48K04iTx/LvF1+PgJzxLFKCQIdjQHzCNO7FUIQMpZJtKW24NqIYpsHL+qi6FUgAogrWpkhRObnZN9iGnHj9g6kB6LbVnBSMGWHKINWgJwqj8LohURwF7uY0coju05Sg/FbWmJEuR2gf/pAN+J5xJs+wDdrKIfPeUG6wKfPx+zxukCz/w6zszRBZ4+HefqYx708ZjRtgt88eM4U60LPH06zjXIkBPPPc7FzhZNz90eEdGZF+H8ExMXW3gH/NP+N7At/1SO4m0T76oVpYjD5YKDHyRioHKGsQWFGRgWeKSw4kcvtNJvx5YbeXg6LiZXXCu/kMeHwP0q8fXitRgI18CNUGK7dmJ3yXcVjoynYRR8+QrcTxxwiyQJu62WeP622Tk7bdL/t1Z0V8vz48T2HfSLHXoCnculTrsjCu2O0BZpzjGp9mdUJYoUumbjB8djlfCcgBMRwVHTCVbhOkHNxJ7HQy9O4BlWdliP0RI5Sb1Jqu0zuSzUOePRCwfhuk8MpmI1lkvuAjiPazQad+375sZerhG0WsDN7GWMuHwnMVSKPGK/h/CMjORa4aVc//8noP4I1kmI72V1LHBmLsyCWEXwgeNTSNkolD0l1Zgam9Zpjn/SDDrCZX+LYbdGx2s3gMT1Z0Clwm3x46ca2xU+foLPdpwBSKqXJd3rJ9mUkfE8AxHO23+SL/F0GtmOHSbrCFkPyHcWKzt6jDMT4oB+/aWWTydebM08315aMSIftNOZjfYTL1kiPLHlKy981cp7ACGSGlQgrruvRt1XRu4qjt89lwOJZFDJcSlP15vNUIR8B1meb9GvW1LFRzDy1dtKv4Xhe8ZnO3EWjQbr8O/kmMpWyXLmFWZBSzuMkWstgnVE+PCVJ7ROztvtRmNv28rz1wkiGw/sfEV2ts6rdjPiH9hMt9HLvbBhviFblAtwr9odt5v/hwO+pFTxkwpbLNBTarUsnX6odm/mX9bBRXy+luo8ibdGBaHshzy+qqClAKwC7OtOvQlQKwrCH8sPhHdaW9PACx4+IierTj5t3JRGSieXasiVSTtK4TpYSci2lTQErqxxBqrycIXqHBw91XlGxkYXnrhggyJczfFzIQTXhQOSHQOXCYFBJYGOgas4tgsVwmy32yM6KP7oJXhcQYBFweZmnAh2FNlf8S0piFxMDeitbIMA91SYRcEKwghtvGAdZzkcg+274EQIc6VrkHosJvcuZDuL/HVfve5J7Qvw/h//9GNx8t2v99sL8F5Lpw3m1V/WIGiMVkcBJdIweGJ4evdbbge1HxGlDa/FYstuMJSBnQJYGRBl9AlGk3hgpG1UBEG1mP+xKDjK/t5IZtnD6YVHwDK9SJ/0N8cCSy7CyNIC91LKHpXZwjM079jEuYfXEuwwzKKZXHSZSeQyt3qXK80/ZcHTuawHzVpqiY+fgGviY+7KyHsO+Kfi70xPFP3K6sumjEfpZBWSORlf3Veb4mf1BnKMs1gFLvx8dnYYlPa+A91xZy44EC0Vs0EtH7e3tdqP18pwouiGol39bwAAAP//pTja2T42AAA= diff --git a/pkg/agent/testdata/AKSUbuntu1604+K8S118/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+K8S118/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+K8S118/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+K8S118/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+KubeletConfigFile/CustomData b/pkg/agent/testdata/AKSUbuntu1604+KubeletConfigFile/CustomData index 2fa00f695ba..0eecf8cb31b 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+KubeletConfigFile/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+KubeletConfigFile/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1604+KubeletConfigFile/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+KubeletConfigFile/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+KubeletConfigFile/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+KubeletConfigFile/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+OSKubeletDisk/CustomData b/pkg/agent/testdata/AKSUbuntu1604+OSKubeletDisk/CustomData index 845b42384ae..d6a5e52d282 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+OSKubeletDisk/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+OSKubeletDisk/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1604+OSKubeletDisk/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+OSKubeletDisk/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+OSKubeletDisk/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+OSKubeletDisk/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+TempDisk+Containerd/CustomData b/pkg/agent/testdata/AKSUbuntu1604+TempDisk+Containerd/CustomData index b25935e95bb..1978fc63367 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+TempDisk+Containerd/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+TempDisk+Containerd/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - H4sIAAAAAAAA/9RZ+3Ob1pf/XX/FKcW11BohZMdN5CEtlrDMWBIsIKdZJ8tguJKoEVC4cpKvrf99514uL0t2k3an03WnLeI87jmf8wS+/068DSLx1s1WLdU0Heu9ZavToT1xLFsxbedC0SbyCVDacKLPR44202zH1qaqPrflVznlQpuozjvFHl6WlNOccqlPRs47ZaLN5r8pY3Vmyz/nBFOdqIql7mF4nTMohu1oM8tWJpNS6ZucNNKHV6q5Q+33GuSR/m420ZVRRZca9Cv1/R6efoOHGEH4SvJxg1zDqM9Amurn76nYRLMqnPoMqKnljI3xM0ef1jTs+MZgG+ozW9FmqjnaZWHAmfPZcJfIoLt6bRGGmTYbl7TjXkXbseqYgXY1P1dJWsx027nQ57ORfMyg0qbjPWLHldhEtetIHZ80ozgdO8a8Zurxqx1Xh/Y+vtNdPlMjNu6yPo8eTd2aUwzE4UzbdepEKqNomPrIGanne5j6u0zG1dhRRiNWTQyavNRqllDi6yIJRoapn6vsLouePrfPiZnEkVlOelULnmJojqWa16pZZ5D2MoxmljPR9au5wdj6e9mU/56b6i5zEV3FVvYn82mvxvG0ik6lGvFppp4yQ64vR0+Dc7qbGTsH/9yrVcEulZ08nFu2PnUsVTGHl85InyrazMp9e80UjI35rvzr4xrR1K5V06qn9uuTXfJT/16/qvGo19pQdYzJfKzNGopOKyZtdqE7pj51hrppzg1bHcmvWT5b49+ePedNb5endsIbqWqzI0WbVNF5U2vAc2Ok2GpFYnk4tFSS3NeapekzxxqammHTOJmqMqo0Sb1e7RDSD+fG2FRGao2jZoYxN8cs4aVevywSUtGmSsIgSz2G/1CzHMWytPHMMXXddox3siRJOzSaP4ZqTjWLWCpLElNrKLT3DHXjPWWSJamu2TAm7x1Dsax3ukmL7UIby5L0qlm45RDQWVlIUtGS8j60kz6S9HODQTdUU7EJhqpp6qYsSUX7sc09xDfQysGiRWnZyvDKGau2o5hTx9av1JksFTPwKctMtd/p5hXzZZ4rlqViJD5lt+bnM9V2DFO90H6TJTIVy6I8n2uTUWETGWw5KO8UwxmaKkmXHIxirNQp2syaX1xoQ02d0Yy4cixDGaqyRMYM5bbViWropl0rbdU0ZanocxW9SPicXDhi2tqFMiQDx1SVKRlzhR5ZKnrcHiamTJZIa8s3F9s2SJL/9t4ZKgS3a9W0ZalobKwyCEk1bUuWTsvtgpltqUMCqj2xnHNdty3bVIxyHqq/qcOi7svsOC0CPNKsc2WiOpphK+cT1ZIl0tbynmnOLZto2E2uormNNItIOZZ1KUs/10NnqsQSx1T/a66Z6kjuFwU602lJKGPVYr22X1SmNVMM61Ive0F95+kVyg1TuyZEMj3IsCMx6RfFSm7Wg9XvnRRJU26bU8W6YkoZbWiqI3Vma8okbzWjvStdj+Sfbsl8O4tTDEIKIsKe+KOQohC5GYJHWLqf7uBw7WJv1eZ7RyD+T1sbORPtSpXbXpyiOOs8aiO53f2x0+HFI3A78ABJGkQYcLxJEpS23Zv+R3Bvjj92zgB9DjBsDzst3XJIUyV19G2nMynn2w+FR8ApCD4ccoed1vx8PrPnjm45M2Wqylz+m2tNFZMMx4rAbnAttsTJ4iZLxTD23JBu/3ebW+ThsJU3tJxK7vuxd4fSFvqcEO/owLqWOf6hGm8FAgN5yzX4VMuunxLdB37gtmbX2khTisZZoNfvvu72BKn15LbUlY67kiAVUuXUJ7OdJEDJyR13T7u90oDilNxCbaqMVce6VArLyxt1o/fJ2Mq49PZ6K/APzyh+UYvMrb20uw68NM7iBe568Vp07zLyr7BMNqUo6fj5tM8LZTgdyZyHU0g3EQhCkgb3QYiWyAdBSNcgCBHCwirOMAjCpwCvhCiDJPAHYpLGniiJUSYmAWFexxuSVF8SJN8GkX+UpZ4sxgkWl8nmyM+wLK6j/Eec4CCOMjklfC9Juh5lrKSLGw0NpWssrjve5em1z8EIYZn5lgQ+u7yHwuxBYXJ5kxkwqFtDgeJaZLMYKsNL1Rlppizeu6noud4KiS6RS71VcI8ysUW2BGVGxlKNOY1jTPhygZZ6rc5ssgmPx3SwFPrCeCm6/9mkSJyWcVbI7676GaMoI9Z0h5sMx2vLS4MEi+geRTgTW8O5OSFbvTG3ZRGvE9HbpKFzj9LbOEPdeINbrRTh9Iu39p1g4SzcINykqN2BhxYAAKEFKJN56Qw+uQF2shChROb7Z4CDNYo3WOaPzyBbBQsMP/zw5IKqWMQpBBBEwLcz9AdIwDOlnTPwY8pC/pg64IsLjn/4dcsRXbcpcu/g8RE+lNzBAm6AD0BAf5T64OMZ4BWKSibyh7xVDOpn5G0w8uEDx//6gSOC5JTsrMGaIrxJI5DKmyjMUIODOg98BURJXQT00o+jXOJPjt1WoEdZGMd3m6SEvA6zVIOZQB5jN3TqwKfIi1Nf5k+oaIbdFFO6zLd9FyP46SDr5FpXQYgApxvUQL04HYRSa4G/QE2UewRfcsgzkfA2aYqiZ06tQtVu1xlBqNna6YCwRMA3vHs+mJxN+Gr50hBLEakk/+ibPCNZj3zu5WxgIX4+D8rgvwhJ7kOZGt9kZpz+GZAZ8uLIz7hGilV17USxk2EXZ/+GAif1/XfL+/+qZmtoLRF2sJveumFYooTd1HkJqZydIrVJw6Ic81DzDzXpbQE49wx0Nd4n8LkpCPg/C8pCTvsa6Gra/iJ8RbBOeyStQxAWmTW5B55ex5Uxb4GvjRrov/1BaughZt0A/wt8J0MPPu4zhpaOixuKGgy1CvxLkaWjbxGE1Xijd76yBIhg4uKVzJ+wKL9qRLmu60/DXGduxvnmBoQF8MVp8PFjGej9Ma6r+ptBLktzb6hLk0hwyYMCQs2gvxV9dC9GmzD8t4SeMizitBn1FwJeBfmYsibuPfLZTkr3Ly+MN74QRAEWCG/WpRyUd5miBISLP0gyFHq2HPCUgwSRBaL3LV2zVHr4vapfHNai8HJW/BNNk3KSdToATiTmiT5XGVgVR2Xz27cMjta2lX3JMFp7mCQvnWHfNpMgu/cilwzYk781hUozwHfROo7Ik3Xs+l8jwOwGnpnyDwyz8mwyxTdZdbQgRLGQuEuUgtAsv9/jTRq5IRESNqXAXyqnKmQZjpP/d/EiRv+TwfpmVP0gc2+/rlH9q4Bldv87sc07DHHl23D9u2DSghNykP49gNyjNAviyFniIs0wysjDdpu+G1zA4UH2IToEjv+Vg0dgbx2v4RFWyPVBiEDqcCDLwPES19q2quxVI5IDSuRbjWa+0+ZB6vXgFRz3gM/9MdX8ja9lK/bckvlfmnJlq5OaTQ7ewpN3I7wk5LzdMF62KoCbB4AQIbKHPIGZrXESePEm9CGKMdyi/OGq/mjYiASDNljAd7DnaQukPvG0/6rmDIrySpG+6vic24fbL5WK522pR2OUlyQNR61VB4uaLWGQYWETBTgDQVhsQpKvZJd/ZFsH2WSkbobS+8BD3BODm7MACk95iaT4c2DGSVIHc6fzfZUaxsv0ML/R+h6lw3iduLW3V8V7cEXm2/kmQvZWjzxb+8D9xJFNW+o0WM9L1v5zrDc3ZMMrdW9ZOZR3zrcc29obCx8pJeSX6msKoC6bv4E/JP+QOixK8Bryw1fBcoUyfJ2Xscy3tQtLLp9B8jO2XGk6T5UIi/4LpvMPTaXbfdaXubZt+fGniLTTEbo17pZ2fFHfrY2rcf5NgBU3+V1+xOiXt0aaqQ5t3XxfNNr1nR+kICTAN8j5Er7JVj7wDw3KtuzkO1VHcui01wM3wcISYSgMZiqIeVs5v2ambX/MD4oTspm6CaZvAQo55twLU6P5VuSsBUC/ShARmeDHPGi8KSYJXqvgr5g0fnK3BEHw4mgRLImngksKN049RG/6aEH5yqce4kgYe3cZvV3AIcQwSu6Wg4Gev0wfDOS6ljj0K8SEL0/fw7b+bHBRp6UzOqJ2x9JZ3jTZ8wMB/AkO7JJobW1bS4SHxlxJvVWZYW7qrWS+vcnX3nWnNOgG+AdCPDra0op0yY/TE44c8ISSrsn93WfRvI5ycmtnzjLq2i+otPcEmWJOT0/qLZaY0q5M79QP3X+m9MxpvVqPC+Nl5uDYyV/tl+flmYbd7I5mZvVeLifk3KRGZ27jdeTB8azTqjHSUWfXX1lyBxdwYHcPjmdcjjLJhKLsijnNTon850Up3+9ZHDkZToNoKfNt+P0PsktUq5AguOkSiI4Mu+sEgLazwqQtt8OqJyh1Sf5qPmFlBuxhZF2N3uGkbv94l8V2szuCDuTHEiz3KFIJkhN0j0IATosWcbqmBrjhLu8UZZm7RPmhZCyFCCN/APyPz+g1Ap/y9p6h2/vohw8lYAPgy+ujOjgD4Gu/jgo4BsCzq6PSfaKDXR7VvB0AX/04KlwbAM+ujkoPCk4j8I9Ks4ubduBvD6nptRfh/EMtL7bwFviH3W9gW/6hmcXbLpFqVa2II+2Cg+9kClCzwuoNpbYwrMhK4WR3QeLk344dPw3IdlxtrqRXfqaXt7H/Rebb1WsxEC6BmyLs+i52B/S7CkfX0ySNP38B7kcOuBXGyUAUpdM33f6rky77v7hmUmIQZdiNPPSLmwQC28vlfq8vCb2+0JNYzdVK7a+4Sh2pfC3WD44nLpE9gRQigsOuF6+TDUZd7C6zSZBheIS1m7QzFCIPt7u02z7Sh4U2Z90FyTjZjChgGnEjDLkz4AKu0+nc9D52791wg0AUgVu4YYa4UpIClXMe1r+H8DUb88cK+lXjk4u9FbCIeG6CNyna91ml+gZCC6CiXg4OpoMDq5OrjJO6xnJKv/C9puxuLyov+PxgsUApijzkBJHDvsXIu59s+Adp2+lUBqDQTTLkO6t4k1J+fq8m8fi01+t0dsTWQbTBiAo+I3lAJcXTfdI1M58RZmJkXufPiMI93KLIW63d9A64Q/6hvz0EAfIPc6QNgZorH8BBr+8Pyv9wwDd8rX4yH6ob7PBWsWw8HNPZTRKokfWVSfnTJUcrgT6D0sfyAfAZ/STuPEkSMsLLgfs1WnbFaX1VoijymaAa+RSHAfCN3KFnkoQXEHAfIr5E8UNESOXP7Ce5zVVU2gqeEKk5+wgo8rkOa3GfnIpYlFHt/POSOMgNKJdQjn+oJG9+/bjlyi00L1iyDQRctcmRu+TQ7y/ViaGalqpf/G8AAAD//50GzqT6LwAA + H4sIAAAAAAAA/9R6fXebxrb3//oUu5QcS42RhPzSRH5IiyUs81gSuoCc5rq+LAwjiVgCAkhJjq3vftcMAwwScpP2rK7edLVFs3+zZ7/vPZAff2g9eH7rwY4XNUXXLeODYSqjnjm0DFPWTetKVofSKRBab6hN+5Y6Vk3LVEeKNjWls5RypQ4V671s9q5zynlKudaGfeu9PFTH09/kgTI2pZ9Tgq4MFdlQKgBvUoA8MS11bJjycJgzfZuS+lrvRtH3qJ12idzX3o+Hmtwv6GKJfqN8qMB0ShgsBMbl5JMSmbFRhxpppF1+INuGqlHYqUMNNTKswWRw4OhzhsOebtRsPW1syupY0fv7EGo4fTru7ROp6W7eGBgwVseDnHbSLmh7Up1Qo91MLxUcFmPNtK606bgvnVBTqaNBxbaTYttQMVlLnZyWvTgaWJMpI+rJ2Z6qPbMKd76P01Us4z70sPVI6DJKUSP2xuq+Uqdi7sWJrvWtvnJZAersgyY3A0vu92k2UdOkqcZIQohvsiDoT3TtUqGr1Hva1LzEYmJFxinpjHGePFEtQ9FvFZ0FiJWA/tiwhpp2M51QWKcSJv/3VFf2wZl3ZVOuDubzNoPYzaJzkSHuRuo5FeT2ur/rnPP9yNg7+Oc2kwX7VHpyb2qY2sgyFFnvXVt9bSSrYyPV7Q1lMJhM9/e/OWGIunqr6AYb2m9O98m7+r05YzDKrdpTrMlwOlDHJUbnBUgdX2mWro2snqbr04mp9KU3NJ6NwW8Hz3nb3scwJ7wVizLbl9Vh4Z23TAGeTvqyqRQkGoc9Q8HBfasaqja2jJ6uTkziJ12R+wUnsd1mDsH1cDoZ6HJfYRCMGJOpPqABL7Y7eZLgjNYV7AZJbFP791TDkg1DHYwtXdNMa/JeEkVxj0biZ6LoI9XAkkqiSNlOZFJ7etrkAwFJoshynkyGH6yJbBjvNZ0k25U6kETxrJy4eRPQaFqIYlaS0jq0Fz6i+HMJoE0UXTaxDRVd13RJFLPyY+oVxLdQS41FktIw5d6NNVBMS9ZHlqndKGNJzHrgLmSsmO81/YbqMk0ZS2LWEnfhxvRyrJjWRFeu1N8kEXfFPCkvp+qwn8mEG1tqlPfyxOrpCg6X1BhZW2Ep6tiYXl2pPVUZk4i4sYyJ3FMkEbcZgjaVoTLRdJNJbUXXJTGrcwU9C/iUnCmim+qV3MMNR1fkEW5zGR9JzGpcBYgyk0Rc2tLJxTQnOMh/+2D1ZGy3W0U3JTErbDQzMEnRTUMSz/PpgoptKD1sVHNoWJeaZhqmLk/yfqj8pvSyvM+j4zxzcF81LuWhYqkTU74cKoYk4rKW1kx9apiYw35wZcWtrxp4l2UY15L4M+s6XcGSWLryX1NVV/pSJ0vQsUZSQh4oBq21nSwzjbE8Ma61vBawM087Yz7R1VtMxN0DNzvsk06WrHiRdVanfZoFTT5tjmTjhjKltJ6u9JWxqcrDtNT0K0e6No4/zZD4ehxECQgRtFDitH4SIrREdozgGeb250c4WtmJs6jz7WNo/U9d7VtD9UaR6k4QoSBuPKt9qd78qdHgW8dgN+AJwsjzE0iCdRiiqG7fde7Bvju5b1wA+uIlsD1q1DTDwkUV59H3nU53Wd9/KDxDEoHgwhF31KhNL6djc2pphjWWR4rEpb+52kjWcXMsCHSBq9EhTmqt46i1DBx7Sab/x/UDcpJlLS1oKRWvu4HziKIa+hJi7UjDupU4/qlob5kFutKWK+EUw2RP8Tee69m18a3aV+WscGbW6zTfNNuCWNtZFpviSVMUxGxX3vVxb8cBkCO5k+Z5s50LkJ2SSqiO5IFiGddyJnm+wApdtceUB7m2t1uBfzrA+EUuErdyoubKc6IgDmZJ0wlWLfsxxv8K83Cdb8UVP+32aaL0Rn2Jc5IIorUPghBG3sZbojlyQRCiFQiCjxJhEcQJCMJnL1kIfgyh53ZbYRQ4LbHlx63Qw+BVsMZB9TVE0oPnu8dx5EitIExa83B97MaJ1Fr56Y8gTLzAj6UI417aaTsEWOzOFkocctWoX/e0S8OrSkEfJRLVLfRc+riBTOxuJnK+SAXostIQQ3E1PFn05N61YvVVXWpt7Kjl2M4CtWy8L3IW3gbFrRqeEuQxbksMOAqCBOPSDTXlVhmbeBIeDEhjyfgtg3nL/vc6Qq1R7mcZ/24qXxLkx1iaZm8dJ8HKcCIvTFpog/wkbtV6U32Ip/rJ1JRaySpsOetoaW1Q9BDEqBmsk1otQkn01Vm5ljezZra3XEeo3oCnGgAApnkolnjxAj7bXmLFS4RCie9cQOKtULBOJP7kAuKFN0vgX//aeSAsZkEEHng+8PUYfQIReMq0cQFuQCD4D2UHfPbA8U+/bjnM6yFC9iM8P8PvOdqbwR3wHgjoU84P7i8gWSA/B+E/yFkEoHxBzjpBLvzO8b/+zuGN+JT4ogSNULKOfBDzRbSMUQlBlAe+MEROnXnk0Q38dMcfHLstjO7HyyB4XIe5yVkzi4yZscmDxF5arOEj5ASRK/GnZGuc2FFC6BJfd+0EwetXcSPluvCWCJJojUpWz04HIeea2V8gIkptbF98yAFPOOsoQv6BUwtX1essEARG1kYDhDkCvqTdYWdyJsYx8VLaFiGcSe7xd2mGox653MvRQF18OA5y579oklSHPDS+S8wg+iNDxsgJfDfmSiFW5LXlB1ac2En8T0hwnN9/Nb3/UznLWGuOEiuxowd7ucytlNiR9ZKlUjix1DpaZumYupp/YnZvM4NzB0zHYHfMZ0cgJP+eEQg+7VtMx3D7k+bLnHXexmG9BGEWG8MN8OQ5KIR5BzzTaqDz7l9iiQ8W6w74X+AHCdpwXyUMSR07KTEqAZgM/FOeJa1v5i2L9kZWvjEF8MbQThYSf0q9fFbyMsvrD93Mgst+vrsDYQZ8dhrc3+eOrvYxy+ovOjlPzUpX5yJh5+KLAkJlp79ruWjT8tfL5T/F9QQwC6Ky119weOHkEwIN7Q1y6UxK5i9nGaxdwfO9RMDYuEkQBDuPUAjC1SccDBmfLQc8QWAnUke0v6dq5kyPflS0qyPGCy9Hxd9RNAkSj9MecC0sXsvlCgGL5ChkfveOmqO2rcVf4wStnAQHL+lh39eTIN44vo0b7Olf6kK5GODaaBX4+GYd2O63bKByA09F+RuaWX427uLruDhaEPxACO05ikAop9/HYB359hJvEtb5hj+VToXL4iQI/8/5Cwv9dzrru63qerH98G2F6h9lWCr3P9O2aYXBqnyfXf+qMUnCCamR/jkG2aAo9gLfmidZmCUoxpftOnk3OIOjV/Hv/hFw/K8cPAN963gLz7BAtguCD2KDA0kCjhe52rZWRK/i4xiQfdcoFfO9Mg9iuw1ncNIGPtVHV9I3voYpm1ND4n8p78tLnVgucvAOdt6N8KKQYpvLYF4rDFw+AAQf4Tlkx8x0jBPBCdZLF/wggQeUXq7Yq2HJE9S03gx+gIrbFogdrGnnjFEG+WmmiN90fIp24eFrweKwLKw3+mlKEncwpdqbMbIsvTgR1r6XxCAIs/USxyue5Z/p1IEnGbEZo2jjOYjbEbjcCyDTlBdxiB8yZhCGrDH3Kt83saFYyofqjVYbFPWCVWgzb6+y9+CyxNfTSQTPrQ6+W7vAvebwpC02StDLHNo5BL27wxNezntL0yFfudxydGovDXw4lZCbs2cYALs3fQN/hP/BeZil4C2khy+8+QLFyW2axhJfV68MKb+DpGdsuVx0njARZp0XROefyky3VdLnsbatucFnH5fTPnqYPM7N4IqdrSc3g/SbAE1u/Dv/iNHJl/qqrvRMTf+QFdrVo+tFIITAl8jpEL6OFy7wTyXKNq/ke1mHY+i83QY7TIQ5SiATmLLA4m2l9JmKtv0pPSgI8WRqhwl5C5Dto8q90DXKb0UuagDkqwTeImH7UQ1Kb4pxgDMZ/A2dxg0f5yAITuDPvDnWVLBx4gaRg8iii2YEl996sCLLwHmMyXJmDiGAfvg473a19GV6tyuxXIKlW1hM+Lr7Hrb2R42LKC1ekBa135Yu0qJJ7w/Y4Dt2oI+Ya21bm6OkN5nKkbPII8yOnIXE19fp2Ltq5ALdAf+EicfHW5KRNv5xfsrhA3Yo0Qqv799F0zxKybW9PkupKzejktrjxbI+Oj9lSywWpV6I3mAPrT5TPHBam6lxy2AeW0lgpa/28/PSSEvs+JFEZvFeLiWkaJyjY7v0OvLVybhRY4Ck1ZnsK0vu1RW8MpuvTsZcamUcCVnaZX2anuK7h7cS3Mc48K04iTx/LvF1+PgJzxLFKCQIdjQHzCNO7FUIQMpZJtKW24NqIYpsHL+qi6FUgAogrWpkhRObnZN9iGnHj9g6kB6LbVnBSMGWHKINWgJwqj8LohURwF7uY0coju05Sg/FbWmJEuR2gf/pAN+J5xJs+wDdrKIfPeUG6wKfPx+zxukCz/w6zszRBZ4+HefqYx708ZjRtgt88eM4U60LPH06zjXIkBPPPc7FzhZNz90eEdGZF+H8ExMXW3gH/NP+N7At/1SO4m0T76oVpYjD5YKDHyRioHKGsQWFGRgWeKSw4kcvtNJvx5YbeXg6LiZXXCu/kMeHwP0q8fXitRgI18CNUGK7dmJ3yXcVjoynYRR8+QrcTxxwiyQJu62WeP622Tk7bdL/t1Z0V8vz48T2HfSLHXoCnculTrsjCu2O0BZpzjGp9mdUJYoUumbjB8djlfCcgBMRwVHTCVbhOkHNxJ7HQy9O4BlWdliP0RI5Sb1Jqu0zuSzUOePRCwfhuk8MpmI1lkvuAjiPazQad+375sZerhG0WsDN7GWMuHwnMVSKPGK/h/CMjORa4aVc//8noP4I1kmI72V1LHBmLsyCWEXwgeNTSNkolD0l1Zgam9Zpjn/SDDrCZX+LYbdGx2s3gMT1Z0Clwm3x46ca2xU+foLPdpwBSKqXJd3rJ9mUkfE8AxHO23+SL/F0GtmOHSbrCFkPyHcWKzt6jDMT4oB+/aWWTydebM08315aMSIftNOZjfYTL1kiPLHlKy981cp7ACGSGlQgrruvRt1XRu4qjt89lwOJZFDJcSlP15vNUIR8B1meb9GvW1LFRzDy1dtKv4Xhe8ZnO3EWjQbr8O/kmMpWyXLmFWZBSzuMkWstgnVE+PCVJ7ROztvtRmNv28rz1wkiGw/sfEV2ts6rdjPiH9hMt9HLvbBhviFblAtwr9odt5v/hwO+pFTxkwpbLNBTarUsnX6odm/mX9bBRXy+luo8ibdGBaHshzy+qqClAKwC7OtOvQlQKwrCH8sPhHdaW9PACx4+IierTj5t3JRGSieXasiVSTtK4TpYSci2lTQErqxxBqrycIXqHBw91XlGxkYXnrhggyJczfFzIQTXhQOSHQOXCYFBJYGOgas4tgsVwmy32yM6KP7oJXhcQYBFweZmnAh2FNlf8S0piFxMDeitbIMA91SYRcEKwghtvGAdZzkcg+274EQIc6VrkHosJvcuZDuL/HVfve5J7Qvw/h//9GNx8t2v99sL8F5Lpw3m1V/WIGiMVkcBJdIweGJ4evdbbge1HxGlDa/FYstuMJSBnQJYGRBl9AlGk3hgpG1UBEG1mP+xKDjK/t5IZtnD6YVHwDK9SJ/0N8cCSy7CyNIC91LKHpXZwjM079jEuYfXEuwwzKKZXHSZSeQyt3qXK80/ZcHTuawHzVpqiY+fgGviY+7KyHsO+Kfi70xPFP3K6sumjEfpZBWSORlf3Veb4mf1BnKMs1gFLvx8dnYYlPa+A91xZy44EC0Vs0EtH7e3tdqP18pwouiGol39bwAAAP//pTja2T42AAA= diff --git a/pkg/agent/testdata/AKSUbuntu1604+TempDisk+Containerd/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+TempDisk+Containerd/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+TempDisk+Containerd/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+TempDisk+Containerd/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+TempDiskExplicit/CustomData b/pkg/agent/testdata/AKSUbuntu1604+TempDiskExplicit/CustomData index 0305d39421f..5bca1513c1d 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+TempDiskExplicit/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+TempDiskExplicit/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1604+TempDiskExplicit/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+TempDiskExplicit/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+TempDiskExplicit/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+TempDiskExplicit/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1604+TempDiskToggle/CustomData b/pkg/agent/testdata/AKSUbuntu1604+TempDiskToggle/CustomData index b25935e95bb..1978fc63367 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+TempDiskToggle/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1604+TempDiskToggle/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1604+TempDiskToggle/line9.sh b/pkg/agent/testdata/AKSUbuntu1604+TempDiskToggle/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1604+TempDiskToggle/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1604+TempDiskToggle/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+ArtifactStreaming/CustomData b/pkg/agent/testdata/AKSUbuntu1804+ArtifactStreaming/CustomData index 2565057b57b..d98e41e8594 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+ArtifactStreaming/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+ArtifactStreaming/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+ArtifactStreaming/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+ArtifactStreaming/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+ArtifactStreaming/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+ArtifactStreaming/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd++GPU+runcshimv2/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd++GPU+runcshimv2/CustomData index 8d0fc4155ef..3da6e279ceb 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd++GPU+runcshimv2/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd++GPU+runcshimv2/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd++GPU+runcshimv2/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd++GPU+runcshimv2/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd++GPU+runcshimv2/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd++GPU+runcshimv2/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Certsd/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Certsd/CustomData index 2d204cc7bf1..b0772b51521 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Certsd/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Certsd/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Certsd/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Certsd/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Certsd/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Certsd/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+ContainerdVersion/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd+ContainerdVersion/CustomData index efefde2a283..e371996a50c 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+ContainerdVersion/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+ContainerdVersion/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+ContainerdVersion/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd+ContainerdVersion/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+ContainerdVersion/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+ContainerdVersion/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPAddress+FQDN/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPAddress+FQDN/CustomData index b6b91a2c4f6..7a5eab17177 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPAddress+FQDN/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPAddress+FQDN/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPAddress+FQDN/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPAddress+FQDN/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPAddress+FQDN/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPAddress+FQDN/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPMasqAgent/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPMasqAgent/CustomData index efefde2a283..e371996a50c 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPMasqAgent/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPMasqAgent/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPMasqAgent/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPMasqAgent/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPMasqAgent/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+IPMasqAgent/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+Calico/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+Calico/CustomData index 8ca48d5ab94..ec9c6e20e74 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+Calico/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+Calico/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+Calico/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+Calico/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+Calico/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+Calico/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+FIPSEnabled/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+FIPSEnabled/CustomData index efefde2a283..e371996a50c 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+FIPSEnabled/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+FIPSEnabled/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+FIPSEnabled/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+FIPSEnabled/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+FIPSEnabled/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet+FIPSEnabled/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet/CustomData index efefde2a283..e371996a50c 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Kubenet/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG+NoFabricManager/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG+NoFabricManager/CustomData index 8d0fc4155ef..3da6e279ceb 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG+NoFabricManager/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG+NoFabricManager/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG+NoFabricManager/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG+NoFabricManager/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG+NoFabricManager/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG+NoFabricManager/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG/CustomData index 8d0fc4155ef..3da6e279ceb 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+MIG/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+MotD/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd+MotD/CustomData index b1a1eac2d69..82a5ac2ce9c 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+MotD/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+MotD/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+MotD/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd+MotD/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+MotD/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+MotD/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+NSeriesSku/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd+NSeriesSku/CustomData index ea5f4d38599..0dcbc082523 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+NSeriesSku/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+NSeriesSku/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+NSeriesSku/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd+NSeriesSku/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+NSeriesSku/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+NSeriesSku/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+PrivateACR/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd+PrivateACR/CustomData index efefde2a283..e371996a50c 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+PrivateACR/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+PrivateACR/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+PrivateACR/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd+PrivateACR/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+PrivateACR/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+PrivateACR/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Teleport/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Teleport/CustomData index efefde2a283..e371996a50c 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Teleport/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Teleport/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - H4sIAAAAAAAA/9RZ+3Ob1pf/XX/FKcW11BohZMdN5CEtlrDMWBIsIKdZJ8tguJKoEVC4cpKvrf99514uL0t2k3an03WnLeI87jmf8wS+/068DSLx1s1WLdU0Heu9ZavToT1xLFsxbedC0SbyCVDacKLPR44202zH1qaqPrflVznlQpuozjvFHl6WlNOccqlPRs47ZaLN5r8pY3Vmyz/nBFOdqIql7mF4nTMohu1oM8tWJpNS6ZucNNKHV6q5Q+33GuSR/m420ZVRRZca9Cv1/R6efoOHGEH4SvJxg1zDqM9Amurn76nYRLMqnPoMqKnljI3xM0ef1jTs+MZgG+ozW9FmqjnaZWHAmfPZcJfIoLt6bRGGmTYbl7TjXkXbseqYgXY1P1dJWsx027nQ57ORfMyg0qbjPWLHldhEtetIHZ80ozgdO8a8Zurxqx1Xh/Y+vtNdPlMjNu6yPo8eTd2aUwzE4UzbdepEKqNomPrIGanne5j6u0zG1dhRRiNWTQyavNRqllDi6yIJRoapn6vsLouePrfPiZnEkVlOelULnmJojqWa16pZZ5D2MoxmljPR9au5wdj6e9mU/56b6i5zEV3FVvYn82mvxvG0ik6lGvFppp4yQ64vR0+Dc7qbGTsH/9yrVcEulZ08nFu2PnUsVTGHl85InyrazMp9e80UjI35rvzr4xrR1K5V06qn9uuTXfJT/16/qvGo19pQdYzJfKzNGopOKyZtdqE7pj51hrppzg1bHcmvWT5b49+ePedNb5endsIbqWqzI0WbVNF5U2vAc2Ok2GpFYnk4tFSS3NeapekzxxqammHTOJmqMqo0Sb1e7RDSD+fG2FRGao2jZoYxN8cs4aVevywSUtGmSsIgSz2G/1CzHMWytPHMMXXddox3siRJOzSaP4ZqTjWLWCpLElNrKLT3DHXjPWWSJamu2TAm7x1Dsax3ukmL7UIby5L0qlm45RDQWVlIUtGS8j60kz6S9HODQTdUU7EJhqpp6qYsSUX7sc09xDfQysGiRWnZyvDKGau2o5hTx9av1JksFTPwKctMtd/p5hXzZZ4rlqViJD5lt+bnM9V2DFO90H6TJTIVy6I8n2uTUWETGWw5KO8UwxmaKkmXHIxirNQp2syaX1xoQ02d0Yy4cixDGaqyRMYM5bbViWropl0rbdU0ZanocxW9SPicXDhi2tqFMiQDx1SVKRlzhR5ZKnrcHiamTJZIa8s3F9s2SJL/9t4ZKgS3a9W0ZalobKwyCEk1bUuWTsvtgpltqUMCqj2xnHNdty3bVIxyHqq/qcOi7svsOC0CPNKsc2WiOpphK+cT1ZIl0tbynmnOLZto2E2uormNNItIOZZ1KUs/10NnqsQSx1T/a66Z6kjuFwU602lJKGPVYr22X1SmNVMM61Ive0F95+kVyg1TuyZEMj3IsCMx6RfFSm7Wg9XvnRRJU26bU8W6YkoZbWiqI3Vma8okbzWjvStdj+Sfbsl8O4tTDEIKIsKe+KOQohC5GYJHWLqf7uBw7WJv1eZ7RyD+T1sbORPtSpXbXpyiOOs8aiO53f2x0+HFI3A78ABJGkQYcLxJEpS23Zv+R3Bvjj92zgB9DjBsDzst3XJIUyV19G2nMynn2w+FR8ApCD4ccoed1vx8PrPnjm45M2Wqylz+m2tNFZMMx4rAbnAttsTJ4iZLxTD23JBu/3ebW+ThsJU3tJxK7vuxd4fSFvqcEO/owLqWOf6hGm8FAgN5yzX4VMuunxLdB37gtmbX2khTisZZoNfvvu72BKn15LbUlY67kiAVUuXUJ7OdJEDJyR13T7u90oDilNxCbaqMVce6VArLyxt1o/fJ2Mq49PZ6K/APzyh+UYvMrb20uw68NM7iBe568Vp07zLyr7BMNqUo6fj5tM8LZTgdyZyHU0g3EQhCkgb3QYiWyAdBSNcgCBHCwirOMAjCpwCvhCiDJPAHYpLGniiJUSYmAWFexxuSVF8SJN8GkX+UpZ4sxgkWl8nmyM+wLK6j/Eec4CCOMjklfC9Juh5lrKSLGw0NpWssrjve5em1z8EIYZn5lgQ+u7yHwuxBYXJ5kxkwqFtDgeJaZLMYKsNL1Rlppizeu6noud4KiS6RS71VcI8ysUW2BGVGxlKNOY1jTPhygZZ6rc5ssgmPx3SwFPrCeCm6/9mkSJyWcVbI7676GaMoI9Z0h5sMx2vLS4MEi+geRTgTW8O5OSFbvTG3ZRGvE9HbpKFzj9LbOEPdeINbrRTh9Iu39p1g4SzcINykqN2BhxYAAKEFKJN56Qw+uQF2shChROb7Z4CDNYo3WOaPzyBbBQsMP/zw5IKqWMQpBBBEwLcz9AdIwDOlnTPwY8pC/pg64IsLjn/4dcsRXbcpcu/g8RE+lNzBAm6AD0BAf5T64OMZ4BWKSibyh7xVDOpn5G0w8uEDx//6gSOC5JTsrMGaIrxJI5DKmyjMUIODOg98BURJXQT00o+jXOJPjt1WoEdZGMd3m6SEvA6zVIOZQB5jN3TqwKfIi1Nf5k+oaIbdFFO6zLd9FyP46SDr5FpXQYgApxvUQL04HYRSa4G/QE2UewRfcsgzkfA2aYqiZ06tQtVu1xlBqNna6YCwRMA3vHs+mJxN+Gr50hBLEakk/+ibPCNZj3zu5WxgIX4+D8rgvwhJ7kOZGt9kZpz+GZAZ8uLIz7hGilV17USxk2EXZ/+GAif1/XfL+/+qZmtoLRF2sJveumFYooTd1HkJqZydIrVJw6Ic81DzDzXpbQE49wx0Nd4n8LkpCPg/C8pCTvsa6Gra/iJ8RbBOeyStQxAWmTW5B55ex5Uxb4GvjRrov/1BaughZt0A/wt8J0MPPu4zhpaOixuKGgy1CvxLkaWjbxGE1Xijd76yBIhg4uKVzJ+wKL9qRLmu60/DXGduxvnmBoQF8MVp8PFjGej9Ma6r+ptBLktzb6hLk0hwyYMCQs2gvxV9dC9GmzD8t4SeMizitBn1FwJeBfmYsibuPfLZTkr3Ly+MN74QRAEWCG/WpRyUd5miBISLP0gyFHq2HPCUgwSRBaL3LV2zVHr4vapfHNai8HJW/BNNk3KSdToATiTmiT5XGVgVR2Xz27cMjta2lX3JMFp7mCQvnWHfNpMgu/cilwzYk781hUozwHfROo7Ik3Xs+l8jwOwGnpnyDwyz8mwyxTdZdbQgRLGQuEuUgtAsv9/jTRq5IRESNqXAXyqnKmQZjpP/d/EiRv+TwfpmVP0gc2+/rlH9q4Bldv87sc07DHHl23D9u2DSghNykP49gNyjNAviyFniIs0wysjDdpu+G1zA4UH2IToEjv+Vg0dgbx2v4RFWyPVBiEDqcCDLwPES19q2quxVI5IDSuRbjWa+0+ZB6vXgFRz3gM/9MdX8ja9lK/bckvlfmnJlq5OaTQ7ewpN3I7wk5LzdMF62KoCbB4AQIbKHPIGZrXESePEm9CGKMdyi/OGq/mjYiASDNljAd7DnaQukPvG0/6rmDIrySpG+6vic24fbL5WK522pR2OUlyQNR61VB4uaLWGQYWETBTgDQVhsQpKvZJd/ZFsH2WSkbobS+8BD3BODm7MACk95iaT4c2DGSVIHc6fzfZUaxsv0ML/R+h6lw3iduLW3V8V7cEXm2/kmQvZWjzxb+8D9xJFNW+o0WM9L1v5zrDc3ZMMrdW9ZOZR3zrcc29obCx8pJeSX6msKoC6bv4E/JP+QOixK8Bryw1fBcoUyfJ2Xscy3tQtLLp9B8jO2XGk6T5UIi/4LpvMPTaXbfdaXubZt+fGniLTTEbo17pZ2fFHfrY2rcf5NgBU3+V1+xOiXt0aaqQ5t3XxfNNr1nR+kICTAN8j5Er7JVj7wDw3KtuzkO1VHcui01wM3wcISYSgMZiqIeVs5v2ambX/MD4oTspm6CaZvAQo55twLU6P5VuSsBUC/ShARmeDHPGi8KSYJXqvgr5g0fnK3BEHw4mgRLImngksKN049RG/6aEH5yqce4kgYe3cZvV3AIcQwSu6Wg4Gev0wfDOS6ljj0K8SEL0/fw7b+bHBRp6UzOqJ2x9JZ3jTZ8wMB/AkO7JJobW1bS4SHxlxJvVWZYW7qrWS+vcnX3nWnNOgG+AdCPDra0op0yY/TE44c8ISSrsn93WfRvI5ycmtnzjLq2i+otPcEmWJOT0/qLZaY0q5M79QP3X+m9MxpvVqPC+Nl5uDYyV/tl+flmYbd7I5mZvVeLifk3KRGZ27jdeTB8azTqjHSUWfXX1lyBxdwYHcPjmdcjjLJhKLsijnNTon850Up3+9ZHDkZToNoKfNt+P0PsktUq5AguOkSiI4Mu+sEgLazwqQtt8OqJyh1Sf5qPmFlBuxhZF2N3uGkbv94l8V2szuCDuTHEiz3KFIJkhN0j0IATosWcbqmBrjhLu8UZZm7RPmhZCyFCCN/APyPz+g1Ap/y9p6h2/vohw8lYAPgy+ujOjgD4Gu/jgo4BsCzq6PSfaKDXR7VvB0AX/04KlwbAM+ujkoPCk4j8I9Ks4ubduBvD6nptRfh/EMtL7bwFviH3W9gW/6hmcXbLpFqVa2II+2Cg+9kClCzwuoNpbYwrMhK4WR3QeLk344dPw3IdlxtrqRXfqaXt7H/Rebb1WsxEC6BmyLs+i52B/S7CkfX0ySNP38B7kcOuBXGyUAUpdM33f6rky77v7hmUmIQZdiNPPSLmwQC28vlfq8vCb2+0JNYzdVK7a+4Sh2pfC3WD44nLpE9gRQigsOuF6+TDUZd7C6zSZBheIS1m7QzFCIPt7u02z7Sh4U2Z90FyTjZjChgGnEjDLkz4AKu0+nc9D52791wg0AUgVu4YYa4UpIClXMe1r+H8DUb88cK+lXjk4u9FbCIeG6CNyna91ml+gZCC6CiXg4OpoMDq5OrjJO6xnJKv/C9puxuLyov+PxgsUApijzkBJHDvsXIu59s+Adp2+lUBqDQTTLkO6t4k1J+fq8m8fi01+t0dsTWQbTBiAo+I3lAJcXTfdI1M58RZmJkXufPiMI93KLIW63d9A64Q/6hvz0EAfIPc6QNgZorH8BBr+8Pyv9wwDd8rX4yH6ob7PBWsWw8HNPZTRKokfWVSfnTJUcrgT6D0sfyAfAZ/STuPEkSMsLLgfs1WnbFaX1VoijymaAa+RSHAfCN3KFnkoQXEHAfIr5E8UNESOXP7Ce5zVVU2gqeEKk5+wgo8rkOa3GfnIpYlFHt/POSOMgNKJdQjn+oJG9+/bjlyi00L1iyDQRctcmRu+TQ7y/ViaGalqpf/G8AAAD//50GzqT6LwAA + H4sIAAAAAAAA/9R6fXebxrb3//oUu5QcS42RhPzSRH5IiyUs81gSuoCc5rq+LAwjiVgCAkhJjq3vftcMAwwScpP2rK7edLVFs3+zZ7/vPZAff2g9eH7rwY4XNUXXLeODYSqjnjm0DFPWTetKVofSKRBab6hN+5Y6Vk3LVEeKNjWls5RypQ4V671s9q5zynlKudaGfeu9PFTH09/kgTI2pZ9Tgq4MFdlQKgBvUoA8MS11bJjycJgzfZuS+lrvRtH3qJ12idzX3o+Hmtwv6GKJfqN8qMB0ShgsBMbl5JMSmbFRhxpppF1+INuGqlHYqUMNNTKswWRw4OhzhsOebtRsPW1syupY0fv7EGo4fTru7ROp6W7eGBgwVseDnHbSLmh7Up1Qo91MLxUcFmPNtK606bgvnVBTqaNBxbaTYttQMVlLnZyWvTgaWJMpI+rJ2Z6qPbMKd76P01Us4z70sPVI6DJKUSP2xuq+Uqdi7sWJrvWtvnJZAersgyY3A0vu92k2UdOkqcZIQohvsiDoT3TtUqGr1Hva1LzEYmJFxinpjHGePFEtQ9FvFZ0FiJWA/tiwhpp2M51QWKcSJv/3VFf2wZl3ZVOuDubzNoPYzaJzkSHuRuo5FeT2ur/rnPP9yNg7+Oc2kwX7VHpyb2qY2sgyFFnvXVt9bSSrYyPV7Q1lMJhM9/e/OWGIunqr6AYb2m9O98m7+r05YzDKrdpTrMlwOlDHJUbnBUgdX2mWro2snqbr04mp9KU3NJ6NwW8Hz3nb3scwJ7wVizLbl9Vh4Z23TAGeTvqyqRQkGoc9Q8HBfasaqja2jJ6uTkziJ12R+wUnsd1mDsH1cDoZ6HJfYRCMGJOpPqABL7Y7eZLgjNYV7AZJbFP791TDkg1DHYwtXdNMa/JeEkVxj0biZ6LoI9XAkkqiSNlOZFJ7etrkAwFJoshynkyGH6yJbBjvNZ0k25U6kETxrJy4eRPQaFqIYlaS0jq0Fz6i+HMJoE0UXTaxDRVd13RJFLPyY+oVxLdQS41FktIw5d6NNVBMS9ZHlqndKGNJzHrgLmSsmO81/YbqMk0ZS2LWEnfhxvRyrJjWRFeu1N8kEXfFPCkvp+qwn8mEG1tqlPfyxOrpCg6X1BhZW2Ep6tiYXl2pPVUZk4i4sYyJ3FMkEbcZgjaVoTLRdJNJbUXXJTGrcwU9C/iUnCmim+qV3MMNR1fkEW5zGR9JzGpcBYgyk0Rc2tLJxTQnOMh/+2D1ZGy3W0U3JTErbDQzMEnRTUMSz/PpgoptKD1sVHNoWJeaZhqmLk/yfqj8pvSyvM+j4zxzcF81LuWhYqkTU74cKoYk4rKW1kx9apiYw35wZcWtrxp4l2UY15L4M+s6XcGSWLryX1NVV/pSJ0vQsUZSQh4oBq21nSwzjbE8Ma61vBawM087Yz7R1VtMxN0DNzvsk06WrHiRdVanfZoFTT5tjmTjhjKltJ6u9JWxqcrDtNT0K0e6No4/zZD4ehxECQgRtFDitH4SIrREdozgGeb250c4WtmJs6jz7WNo/U9d7VtD9UaR6k4QoSBuPKt9qd78qdHgW8dgN+AJwsjzE0iCdRiiqG7fde7Bvju5b1wA+uIlsD1q1DTDwkUV59H3nU53Wd9/KDxDEoHgwhF31KhNL6djc2pphjWWR4rEpb+52kjWcXMsCHSBq9EhTmqt46i1DBx7Sab/x/UDcpJlLS1oKRWvu4HziKIa+hJi7UjDupU4/qlob5kFutKWK+EUw2RP8Tee69m18a3aV+WscGbW6zTfNNuCWNtZFpviSVMUxGxX3vVxb8cBkCO5k+Z5s50LkJ2SSqiO5IFiGddyJnm+wApdtceUB7m2t1uBfzrA+EUuErdyoubKc6IgDmZJ0wlWLfsxxv8K83Cdb8UVP+32aaL0Rn2Jc5IIorUPghBG3sZbojlyQRCiFQiCjxJhEcQJCMJnL1kIfgyh53ZbYRQ4LbHlx63Qw+BVsMZB9TVE0oPnu8dx5EitIExa83B97MaJ1Fr56Y8gTLzAj6UI417aaTsEWOzOFkocctWoX/e0S8OrSkEfJRLVLfRc+riBTOxuJnK+SAXostIQQ3E1PFn05N61YvVVXWpt7Kjl2M4CtWy8L3IW3gbFrRqeEuQxbksMOAqCBOPSDTXlVhmbeBIeDEhjyfgtg3nL/vc6Qq1R7mcZ/24qXxLkx1iaZm8dJ8HKcCIvTFpog/wkbtV6U32Ip/rJ1JRaySpsOetoaW1Q9BDEqBmsk1otQkn01Vm5ljezZra3XEeo3oCnGgAApnkolnjxAj7bXmLFS4RCie9cQOKtULBOJP7kAuKFN0vgX//aeSAsZkEEHng+8PUYfQIReMq0cQFuQCD4D2UHfPbA8U+/bjnM6yFC9iM8P8PvOdqbwR3wHgjoU84P7i8gWSA/B+E/yFkEoHxBzjpBLvzO8b/+zuGN+JT4ogSNULKOfBDzRbSMUQlBlAe+MEROnXnk0Q38dMcfHLstjO7HyyB4XIe5yVkzi4yZscmDxF5arOEj5ASRK/GnZGuc2FFC6BJfd+0EwetXcSPluvCWCJJojUpWz04HIeea2V8gIkptbF98yAFPOOsoQv6BUwtX1essEARG1kYDhDkCvqTdYWdyJsYx8VLaFiGcSe7xd2mGox653MvRQF18OA5y579oklSHPDS+S8wg+iNDxsgJfDfmSiFW5LXlB1ac2En8T0hwnN9/Nb3/UznLWGuOEiuxowd7ucytlNiR9ZKlUjix1DpaZumYupp/YnZvM4NzB0zHYHfMZ0cgJP+eEQg+7VtMx3D7k+bLnHXexmG9BGEWG8MN8OQ5KIR5BzzTaqDz7l9iiQ8W6w74X+AHCdpwXyUMSR07KTEqAZgM/FOeJa1v5i2L9kZWvjEF8MbQThYSf0q9fFbyMsvrD93Mgst+vrsDYQZ8dhrc3+eOrvYxy+ovOjlPzUpX5yJh5+KLAkJlp79ruWjT8tfL5T/F9QQwC6Ky119weOHkEwIN7Q1y6UxK5i9nGaxdwfO9RMDYuEkQBDuPUAjC1SccDBmfLQc8QWAnUke0v6dq5kyPflS0qyPGCy9Hxd9RNAkSj9MecC0sXsvlCgGL5ChkfveOmqO2rcVf4wStnAQHL+lh39eTIN44vo0b7Olf6kK5GODaaBX4+GYd2O63bKByA09F+RuaWX427uLruDhaEPxACO05ikAop9/HYB359hJvEtb5hj+VToXL4iQI/8/5Cwv9dzrru63qerH98G2F6h9lWCr3P9O2aYXBqnyfXf+qMUnCCamR/jkG2aAo9gLfmidZmCUoxpftOnk3OIOjV/Hv/hFw/K8cPAN963gLz7BAtguCD2KDA0kCjhe52rZWRK/i4xiQfdcoFfO9Mg9iuw1ncNIGPtVHV9I3voYpm1ND4n8p78tLnVgucvAOdt6N8KKQYpvLYF4rDFw+AAQf4Tlkx8x0jBPBCdZLF/wggQeUXq7Yq2HJE9S03gx+gIrbFogdrGnnjFEG+WmmiN90fIp24eFrweKwLKw3+mlKEncwpdqbMbIsvTgR1r6XxCAIs/USxyue5Z/p1IEnGbEZo2jjOYjbEbjcCyDTlBdxiB8yZhCGrDH3Kt83saFYyofqjVYbFPWCVWgzb6+y9+CyxNfTSQTPrQ6+W7vAvebwpC02StDLHNo5BL27wxNezntL0yFfudxydGovDXw4lZCbs2cYALs3fQN/hP/BeZil4C2khy+8+QLFyW2axhJfV68MKb+DpGdsuVx0njARZp0XROefyky3VdLnsbatucFnH5fTPnqYPM7N4IqdrSc3g/SbAE1u/Dv/iNHJl/qqrvRMTf+QFdrVo+tFIITAl8jpEL6OFy7wTyXKNq/ke1mHY+i83QY7TIQ5SiATmLLA4m2l9JmKtv0pPSgI8WRqhwl5C5Dto8q90DXKb0UuagDkqwTeImH7UQ1Kb4pxgDMZ/A2dxg0f5yAITuDPvDnWVLBx4gaRg8iii2YEl996sCLLwHmMyXJmDiGAfvg473a19GV6tyuxXIKlW1hM+Lr7Hrb2R42LKC1ekBa135Yu0qJJ7w/Y4Dt2oI+Ya21bm6OkN5nKkbPII8yOnIXE19fp2Ltq5ALdAf+EicfHW5KRNv5xfsrhA3Yo0Qqv799F0zxKybW9PkupKzejktrjxbI+Oj9lSywWpV6I3mAPrT5TPHBam6lxy2AeW0lgpa/28/PSSEvs+JFEZvFeLiWkaJyjY7v0OvLVybhRY4Ck1ZnsK0vu1RW8MpuvTsZcamUcCVnaZX2anuK7h7cS3Mc48K04iTx/LvF1+PgJzxLFKCQIdjQHzCNO7FUIQMpZJtKW24NqIYpsHL+qi6FUgAogrWpkhRObnZN9iGnHj9g6kB6LbVnBSMGWHKINWgJwqj8LohURwF7uY0coju05Sg/FbWmJEuR2gf/pAN+J5xJs+wDdrKIfPeUG6wKfPx+zxukCz/w6zszRBZ4+HefqYx708ZjRtgt88eM4U60LPH06zjXIkBPPPc7FzhZNz90eEdGZF+H8ExMXW3gH/NP+N7At/1SO4m0T76oVpYjD5YKDHyRioHKGsQWFGRgWeKSw4kcvtNJvx5YbeXg6LiZXXCu/kMeHwP0q8fXitRgI18CNUGK7dmJ3yXcVjoynYRR8+QrcTxxwiyQJu62WeP622Tk7bdL/t1Z0V8vz48T2HfSLHXoCnculTrsjCu2O0BZpzjGp9mdUJYoUumbjB8djlfCcgBMRwVHTCVbhOkHNxJ7HQy9O4BlWdliP0RI5Sb1Jqu0zuSzUOePRCwfhuk8MpmI1lkvuAjiPazQad+375sZerhG0WsDN7GWMuHwnMVSKPGK/h/CMjORa4aVc//8noP4I1kmI72V1LHBmLsyCWEXwgeNTSNkolD0l1Zgam9Zpjn/SDDrCZX+LYbdGx2s3gMT1Z0Clwm3x46ca2xU+foLPdpwBSKqXJd3rJ9mUkfE8AxHO23+SL/F0GtmOHSbrCFkPyHcWKzt6jDMT4oB+/aWWTydebM08315aMSIftNOZjfYTL1kiPLHlKy981cp7ACGSGlQgrruvRt1XRu4qjt89lwOJZFDJcSlP15vNUIR8B1meb9GvW1LFRzDy1dtKv4Xhe8ZnO3EWjQbr8O/kmMpWyXLmFWZBSzuMkWstgnVE+PCVJ7ROztvtRmNv28rz1wkiGw/sfEV2ts6rdjPiH9hMt9HLvbBhviFblAtwr9odt5v/hwO+pFTxkwpbLNBTarUsnX6odm/mX9bBRXy+luo8ibdGBaHshzy+qqClAKwC7OtOvQlQKwrCH8sPhHdaW9PACx4+IierTj5t3JRGSieXasiVSTtK4TpYSci2lTQErqxxBqrycIXqHBw91XlGxkYXnrhggyJczfFzIQTXhQOSHQOXCYFBJYGOgas4tgsVwmy32yM6KP7oJXhcQYBFweZmnAh2FNlf8S0piFxMDeitbIMA91SYRcEKwghtvGAdZzkcg+274EQIc6VrkHosJvcuZDuL/HVfve5J7Qvw/h//9GNx8t2v99sL8F5Lpw3m1V/WIGiMVkcBJdIweGJ4evdbbge1HxGlDa/FYstuMJSBnQJYGRBl9AlGk3hgpG1UBEG1mP+xKDjK/t5IZtnD6YVHwDK9SJ/0N8cCSy7CyNIC91LKHpXZwjM079jEuYfXEuwwzKKZXHSZSeQyt3qXK80/ZcHTuawHzVpqiY+fgGviY+7KyHsO+Kfi70xPFP3K6sumjEfpZBWSORlf3Veb4mf1BnKMs1gFLvx8dnYYlPa+A91xZy44EC0Vs0EtH7e3tdqP18pwouiGol39bwAAAP//pTja2T42AAA= diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Teleport/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Teleport/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+Teleport/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+Teleport/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+runcshimv2/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Containerd+runcshimv2/CustomData index b1a1eac2d69..82a5ac2ce9c 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+runcshimv2/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+runcshimv2/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Containerd+runcshimv2/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Containerd+runcshimv2/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Containerd+runcshimv2/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Containerd+runcshimv2/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+CustomCATrust/CustomData b/pkg/agent/testdata/AKSUbuntu1804+CustomCATrust/CustomData index b1a1eac2d69..82a5ac2ce9c 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+CustomCATrust/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+CustomCATrust/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+CustomCATrust/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+CustomCATrust/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+CustomCATrust/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+CustomCATrust/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=false/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=false/CustomData index efefde2a283..e371996a50c 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=false/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=false/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=false/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=false/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=false/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=false/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=true/CustomData b/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=true/CustomData index efefde2a283..e371996a50c 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=true/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=true/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=true/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=true/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=true/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+Disable1804SystemdResolved=true/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+DisableCustomData/CustomData b/pkg/agent/testdata/AKSUbuntu1804+DisableCustomData/CustomData index b1a1eac2d69..82a5ac2ce9c 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+DisableCustomData/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+DisableCustomData/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+DisableCustomData/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+DisableCustomData/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+DisableCustomData/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+DisableCustomData/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+HTTPProxy/CustomData b/pkg/agent/testdata/AKSUbuntu1804+HTTPProxy/CustomData index b1a1eac2d69..82a5ac2ce9c 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+HTTPProxy/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+HTTPProxy/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+HTTPProxy/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+HTTPProxy/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+HTTPProxy/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+HTTPProxy/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+KubeletClientTLSBootstrapping/CustomData b/pkg/agent/testdata/AKSUbuntu1804+KubeletClientTLSBootstrapping/CustomData index 56fc0a9830b..9321490449a 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+KubeletClientTLSBootstrapping/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+KubeletClientTLSBootstrapping/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+KubeletClientTLSBootstrapping/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+KubeletClientTLSBootstrapping/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+KubeletClientTLSBootstrapping/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+KubeletClientTLSBootstrapping/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+NoArtifactStreaming/CustomData b/pkg/agent/testdata/AKSUbuntu1804+NoArtifactStreaming/CustomData index 2565057b57b..d98e41e8594 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+NoArtifactStreaming/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+NoArtifactStreaming/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+NoArtifactStreaming/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+NoArtifactStreaming/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+NoArtifactStreaming/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+NoArtifactStreaming/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+NoneCNI/CustomData b/pkg/agent/testdata/AKSUbuntu1804+NoneCNI/CustomData index 2d204cc7bf1..b0772b51521 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+NoneCNI/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+NoneCNI/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804+NoneCNI/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+NoneCNI/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+NoneCNI/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+NoneCNI/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804+krustlet/CustomData b/pkg/agent/testdata/AKSUbuntu1804+krustlet/CustomData index 45e61b76a4c..ccf82eb94db 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+krustlet/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804+krustlet/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - H4sIAAAAAAAA/9RZ+3Ob1pf/XX/FKcW11BohZMdN5CEtlrDMWBIsIKdZJ8tguJKoEVC4cpKvrf99514uL0t2k3an03WnLeI87jmf8wS+/068DSLx1s1WLdU0Heu9ZavToT1xLFsxbedC0SbyCVDacKLPR44202zH1qaqPrflVznlQpuozjvFHl6WlNOccqlPRs47ZaLN5r8pY3Vmyz/nBFOdqIql7mF4nTMohu1oM8tWJpNS6ZucNNKHV6q5Q+33GuSR/m420ZVRRZca9Cv1/R6efoOHGEH4SvJxg1zDqM9Amurn76nYRLMqnPoMqKnljI3xM0ef1jTs+MZgG+ozW9FmqjnaZWHAmfPZcJfIoLt6bRGGmTYbl7TjXkXbseqYgXY1P1dJWsx027nQ57ORfMyg0qbjPWLHldhEtetIHZ80ozgdO8a8Zurxqx1Xh/Y+vtNdPlMjNu6yPo8eTd2aUwzE4UzbdepEKqNomPrIGanne5j6u0zG1dhRRiNWTQyavNRqllDi6yIJRoapn6vsLouePrfPiZnEkVlOelULnmJojqWa16pZZ5D2MoxmljPR9au5wdj6e9mU/56b6i5zEV3FVvYn82mvxvG0ik6lGvFppp4yQ64vR0+Dc7qbGTsH/9yrVcEulZ08nFu2PnUsVTGHl85InyrazMp9e80UjI35rvzr4xrR1K5V06qn9uuTXfJT/16/qvGo19pQdYzJfKzNGopOKyZtdqE7pj51hrppzg1bHcmvWT5b49+ePedNb5endsIbqWqzI0WbVNF5U2vAc2Ok2GpFYnk4tFSS3NeapekzxxqammHTOJmqMqo0Sb1e7RDSD+fG2FRGao2jZoYxN8cs4aVevywSUtGmSsIgSz2G/1CzHMWytPHMMXXddox3siRJOzSaP4ZqTjWLWCpLElNrKLT3DHXjPWWSJamu2TAm7x1Dsax3ukmL7UIby5L0qlm45RDQWVlIUtGS8j60kz6S9HODQTdUU7EJhqpp6qYsSUX7sc09xDfQysGiRWnZyvDKGau2o5hTx9av1JksFTPwKctMtd/p5hXzZZ4rlqViJD5lt+bnM9V2DFO90H6TJTIVy6I8n2uTUWETGWw5KO8UwxmaKkmXHIxirNQp2syaX1xoQ02d0Yy4cixDGaqyRMYM5bbViWropl0rbdU0ZanocxW9SPicXDhi2tqFMiQDx1SVKRlzhR5ZKnrcHiamTJZIa8s3F9s2SJL/9t4ZKgS3a9W0ZalobKwyCEk1bUuWTsvtgpltqUMCqj2xnHNdty3bVIxyHqq/qcOi7svsOC0CPNKsc2WiOpphK+cT1ZIl0tbynmnOLZto2E2uormNNItIOZZ1KUs/10NnqsQSx1T/a66Z6kjuFwU602lJKGPVYr22X1SmNVMM61Ive0F95+kVyg1TuyZEMj3IsCMx6RfFSm7Wg9XvnRRJU26bU8W6YkoZbWiqI3Vma8okbzWjvStdj+Sfbsl8O4tTDEIKIsKe+KOQohC5GYJHWLqf7uBw7WJv1eZ7RyD+T1sbORPtSpXbXpyiOOs8aiO53f2x0+HFI3A78ABJGkQYcLxJEpS23Zv+R3Bvjj92zgB9DjBsDzst3XJIUyV19G2nMynn2w+FR8ApCD4ccoed1vx8PrPnjm45M2Wqylz+m2tNFZMMx4rAbnAttsTJ4iZLxTD23JBu/3ebW+ThsJU3tJxK7vuxd4fSFvqcEO/owLqWOf6hGm8FAgN5yzX4VMuunxLdB37gtmbX2khTisZZoNfvvu72BKn15LbUlY67kiAVUuXUJ7OdJEDJyR13T7u90oDilNxCbaqMVce6VArLyxt1o/fJ2Mq49PZ6K/APzyh+UYvMrb20uw68NM7iBe568Vp07zLyr7BMNqUo6fj5tM8LZTgdyZyHU0g3EQhCkgb3QYiWyAdBSNcgCBHCwirOMAjCpwCvhCiDJPAHYpLGniiJUSYmAWFexxuSVF8SJN8GkX+UpZ4sxgkWl8nmyM+wLK6j/Eec4CCOMjklfC9Juh5lrKSLGw0NpWssrjve5em1z8EIYZn5lgQ+u7yHwuxBYXJ5kxkwqFtDgeJaZLMYKsNL1Rlppizeu6noud4KiS6RS71VcI8ysUW2BGVGxlKNOY1jTPhygZZ6rc5ssgmPx3SwFPrCeCm6/9mkSJyWcVbI7676GaMoI9Z0h5sMx2vLS4MEi+geRTgTW8O5OSFbvTG3ZRGvE9HbpKFzj9LbOEPdeINbrRTh9Iu39p1g4SzcINykqN2BhxYAAKEFKJN56Qw+uQF2shChROb7Z4CDNYo3WOaPzyBbBQsMP/zw5IKqWMQpBBBEwLcz9AdIwDOlnTPwY8pC/pg64IsLjn/4dcsRXbcpcu/g8RE+lNzBAm6AD0BAf5T64OMZ4BWKSibyh7xVDOpn5G0w8uEDx//6gSOC5JTsrMGaIrxJI5DKmyjMUIODOg98BURJXQT00o+jXOJPjt1WoEdZGMd3m6SEvA6zVIOZQB5jN3TqwKfIi1Nf5k+oaIbdFFO6zLd9FyP46SDr5FpXQYgApxvUQL04HYRSa4G/QE2UewRfcsgzkfA2aYqiZ06tQtVu1xlBqNna6YCwRMA3vHs+mJxN+Gr50hBLEakk/+ibPCNZj3zu5WxgIX4+D8rgvwhJ7kOZGt9kZpz+GZAZ8uLIz7hGilV17USxk2EXZ/+GAif1/XfL+/+qZmtoLRF2sJveumFYooTd1HkJqZydIrVJw6Ic81DzDzXpbQE49wx0Nd4n8LkpCPg/C8pCTvsa6Gra/iJ8RbBOeyStQxAWmTW5B55ex5Uxb4GvjRrov/1BaughZt0A/wt8J0MPPu4zhpaOixuKGgy1CvxLkaWjbxGE1Xijd76yBIhg4uKVzJ+wKL9qRLmu60/DXGduxvnmBoQF8MVp8PFjGej9Ma6r+ptBLktzb6hLk0hwyYMCQs2gvxV9dC9GmzD8t4SeMizitBn1FwJeBfmYsibuPfLZTkr3Ly+MN74QRAEWCG/WpRyUd5miBISLP0gyFHq2HPCUgwSRBaL3LV2zVHr4vapfHNai8HJW/BNNk3KSdToATiTmiT5XGVgVR2Xz27cMjta2lX3JMFp7mCQvnWHfNpMgu/cilwzYk781hUozwHfROo7Ik3Xs+l8jwOwGnpnyDwyz8mwyxTdZdbQgRLGQuEuUgtAsv9/jTRq5IRESNqXAXyqnKmQZjpP/d/EiRv+TwfpmVP0gc2+/rlH9q4Bldv87sc07DHHl23D9u2DSghNykP49gNyjNAviyFniIs0wysjDdpu+G1zA4UH2IToEjv+Vg0dgbx2v4RFWyPVBiEDqcCDLwPES19q2quxVI5IDSuRbjWa+0+ZB6vXgFRz3gM/9MdX8ja9lK/bckvlfmnJlq5OaTQ7ewpN3I7wk5LzdMF62KoCbB4AQIbKHPIGZrXESePEm9CGKMdyi/OGq/mjYiASDNljAd7DnaQukPvG0/6rmDIrySpG+6vic24fbL5WK522pR2OUlyQNR61VB4uaLWGQYWETBTgDQVhsQpKvZJd/ZFsH2WSkbobS+8BD3BODm7MACk95iaT4c2DGSVIHc6fzfZUaxsv0ML/R+h6lw3iduLW3V8V7cEXm2/kmQvZWjzxb+8D9xJFNW+o0WM9L1v5zrDc3ZMMrdW9ZOZR3zrcc29obCx8pJeSX6msKoC6bv4E/JP+QOixK8Bryw1fBcoUyfJ2Xscy3tQtLLp9B8jO2XGk6T5UIi/4LpvMPTaXbfdaXubZt+fGniLTTEbo17pZ2fFHfrY2rcf5NgBU3+V1+xOiXt0aaqQ5t3XxfNNr1nR+kICTAN8j5Er7JVj7wDw3KtuzkO1VHcui01wM3wcISYSgMZiqIeVs5v2ambX/MD4oTspm6CaZvAQo55twLU6P5VuSsBUC/ShARmeDHPGi8KSYJXqvgr5g0fnK3BEHw4mgRLImngksKN049RG/6aEH5yqce4kgYe3cZvV3AIcQwSu6Wg4Gev0wfDOS6ljj0K8SEL0/fw7b+bHBRp6UzOqJ2x9JZ3jTZ8wMB/AkO7JJobW1bS4SHxlxJvVWZYW7qrWS+vcnX3nWnNOgG+AdCPDra0op0yY/TE44c8ISSrsn93WfRvI5ycmtnzjLq2i+otPcEmWJOT0/qLZaY0q5M79QP3X+m9MxpvVqPC+Nl5uDYyV/tl+flmYbd7I5mZvVeLifk3KRGZ27jdeTB8azTqjHSUWfXX1lyBxdwYHcPjmdcjjLJhKLsijnNTon850Up3+9ZHDkZToNoKfNt+P0PsktUq5AguOkSiI4Mu+sEgLazwqQtt8OqJyh1Sf5qPmFlBuxhZF2N3uGkbv94l8V2szuCDuTHEiz3KFIJkhN0j0IATosWcbqmBrjhLu8UZZm7RPmhZCyFCCN/APyPz+g1Ap/y9p6h2/vohw8lYAPgy+ujOjgD4Gu/jgo4BsCzq6PSfaKDXR7VvB0AX/04KlwbAM+ujkoPCk4j8I9Ks4ubduBvD6nptRfh/EMtL7bwFviH3W9gW/6hmcXbLpFqVa2II+2Cg+9kClCzwuoNpbYwrMhK4WR3QeLk344dPw3IdlxtrqRXfqaXt7H/Rebb1WsxEC6BmyLs+i52B/S7CkfX0ySNP38B7kcOuBXGyUAUpdM33f6rky77v7hmUmIQZdiNPPSLmwQC28vlfq8vCb2+0JNYzdVK7a+4Sh2pfC3WD44nLpE9gRQigsOuF6+TDUZd7C6zSZBheIS1m7QzFCIPt7u02z7Sh4U2Z90FyTjZjChgGnEjDLkz4AKu0+nc9D52791wg0AUgVu4YYa4UpIClXMe1r+H8DUb88cK+lXjk4u9FbCIeG6CNyna91ml+gZCC6CiXg4OpoMDq5OrjJO6xnJKv/C9puxuLyov+PxgsUApijzkBJHDvsXIu59s+Adp2+lUBqDQTTLkO6t4k1J+fq8m8fi01+t0dsTWQbTBiAo+I3lAJcXTfdI1M58RZmJkXufPiMI93KLIW63d9A64Q/6hvz0EAfIPc6QNgZorH8BBr+8Pyv9wwDd8rX4yH6ob7PBWsWw8HNPZTRKokfWVSfnTJUcrgT6D0sfyAfAZ/STuPEkSMsLLgfs1WnbFaX1VoijymaAa+RSHAfCN3KFnkoQXEHAfIr5E8UNESOXP7Ce5zVVU2gqeEKk5+wgo8rkOa3GfnIpYlFHt/POSOMgNKJdQjn+oJG9+/bjlyi00L1iyDQRctcmRu+TQ7y/ViaGalqpf/G8AAAD//50GzqT6LwAA + H4sIAAAAAAAA/9R6fXebxrb3//oUu5QcS42RhPzSRH5IiyUs81gSuoCc5rq+LAwjiVgCAkhJjq3vftcMAwwScpP2rK7edLVFs3+zZ7/vPZAff2g9eH7rwY4XNUXXLeODYSqjnjm0DFPWTetKVofSKRBab6hN+5Y6Vk3LVEeKNjWls5RypQ4V671s9q5zynlKudaGfeu9PFTH09/kgTI2pZ9Tgq4MFdlQKgBvUoA8MS11bJjycJgzfZuS+lrvRtH3qJ12idzX3o+Hmtwv6GKJfqN8qMB0ShgsBMbl5JMSmbFRhxpppF1+INuGqlHYqUMNNTKswWRw4OhzhsOebtRsPW1syupY0fv7EGo4fTru7ROp6W7eGBgwVseDnHbSLmh7Up1Qo91MLxUcFmPNtK606bgvnVBTqaNBxbaTYttQMVlLnZyWvTgaWJMpI+rJ2Z6qPbMKd76P01Us4z70sPVI6DJKUSP2xuq+Uqdi7sWJrvWtvnJZAersgyY3A0vu92k2UdOkqcZIQohvsiDoT3TtUqGr1Hva1LzEYmJFxinpjHGePFEtQ9FvFZ0FiJWA/tiwhpp2M51QWKcSJv/3VFf2wZl3ZVOuDubzNoPYzaJzkSHuRuo5FeT2ur/rnPP9yNg7+Oc2kwX7VHpyb2qY2sgyFFnvXVt9bSSrYyPV7Q1lMJhM9/e/OWGIunqr6AYb2m9O98m7+r05YzDKrdpTrMlwOlDHJUbnBUgdX2mWro2snqbr04mp9KU3NJ6NwW8Hz3nb3scwJ7wVizLbl9Vh4Z23TAGeTvqyqRQkGoc9Q8HBfasaqja2jJ6uTkziJ12R+wUnsd1mDsH1cDoZ6HJfYRCMGJOpPqABL7Y7eZLgjNYV7AZJbFP791TDkg1DHYwtXdNMa/JeEkVxj0biZ6LoI9XAkkqiSNlOZFJ7etrkAwFJoshynkyGH6yJbBjvNZ0k25U6kETxrJy4eRPQaFqIYlaS0jq0Fz6i+HMJoE0UXTaxDRVd13RJFLPyY+oVxLdQS41FktIw5d6NNVBMS9ZHlqndKGNJzHrgLmSsmO81/YbqMk0ZS2LWEnfhxvRyrJjWRFeu1N8kEXfFPCkvp+qwn8mEG1tqlPfyxOrpCg6X1BhZW2Ep6tiYXl2pPVUZk4i4sYyJ3FMkEbcZgjaVoTLRdJNJbUXXJTGrcwU9C/iUnCmim+qV3MMNR1fkEW5zGR9JzGpcBYgyk0Rc2tLJxTQnOMh/+2D1ZGy3W0U3JTErbDQzMEnRTUMSz/PpgoptKD1sVHNoWJeaZhqmLk/yfqj8pvSyvM+j4zxzcF81LuWhYqkTU74cKoYk4rKW1kx9apiYw35wZcWtrxp4l2UY15L4M+s6XcGSWLryX1NVV/pSJ0vQsUZSQh4oBq21nSwzjbE8Ma61vBawM087Yz7R1VtMxN0DNzvsk06WrHiRdVanfZoFTT5tjmTjhjKltJ6u9JWxqcrDtNT0K0e6No4/zZD4ehxECQgRtFDitH4SIrREdozgGeb250c4WtmJs6jz7WNo/U9d7VtD9UaR6k4QoSBuPKt9qd78qdHgW8dgN+AJwsjzE0iCdRiiqG7fde7Bvju5b1wA+uIlsD1q1DTDwkUV59H3nU53Wd9/KDxDEoHgwhF31KhNL6djc2pphjWWR4rEpb+52kjWcXMsCHSBq9EhTmqt46i1DBx7Sab/x/UDcpJlLS1oKRWvu4HziKIa+hJi7UjDupU4/qlob5kFutKWK+EUw2RP8Tee69m18a3aV+WscGbW6zTfNNuCWNtZFpviSVMUxGxX3vVxb8cBkCO5k+Z5s50LkJ2SSqiO5IFiGddyJnm+wApdtceUB7m2t1uBfzrA+EUuErdyoubKc6IgDmZJ0wlWLfsxxv8K83Cdb8UVP+32aaL0Rn2Jc5IIorUPghBG3sZbojlyQRCiFQiCjxJhEcQJCMJnL1kIfgyh53ZbYRQ4LbHlx63Qw+BVsMZB9TVE0oPnu8dx5EitIExa83B97MaJ1Fr56Y8gTLzAj6UI417aaTsEWOzOFkocctWoX/e0S8OrSkEfJRLVLfRc+riBTOxuJnK+SAXostIQQ3E1PFn05N61YvVVXWpt7Kjl2M4CtWy8L3IW3gbFrRqeEuQxbksMOAqCBOPSDTXlVhmbeBIeDEhjyfgtg3nL/vc6Qq1R7mcZ/24qXxLkx1iaZm8dJ8HKcCIvTFpog/wkbtV6U32Ip/rJ1JRaySpsOetoaW1Q9BDEqBmsk1otQkn01Vm5ljezZra3XEeo3oCnGgAApnkolnjxAj7bXmLFS4RCie9cQOKtULBOJP7kAuKFN0vgX//aeSAsZkEEHng+8PUYfQIReMq0cQFuQCD4D2UHfPbA8U+/bjnM6yFC9iM8P8PvOdqbwR3wHgjoU84P7i8gWSA/B+E/yFkEoHxBzjpBLvzO8b/+zuGN+JT4ogSNULKOfBDzRbSMUQlBlAe+MEROnXnk0Q38dMcfHLstjO7HyyB4XIe5yVkzi4yZscmDxF5arOEj5ASRK/GnZGuc2FFC6BJfd+0EwetXcSPluvCWCJJojUpWz04HIeea2V8gIkptbF98yAFPOOsoQv6BUwtX1essEARG1kYDhDkCvqTdYWdyJsYx8VLaFiGcSe7xd2mGox653MvRQF18OA5y579oklSHPDS+S8wg+iNDxsgJfDfmSiFW5LXlB1ac2En8T0hwnN9/Nb3/UznLWGuOEiuxowd7ucytlNiR9ZKlUjix1DpaZumYupp/YnZvM4NzB0zHYHfMZ0cgJP+eEQg+7VtMx3D7k+bLnHXexmG9BGEWG8MN8OQ5KIR5BzzTaqDz7l9iiQ8W6w74X+AHCdpwXyUMSR07KTEqAZgM/FOeJa1v5i2L9kZWvjEF8MbQThYSf0q9fFbyMsvrD93Mgst+vrsDYQZ8dhrc3+eOrvYxy+ovOjlPzUpX5yJh5+KLAkJlp79ruWjT8tfL5T/F9QQwC6Ky119weOHkEwIN7Q1y6UxK5i9nGaxdwfO9RMDYuEkQBDuPUAjC1SccDBmfLQc8QWAnUke0v6dq5kyPflS0qyPGCy9Hxd9RNAkSj9MecC0sXsvlCgGL5ChkfveOmqO2rcVf4wStnAQHL+lh39eTIN44vo0b7Olf6kK5GODaaBX4+GYd2O63bKByA09F+RuaWX427uLruDhaEPxACO05ikAop9/HYB359hJvEtb5hj+VToXL4iQI/8/5Cwv9dzrru63qerH98G2F6h9lWCr3P9O2aYXBqnyfXf+qMUnCCamR/jkG2aAo9gLfmidZmCUoxpftOnk3OIOjV/Hv/hFw/K8cPAN963gLz7BAtguCD2KDA0kCjhe52rZWRK/i4xiQfdcoFfO9Mg9iuw1ncNIGPtVHV9I3voYpm1ND4n8p78tLnVgucvAOdt6N8KKQYpvLYF4rDFw+AAQf4Tlkx8x0jBPBCdZLF/wggQeUXq7Yq2HJE9S03gx+gIrbFogdrGnnjFEG+WmmiN90fIp24eFrweKwLKw3+mlKEncwpdqbMbIsvTgR1r6XxCAIs/USxyue5Z/p1IEnGbEZo2jjOYjbEbjcCyDTlBdxiB8yZhCGrDH3Kt83saFYyofqjVYbFPWCVWgzb6+y9+CyxNfTSQTPrQ6+W7vAvebwpC02StDLHNo5BL27wxNezntL0yFfudxydGovDXw4lZCbs2cYALs3fQN/hP/BeZil4C2khy+8+QLFyW2axhJfV68MKb+DpGdsuVx0njARZp0XROefyky3VdLnsbatucFnH5fTPnqYPM7N4IqdrSc3g/SbAE1u/Dv/iNHJl/qqrvRMTf+QFdrVo+tFIITAl8jpEL6OFy7wTyXKNq/ke1mHY+i83QY7TIQ5SiATmLLA4m2l9JmKtv0pPSgI8WRqhwl5C5Dto8q90DXKb0UuagDkqwTeImH7UQ1Kb4pxgDMZ/A2dxg0f5yAITuDPvDnWVLBx4gaRg8iii2YEl996sCLLwHmMyXJmDiGAfvg473a19GV6tyuxXIKlW1hM+Lr7Hrb2R42LKC1ekBa135Yu0qJJ7w/Y4Dt2oI+Ya21bm6OkN5nKkbPII8yOnIXE19fp2Ltq5ALdAf+EicfHW5KRNv5xfsrhA3Yo0Qqv799F0zxKybW9PkupKzejktrjxbI+Oj9lSywWpV6I3mAPrT5TPHBam6lxy2AeW0lgpa/28/PSSEvs+JFEZvFeLiWkaJyjY7v0OvLVybhRY4Ck1ZnsK0vu1RW8MpuvTsZcamUcCVnaZX2anuK7h7cS3Mc48K04iTx/LvF1+PgJzxLFKCQIdjQHzCNO7FUIQMpZJtKW24NqIYpsHL+qi6FUgAogrWpkhRObnZN9iGnHj9g6kB6LbVnBSMGWHKINWgJwqj8LohURwF7uY0coju05Sg/FbWmJEuR2gf/pAN+J5xJs+wDdrKIfPeUG6wKfPx+zxukCz/w6zszRBZ4+HefqYx708ZjRtgt88eM4U60LPH06zjXIkBPPPc7FzhZNz90eEdGZF+H8ExMXW3gH/NP+N7At/1SO4m0T76oVpYjD5YKDHyRioHKGsQWFGRgWeKSw4kcvtNJvx5YbeXg6LiZXXCu/kMeHwP0q8fXitRgI18CNUGK7dmJ3yXcVjoynYRR8+QrcTxxwiyQJu62WeP622Tk7bdL/t1Z0V8vz48T2HfSLHXoCnculTrsjCu2O0BZpzjGp9mdUJYoUumbjB8djlfCcgBMRwVHTCVbhOkHNxJ7HQy9O4BlWdliP0RI5Sb1Jqu0zuSzUOePRCwfhuk8MpmI1lkvuAjiPazQad+375sZerhG0WsDN7GWMuHwnMVSKPGK/h/CMjORa4aVc//8noP4I1kmI72V1LHBmLsyCWEXwgeNTSNkolD0l1Zgam9Zpjn/SDDrCZX+LYbdGx2s3gMT1Z0Clwm3x46ca2xU+foLPdpwBSKqXJd3rJ9mUkfE8AxHO23+SL/F0GtmOHSbrCFkPyHcWKzt6jDMT4oB+/aWWTydebM08315aMSIftNOZjfYTL1kiPLHlKy981cp7ACGSGlQgrruvRt1XRu4qjt89lwOJZFDJcSlP15vNUIR8B1meb9GvW1LFRzDy1dtKv4Xhe8ZnO3EWjQbr8O/kmMpWyXLmFWZBSzuMkWstgnVE+PCVJ7ROztvtRmNv28rz1wkiGw/sfEV2ts6rdjPiH9hMt9HLvbBhviFblAtwr9odt5v/hwO+pFTxkwpbLNBTarUsnX6odm/mX9bBRXy+luo8ibdGBaHshzy+qqClAKwC7OtOvQlQKwrCH8sPhHdaW9PACx4+IierTj5t3JRGSieXasiVSTtK4TpYSci2lTQErqxxBqrycIXqHBw91XlGxkYXnrhggyJczfFzIQTXhQOSHQOXCYFBJYGOgas4tgsVwmy32yM6KP7oJXhcQYBFweZmnAh2FNlf8S0piFxMDeitbIMA91SYRcEKwghtvGAdZzkcg+274EQIc6VrkHosJvcuZDuL/HVfve5J7Qvw/h//9GNx8t2v99sL8F5Lpw3m1V/WIGiMVkcBJdIweGJ4evdbbge1HxGlDa/FYstuMJSBnQJYGRBl9AlGk3hgpG1UBEG1mP+xKDjK/t5IZtnD6YVHwDK9SJ/0N8cCSy7CyNIC91LKHpXZwjM079jEuYfXEuwwzKKZXHSZSeQyt3qXK80/ZcHTuawHzVpqiY+fgGviY+7KyHsO+Kfi70xPFP3K6sumjEfpZBWSORlf3Veb4mf1BnKMs1gFLvx8dnYYlPa+A91xZy44EC0Vs0EtH7e3tdqP18pwouiGol39bwAAAP//pTja2T42AAA= diff --git a/pkg/agent/testdata/AKSUbuntu1804+krustlet/line9.sh b/pkg/agent/testdata/AKSUbuntu1804+krustlet/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804+krustlet/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804+krustlet/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+CustomKubeImageandBinaries/CustomData b/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+CustomKubeImageandBinaries/CustomData index f6bf50d027c..1fda36284a8 100644 --- a/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+CustomKubeImageandBinaries/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+CustomKubeImageandBinaries/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+CustomKubeImageandBinaries/line9.sh b/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+CustomKubeImageandBinaries/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+CustomKubeImageandBinaries/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+CustomKubeImageandBinaries/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+NoCustomKubeImageandBinaries/CustomData b/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+NoCustomKubeImageandBinaries/CustomData index ffd2498f5ad..9b4bb600ded 100644 --- a/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+NoCustomKubeImageandBinaries/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+NoCustomKubeImageandBinaries/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+NoCustomKubeImageandBinaries/line9.sh b/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+NoCustomKubeImageandBinaries/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+NoCustomKubeImageandBinaries/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804ARM64Containerd+NoCustomKubeImageandBinaries/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu1804Containerd+RuncVersion/CustomData b/pkg/agent/testdata/AKSUbuntu1804Containerd+RuncVersion/CustomData index efefde2a283..e371996a50c 100644 --- a/pkg/agent/testdata/AKSUbuntu1804Containerd+RuncVersion/CustomData +++ b/pkg/agent/testdata/AKSUbuntu1804Containerd+RuncVersion/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu1804Containerd+RuncVersion/line9.sh b/pkg/agent/testdata/AKSUbuntu1804Containerd+RuncVersion/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu1804Containerd+RuncVersion/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu1804Containerd+RuncVersion/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu2204+China/CustomData b/pkg/agent/testdata/AKSUbuntu2204+China/CustomData index 73427af8dc9..f5d9050a933 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+China/CustomData +++ b/pkg/agent/testdata/AKSUbuntu2204+China/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - H4sIAAAAAAAA/9RZ+3Ob1pf/XX/FKcW11BohZMdN5CEtlrDMWBIsIKdZJ8tguJKoEVC4cpKvrf99514uL0t2k3an03WnLeI87jmf8wS+/068DSLx1s1WLdU0Heu9ZavToT1xLFsxbedC0SbyCVDacKLPR44202zH1qaqPrflVznlQpuozjvFHl6WlNOccqlPRs47ZaLN5r8pY3Vmyz/nBFOdqIql7mF4nTMohu1oM8tWJpNS6ZucNNKHV6q5Q+33GuSR/m420ZVRRZca9Cv1/R6efoOHGEH4SvJxg1zDqM9Amurn76nYRLMqnPoMqKnljI3xM0ef1jTs+MZgG+ozW9FmqjnaZWHAmfPZcJfIoLt6bRGGmTYbl7TjXkXbseqYgXY1P1dJWsx027nQ57ORfMyg0qbjPWLHldhEtetIHZ80ozgdO8a8Zurxqx1Xh/Y+vtNdPlMjNu6yPo8eTd2aUwzE4UzbdepEKqNomPrIGanne5j6u0zG1dhRRiNWTQyavNRqllDi6yIJRoapn6vsLouePrfPiZnEkVlOelULnmJojqWa16pZZ5D2MoxmljPR9au5wdj6e9mU/56b6i5zEV3FVvYn82mvxvG0ik6lGvFppp4yQ64vR0+Dc7qbGTsH/9yrVcEulZ08nFu2PnUsVTGHl85InyrazMp9e80UjI35rvzr4xrR1K5V06qn9uuTXfJT/16/qvGo19pQdYzJfKzNGopOKyZtdqE7pj51hrppzg1bHcmvWT5b49+ePedNb5endsIbqWqzI0WbVNF5U2vAc2Ok2GpFYnk4tFSS3NeapekzxxqammHTOJmqMqo0Sb1e7RDSD+fG2FRGao2jZoYxN8cs4aVevywSUtGmSsIgSz2G/1CzHMWytPHMMXXddox3siRJOzSaP4ZqTjWLWCpLElNrKLT3DHXjPWWSJamu2TAm7x1Dsax3ukmL7UIby5L0qlm45RDQWVlIUtGS8j60kz6S9HODQTdUU7EJhqpp6qYsSUX7sc09xDfQysGiRWnZyvDKGau2o5hTx9av1JksFTPwKctMtd/p5hXzZZ4rlqViJD5lt+bnM9V2DFO90H6TJTIVy6I8n2uTUWETGWw5KO8UwxmaKkmXHIxirNQp2syaX1xoQ02d0Yy4cixDGaqyRMYM5bbViWropl0rbdU0ZanocxW9SPicXDhi2tqFMiQDx1SVKRlzhR5ZKnrcHiamTJZIa8s3F9s2SJL/9t4ZKgS3a9W0ZalobKwyCEk1bUuWTsvtgpltqUMCqj2xnHNdty3bVIxyHqq/qcOi7svsOC0CPNKsc2WiOpphK+cT1ZIl0tbynmnOLZto2E2uormNNItIOZZ1KUs/10NnqsQSx1T/a66Z6kjuFwU602lJKGPVYr22X1SmNVMM61Ive0F95+kVyg1TuyZEMj3IsCMx6RfFSm7Wg9XvnRRJU26bU8W6YkoZbWiqI3Vma8okbzWjvStdj+Sfbsl8O4tTDEIKIsKe+KOQohC5GYJHWLqf7uBw7WJv1eZ7RyD+T1sbORPtSpXbXpyiOOs8aiO53f2x0+HFI3A78ABJGkQYcLxJEpS23Zv+R3Bvjj92zgB9DjBsDzst3XJIUyV19G2nMynn2w+FR8ApCD4ccoed1vx8PrPnjm45M2Wqylz+m2tNFZMMx4rAbnAttsTJ4iZLxTD23JBu/3ebW+ThsJU3tJxK7vuxd4fSFvqcEO/owLqWOf6hGm8FAgN5yzX4VMuunxLdB37gtmbX2khTisZZoNfvvu72BKn15LbUlY67kiAVUuXUJ7OdJEDJyR13T7u90oDilNxCbaqMVce6VArLyxt1o/fJ2Mq49PZ6K/APzyh+UYvMrb20uw68NM7iBe568Vp07zLyr7BMNqUo6fj5tM8LZTgdyZyHU0g3EQhCkgb3QYiWyAdBSNcgCBHCwirOMAjCpwCvhCiDJPAHYpLGniiJUSYmAWFexxuSVF8SJN8GkX+UpZ4sxgkWl8nmyM+wLK6j/Eec4CCOMjklfC9Juh5lrKSLGw0NpWssrjve5em1z8EIYZn5lgQ+u7yHwuxBYXJ5kxkwqFtDgeJaZLMYKsNL1Rlppizeu6noud4KiS6RS71VcI8ysUW2BGVGxlKNOY1jTPhygZZ6rc5ssgmPx3SwFPrCeCm6/9mkSJyWcVbI7676GaMoI9Z0h5sMx2vLS4MEi+geRTgTW8O5OSFbvTG3ZRGvE9HbpKFzj9LbOEPdeINbrRTh9Iu39p1g4SzcINykqN2BhxYAAKEFKJN56Qw+uQF2shChROb7Z4CDNYo3WOaPzyBbBQsMP/zw5IKqWMQpBBBEwLcz9AdIwDOlnTPwY8pC/pg64IsLjn/4dcsRXbcpcu/g8RE+lNzBAm6AD0BAf5T64OMZ4BWKSibyh7xVDOpn5G0w8uEDx//6gSOC5JTsrMGaIrxJI5DKmyjMUIODOg98BURJXQT00o+jXOJPjt1WoEdZGMd3m6SEvA6zVIOZQB5jN3TqwKfIi1Nf5k+oaIbdFFO6zLd9FyP46SDr5FpXQYgApxvUQL04HYRSa4G/QE2UewRfcsgzkfA2aYqiZ06tQtVu1xlBqNna6YCwRMA3vHs+mJxN+Gr50hBLEakk/+ibPCNZj3zu5WxgIX4+D8rgvwhJ7kOZGt9kZpz+GZAZ8uLIz7hGilV17USxk2EXZ/+GAif1/XfL+/+qZmtoLRF2sJveumFYooTd1HkJqZydIrVJw6Ic81DzDzXpbQE49wx0Nd4n8LkpCPg/C8pCTvsa6Gra/iJ8RbBOeyStQxAWmTW5B55ex5Uxb4GvjRrov/1BaughZt0A/wt8J0MPPu4zhpaOixuKGgy1CvxLkaWjbxGE1Xijd76yBIhg4uKVzJ+wKL9qRLmu60/DXGduxvnmBoQF8MVp8PFjGej9Ma6r+ptBLktzb6hLk0hwyYMCQs2gvxV9dC9GmzD8t4SeMizitBn1FwJeBfmYsibuPfLZTkr3Ly+MN74QRAEWCG/WpRyUd5miBISLP0gyFHq2HPCUgwSRBaL3LV2zVHr4vapfHNai8HJW/BNNk3KSdToATiTmiT5XGVgVR2Xz27cMjta2lX3JMFp7mCQvnWHfNpMgu/cilwzYk781hUozwHfROo7Ik3Xs+l8jwOwGnpnyDwyz8mwyxTdZdbQgRLGQuEuUgtAsv9/jTRq5IRESNqXAXyqnKmQZjpP/d/EiRv+TwfpmVP0gc2+/rlH9q4Bldv87sc07DHHl23D9u2DSghNykP49gNyjNAviyFniIs0wysjDdpu+G1zA4UH2IToEjv+Vg0dgbx2v4RFWyPVBiEDqcCDLwPES19q2quxVI5IDSuRbjWa+0+ZB6vXgFRz3gM/9MdX8ja9lK/bckvlfmnJlq5OaTQ7ewpN3I7wk5LzdMF62KoCbB4AQIbKHPIGZrXESePEm9CGKMdyi/OGq/mjYiASDNljAd7DnaQukPvG0/6rmDIrySpG+6vic24fbL5WK522pR2OUlyQNR61VB4uaLWGQYWETBTgDQVhsQpKvZJd/ZFsH2WSkbobS+8BD3BODm7MACk95iaT4c2DGSVIHc6fzfZUaxsv0ML/R+h6lw3iduLW3V8V7cEXm2/kmQvZWjzxb+8D9xJFNW+o0WM9L1v5zrDc3ZMMrdW9ZOZR3zrcc29obCx8pJeSX6msKoC6bv4E/JP+QOixK8Bryw1fBcoUyfJ2Xscy3tQtLLp9B8jO2XGk6T5UIi/4LpvMPTaXbfdaXubZt+fGniLTTEbo17pZ2fFHfrY2rcf5NgBU3+V1+xOiXt0aaqQ5t3XxfNNr1nR+kICTAN8j5Er7JVj7wDw3KtuzkO1VHcui01wM3wcISYSgMZiqIeVs5v2ambX/MD4oTspm6CaZvAQo55twLU6P5VuSsBUC/ShARmeDHPGi8KSYJXqvgr5g0fnK3BEHw4mgRLImngksKN049RG/6aEH5yqce4kgYe3cZvV3AIcQwSu6Wg4Gev0wfDOS6ljj0K8SEL0/fw7b+bHBRp6UzOqJ2x9JZ3jTZ8wMB/AkO7JJobW1bS4SHxlxJvVWZYW7qrWS+vcnX3nWnNOgG+AdCPDra0op0yY/TE44c8ISSrsn93WfRvI5ycmtnzjLq2i+otPcEmWJOT0/qLZaY0q5M79QP3X+m9MxpvVqPC+Nl5uDYyV/tl+flmYbd7I5mZvVeLifk3KRGZ27jdeTB8azTqjHSUWfXX1lyBxdwYHcPjmdcjjLJhKLsijnNTon850Up3+9ZHDkZToNoKfNt+P0PsktUq5AguOkSiI4Mu+sEgLazwqQtt8OqJyh1Sf5qPmFlBuxhZF2N3uGkbv94l8V2szuCDuTHEiz3KFIJkhN0j0IATosWcbqmBrjhLu8UZZm7RPmhZCyFCCN/APyPz+g1Ap/y9p6h2/vohw8lYAPgy+ujOjgD4Gu/jgo4BsCzq6PSfaKDXR7VvB0AX/04KlwbAM+ujkoPCk4j8I9Ks4ubduBvD6nptRfh/EMtL7bwFviH3W9gW/6hmcXbLpFqVa2II+2Cg+9kClCzwuoNpbYwrMhK4WR3QeLk344dPw3IdlxtrqRXfqaXt7H/Rebb1WsxEC6BmyLs+i52B/S7CkfX0ySNP38B7kcOuBXGyUAUpdM33f6rky77v7hmUmIQZdiNPPSLmwQC28vlfq8vCb2+0JNYzdVK7a+4Sh2pfC3WD44nLpE9gRQigsOuF6+TDUZd7C6zSZBheIS1m7QzFCIPt7u02z7Sh4U2Z90FyTjZjChgGnEjDLkz4AKu0+nc9D52791wg0AUgVu4YYa4UpIClXMe1r+H8DUb88cK+lXjk4u9FbCIeG6CNyna91ml+gZCC6CiXg4OpoMDq5OrjJO6xnJKv/C9puxuLyov+PxgsUApijzkBJHDvsXIu59s+Adp2+lUBqDQTTLkO6t4k1J+fq8m8fi01+t0dsTWQbTBiAo+I3lAJcXTfdI1M58RZmJkXufPiMI93KLIW63d9A64Q/6hvz0EAfIPc6QNgZorH8BBr+8Pyv9wwDd8rX4yH6ob7PBWsWw8HNPZTRKokfWVSfnTJUcrgT6D0sfyAfAZ/STuPEkSMsLLgfs1WnbFaX1VoijymaAa+RSHAfCN3KFnkoQXEHAfIr5E8UNESOXP7Ce5zVVU2gqeEKk5+wgo8rkOa3GfnIpYlFHt/POSOMgNKJdQjn+oJG9+/bjlyi00L1iyDQRctcmRu+TQ7y/ViaGalqpf/G8AAAD//50GzqT6LwAA + H4sIAAAAAAAA/9R6fXebxrb3//oUu5QcS42RhPzSRH5IiyUs81gSuoCc5rq+LAwjiVgCAkhJjq3vftcMAwwScpP2rK7edLVFs3+zZ7/vPZAff2g9eH7rwY4XNUXXLeODYSqjnjm0DFPWTetKVofSKRBab6hN+5Y6Vk3LVEeKNjWls5RypQ4V671s9q5zynlKudaGfeu9PFTH09/kgTI2pZ9Tgq4MFdlQKgBvUoA8MS11bJjycJgzfZuS+lrvRtH3qJ12idzX3o+Hmtwv6GKJfqN8qMB0ShgsBMbl5JMSmbFRhxpppF1+INuGqlHYqUMNNTKswWRw4OhzhsOebtRsPW1syupY0fv7EGo4fTru7ROp6W7eGBgwVseDnHbSLmh7Up1Qo91MLxUcFmPNtK606bgvnVBTqaNBxbaTYttQMVlLnZyWvTgaWJMpI+rJ2Z6qPbMKd76P01Us4z70sPVI6DJKUSP2xuq+Uqdi7sWJrvWtvnJZAersgyY3A0vu92k2UdOkqcZIQohvsiDoT3TtUqGr1Hva1LzEYmJFxinpjHGePFEtQ9FvFZ0FiJWA/tiwhpp2M51QWKcSJv/3VFf2wZl3ZVOuDubzNoPYzaJzkSHuRuo5FeT2ur/rnPP9yNg7+Oc2kwX7VHpyb2qY2sgyFFnvXVt9bSSrYyPV7Q1lMJhM9/e/OWGIunqr6AYb2m9O98m7+r05YzDKrdpTrMlwOlDHJUbnBUgdX2mWro2snqbr04mp9KU3NJ6NwW8Hz3nb3scwJ7wVizLbl9Vh4Z23TAGeTvqyqRQkGoc9Q8HBfasaqja2jJ6uTkziJ12R+wUnsd1mDsH1cDoZ6HJfYRCMGJOpPqABL7Y7eZLgjNYV7AZJbFP791TDkg1DHYwtXdNMa/JeEkVxj0biZ6LoI9XAkkqiSNlOZFJ7etrkAwFJoshynkyGH6yJbBjvNZ0k25U6kETxrJy4eRPQaFqIYlaS0jq0Fz6i+HMJoE0UXTaxDRVd13RJFLPyY+oVxLdQS41FktIw5d6NNVBMS9ZHlqndKGNJzHrgLmSsmO81/YbqMk0ZS2LWEnfhxvRyrJjWRFeu1N8kEXfFPCkvp+qwn8mEG1tqlPfyxOrpCg6X1BhZW2Ep6tiYXl2pPVUZk4i4sYyJ3FMkEbcZgjaVoTLRdJNJbUXXJTGrcwU9C/iUnCmim+qV3MMNR1fkEW5zGR9JzGpcBYgyk0Rc2tLJxTQnOMh/+2D1ZGy3W0U3JTErbDQzMEnRTUMSz/PpgoptKD1sVHNoWJeaZhqmLk/yfqj8pvSyvM+j4zxzcF81LuWhYqkTU74cKoYk4rKW1kx9apiYw35wZcWtrxp4l2UY15L4M+s6XcGSWLryX1NVV/pSJ0vQsUZSQh4oBq21nSwzjbE8Ma61vBawM087Yz7R1VtMxN0DNzvsk06WrHiRdVanfZoFTT5tjmTjhjKltJ6u9JWxqcrDtNT0K0e6No4/zZD4ehxECQgRtFDitH4SIrREdozgGeb250c4WtmJs6jz7WNo/U9d7VtD9UaR6k4QoSBuPKt9qd78qdHgW8dgN+AJwsjzE0iCdRiiqG7fde7Bvju5b1wA+uIlsD1q1DTDwkUV59H3nU53Wd9/KDxDEoHgwhF31KhNL6djc2pphjWWR4rEpb+52kjWcXMsCHSBq9EhTmqt46i1DBx7Sab/x/UDcpJlLS1oKRWvu4HziKIa+hJi7UjDupU4/qlob5kFutKWK+EUw2RP8Tee69m18a3aV+WscGbW6zTfNNuCWNtZFpviSVMUxGxX3vVxb8cBkCO5k+Z5s50LkJ2SSqiO5IFiGddyJnm+wApdtceUB7m2t1uBfzrA+EUuErdyoubKc6IgDmZJ0wlWLfsxxv8K83Cdb8UVP+32aaL0Rn2Jc5IIorUPghBG3sZbojlyQRCiFQiCjxJhEcQJCMJnL1kIfgyh53ZbYRQ4LbHlx63Qw+BVsMZB9TVE0oPnu8dx5EitIExa83B97MaJ1Fr56Y8gTLzAj6UI417aaTsEWOzOFkocctWoX/e0S8OrSkEfJRLVLfRc+riBTOxuJnK+SAXostIQQ3E1PFn05N61YvVVXWpt7Kjl2M4CtWy8L3IW3gbFrRqeEuQxbksMOAqCBOPSDTXlVhmbeBIeDEhjyfgtg3nL/vc6Qq1R7mcZ/24qXxLkx1iaZm8dJ8HKcCIvTFpog/wkbtV6U32Ip/rJ1JRaySpsOetoaW1Q9BDEqBmsk1otQkn01Vm5ljezZra3XEeo3oCnGgAApnkolnjxAj7bXmLFS4RCie9cQOKtULBOJP7kAuKFN0vgX//aeSAsZkEEHng+8PUYfQIReMq0cQFuQCD4D2UHfPbA8U+/bjnM6yFC9iM8P8PvOdqbwR3wHgjoU84P7i8gWSA/B+E/yFkEoHxBzjpBLvzO8b/+zuGN+JT4ogSNULKOfBDzRbSMUQlBlAe+MEROnXnk0Q38dMcfHLstjO7HyyB4XIe5yVkzi4yZscmDxF5arOEj5ASRK/GnZGuc2FFC6BJfd+0EwetXcSPluvCWCJJojUpWz04HIeea2V8gIkptbF98yAFPOOsoQv6BUwtX1essEARG1kYDhDkCvqTdYWdyJsYx8VLaFiGcSe7xd2mGox653MvRQF18OA5y579oklSHPDS+S8wg+iNDxsgJfDfmSiFW5LXlB1ac2En8T0hwnN9/Nb3/UznLWGuOEiuxowd7ucytlNiR9ZKlUjix1DpaZumYupp/YnZvM4NzB0zHYHfMZ0cgJP+eEQg+7VtMx3D7k+bLnHXexmG9BGEWG8MN8OQ5KIR5BzzTaqDz7l9iiQ8W6w74X+AHCdpwXyUMSR07KTEqAZgM/FOeJa1v5i2L9kZWvjEF8MbQThYSf0q9fFbyMsvrD93Mgst+vrsDYQZ8dhrc3+eOrvYxy+ovOjlPzUpX5yJh5+KLAkJlp79ruWjT8tfL5T/F9QQwC6Ky119weOHkEwIN7Q1y6UxK5i9nGaxdwfO9RMDYuEkQBDuPUAjC1SccDBmfLQc8QWAnUke0v6dq5kyPflS0qyPGCy9Hxd9RNAkSj9MecC0sXsvlCgGL5ChkfveOmqO2rcVf4wStnAQHL+lh39eTIN44vo0b7Olf6kK5GODaaBX4+GYd2O63bKByA09F+RuaWX427uLruDhaEPxACO05ikAop9/HYB359hJvEtb5hj+VToXL4iQI/8/5Cwv9dzrru63qerH98G2F6h9lWCr3P9O2aYXBqnyfXf+qMUnCCamR/jkG2aAo9gLfmidZmCUoxpftOnk3OIOjV/Hv/hFw/K8cPAN963gLz7BAtguCD2KDA0kCjhe52rZWRK/i4xiQfdcoFfO9Mg9iuw1ncNIGPtVHV9I3voYpm1ND4n8p78tLnVgucvAOdt6N8KKQYpvLYF4rDFw+AAQf4Tlkx8x0jBPBCdZLF/wggQeUXq7Yq2HJE9S03gx+gIrbFogdrGnnjFEG+WmmiN90fIp24eFrweKwLKw3+mlKEncwpdqbMbIsvTgR1r6XxCAIs/USxyue5Z/p1IEnGbEZo2jjOYjbEbjcCyDTlBdxiB8yZhCGrDH3Kt83saFYyofqjVYbFPWCVWgzb6+y9+CyxNfTSQTPrQ6+W7vAvebwpC02StDLHNo5BL27wxNezntL0yFfudxydGovDXw4lZCbs2cYALs3fQN/hP/BeZil4C2khy+8+QLFyW2axhJfV68MKb+DpGdsuVx0njARZp0XROefyky3VdLnsbatucFnH5fTPnqYPM7N4IqdrSc3g/SbAE1u/Dv/iNHJl/qqrvRMTf+QFdrVo+tFIITAl8jpEL6OFy7wTyXKNq/ke1mHY+i83QY7TIQ5SiATmLLA4m2l9JmKtv0pPSgI8WRqhwl5C5Dto8q90DXKb0UuagDkqwTeImH7UQ1Kb4pxgDMZ/A2dxg0f5yAITuDPvDnWVLBx4gaRg8iii2YEl996sCLLwHmMyXJmDiGAfvg473a19GV6tyuxXIKlW1hM+Lr7Hrb2R42LKC1ekBa135Yu0qJJ7w/Y4Dt2oI+Ya21bm6OkN5nKkbPII8yOnIXE19fp2Ltq5ALdAf+EicfHW5KRNv5xfsrhA3Yo0Qqv799F0zxKybW9PkupKzejktrjxbI+Oj9lSywWpV6I3mAPrT5TPHBam6lxy2AeW0lgpa/28/PSSEvs+JFEZvFeLiWkaJyjY7v0OvLVybhRY4Ck1ZnsK0vu1RW8MpuvTsZcamUcCVnaZX2anuK7h7cS3Mc48K04iTx/LvF1+PgJzxLFKCQIdjQHzCNO7FUIQMpZJtKW24NqIYpsHL+qi6FUgAogrWpkhRObnZN9iGnHj9g6kB6LbVnBSMGWHKINWgJwqj8LohURwF7uY0coju05Sg/FbWmJEuR2gf/pAN+J5xJs+wDdrKIfPeUG6wKfPx+zxukCz/w6zszRBZ4+HefqYx708ZjRtgt88eM4U60LPH06zjXIkBPPPc7FzhZNz90eEdGZF+H8ExMXW3gH/NP+N7At/1SO4m0T76oVpYjD5YKDHyRioHKGsQWFGRgWeKSw4kcvtNJvx5YbeXg6LiZXXCu/kMeHwP0q8fXitRgI18CNUGK7dmJ3yXcVjoynYRR8+QrcTxxwiyQJu62WeP622Tk7bdL/t1Z0V8vz48T2HfSLHXoCnculTrsjCu2O0BZpzjGp9mdUJYoUumbjB8djlfCcgBMRwVHTCVbhOkHNxJ7HQy9O4BlWdliP0RI5Sb1Jqu0zuSzUOePRCwfhuk8MpmI1lkvuAjiPazQad+375sZerhG0WsDN7GWMuHwnMVSKPGK/h/CMjORa4aVc//8noP4I1kmI72V1LHBmLsyCWEXwgeNTSNkolD0l1Zgam9Zpjn/SDDrCZX+LYbdGx2s3gMT1Z0Clwm3x46ca2xU+foLPdpwBSKqXJd3rJ9mUkfE8AxHO23+SL/F0GtmOHSbrCFkPyHcWKzt6jDMT4oB+/aWWTydebM08315aMSIftNOZjfYTL1kiPLHlKy981cp7ACGSGlQgrruvRt1XRu4qjt89lwOJZFDJcSlP15vNUIR8B1meb9GvW1LFRzDy1dtKv4Xhe8ZnO3EWjQbr8O/kmMpWyXLmFWZBSzuMkWstgnVE+PCVJ7ROztvtRmNv28rz1wkiGw/sfEV2ts6rdjPiH9hMt9HLvbBhviFblAtwr9odt5v/hwO+pFTxkwpbLNBTarUsnX6odm/mX9bBRXy+luo8ibdGBaHshzy+qqClAKwC7OtOvQlQKwrCH8sPhHdaW9PACx4+IierTj5t3JRGSieXasiVSTtK4TpYSci2lTQErqxxBqrycIXqHBw91XlGxkYXnrhggyJczfFzIQTXhQOSHQOXCYFBJYGOgas4tgsVwmy32yM6KP7oJXhcQYBFweZmnAh2FNlf8S0piFxMDeitbIMA91SYRcEKwghtvGAdZzkcg+274EQIc6VrkHosJvcuZDuL/HVfve5J7Qvw/h//9GNx8t2v99sL8F5Lpw3m1V/WIGiMVkcBJdIweGJ4evdbbge1HxGlDa/FYstuMJSBnQJYGRBl9AlGk3hgpG1UBEG1mP+xKDjK/t5IZtnD6YVHwDK9SJ/0N8cCSy7CyNIC91LKHpXZwjM079jEuYfXEuwwzKKZXHSZSeQyt3qXK80/ZcHTuawHzVpqiY+fgGviY+7KyHsO+Kfi70xPFP3K6sumjEfpZBWSORlf3Veb4mf1BnKMs1gFLvx8dnYYlPa+A91xZy44EC0Vs0EtH7e3tdqP18pwouiGol39bwAAAP//pTja2T42AAA= diff --git a/pkg/agent/testdata/AKSUbuntu2204+China/line9.sh b/pkg/agent/testdata/AKSUbuntu2204+China/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+China/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu2204+China/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG+ArtifactStreaming/CustomData b/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG+ArtifactStreaming/CustomData index 57a4104bb94..681a065acb7 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG+ArtifactStreaming/CustomData +++ b/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG+ArtifactStreaming/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - H4sIAAAAAAAA/9RZ+3Ob1pf/XX/FKcW11BohZMdN5CEtlrDMWBIsIKdZJ8tguJKoEVC4cpKvrf99514uL0t2k3an03WnLeI87jmf8wS+/068DSLx1s1WLdU0Heu9ZavToT1xLFsxbedC0SbyCVDacKLPR44202zH1qaqPrflVznlQpuozjvFHl6WlNOccqlPRs47ZaLN5r8pY3Vmyz/nBFOdqIql7mF4nTMohu1oM8tWJpNS6ZucNNKHV6q5Q+33GuSR/m420ZVRRZca9Cv1/R6efoOHGEH4SvJxg1zDqM9Amurn76nYRLMqnPoMqKnljI3xM0ef1jTs+MZgG+ozW9FmqjnaZWHAmfPZcJfIoLt6bRGGmTYbl7TjXkXbseqYgXY1P1dJWsx027nQ57ORfMyg0qbjPWLHldhEtetIHZ80ozgdO8a8Zurxqx1Xh/Y+vtNdPlMjNu6yPo8eTd2aUwzE4UzbdepEKqNomPrIGanne5j6u0zG1dhRRiNWTQyavNRqllDi6yIJRoapn6vsLouePrfPiZnEkVlOelULnmJojqWa16pZZ5D2MoxmljPR9au5wdj6e9mU/56b6i5zEV3FVvYn82mvxvG0ik6lGvFppp4yQ64vR0+Dc7qbGTsH/9yrVcEulZ08nFu2PnUsVTGHl85InyrazMp9e80UjI35rvzr4xrR1K5V06qn9uuTXfJT/16/qvGo19pQdYzJfKzNGopOKyZtdqE7pj51hrppzg1bHcmvWT5b49+ePedNb5endsIbqWqzI0WbVNF5U2vAc2Ok2GpFYnk4tFSS3NeapekzxxqammHTOJmqMqo0Sb1e7RDSD+fG2FRGao2jZoYxN8cs4aVevywSUtGmSsIgSz2G/1CzHMWytPHMMXXddox3siRJOzSaP4ZqTjWLWCpLElNrKLT3DHXjPWWSJamu2TAm7x1Dsax3ukmL7UIby5L0qlm45RDQWVlIUtGS8j60kz6S9HODQTdUU7EJhqpp6qYsSUX7sc09xDfQysGiRWnZyvDKGau2o5hTx9av1JksFTPwKctMtd/p5hXzZZ4rlqViJD5lt+bnM9V2DFO90H6TJTIVy6I8n2uTUWETGWw5KO8UwxmaKkmXHIxirNQp2syaX1xoQ02d0Yy4cixDGaqyRMYM5bbViWropl0rbdU0ZanocxW9SPicXDhi2tqFMiQDx1SVKRlzhR5ZKnrcHiamTJZIa8s3F9s2SJL/9t4ZKgS3a9W0ZalobKwyCEk1bUuWTsvtgpltqUMCqj2xnHNdty3bVIxyHqq/qcOi7svsOC0CPNKsc2WiOpphK+cT1ZIl0tbynmnOLZto2E2uormNNItIOZZ1KUs/10NnqsQSx1T/a66Z6kjuFwU602lJKGPVYr22X1SmNVMM61Ive0F95+kVyg1TuyZEMj3IsCMx6RfFSm7Wg9XvnRRJU26bU8W6YkoZbWiqI3Vma8okbzWjvStdj+Sfbsl8O4tTDEIKIsKe+KOQohC5GYJHWLqf7uBw7WJv1eZ7RyD+T1sbORPtSpXbXpyiOOs8aiO53f2x0+HFI3A78ABJGkQYcLxJEpS23Zv+R3Bvjj92zgB9DjBsDzst3XJIUyV19G2nMynn2w+FR8ApCD4ccoed1vx8PrPnjm45M2Wqylz+m2tNFZMMx4rAbnAttsTJ4iZLxTD23JBu/3ebW+ThsJU3tJxK7vuxd4fSFvqcEO/owLqWOf6hGm8FAgN5yzX4VMuunxLdB37gtmbX2khTisZZoNfvvu72BKn15LbUlY67kiAVUuXUJ7OdJEDJyR13T7u90oDilNxCbaqMVce6VArLyxt1o/fJ2Mq49PZ6K/APzyh+UYvMrb20uw68NM7iBe568Vp07zLyr7BMNqUo6fj5tM8LZTgdyZyHU0g3EQhCkgb3QYiWyAdBSNcgCBHCwirOMAjCpwCvhCiDJPAHYpLGniiJUSYmAWFexxuSVF8SJN8GkX+UpZ4sxgkWl8nmyM+wLK6j/Eec4CCOMjklfC9Juh5lrKSLGw0NpWssrjve5em1z8EIYZn5lgQ+u7yHwuxBYXJ5kxkwqFtDgeJaZLMYKsNL1Rlppizeu6noud4KiS6RS71VcI8ysUW2BGVGxlKNOY1jTPhygZZ6rc5ssgmPx3SwFPrCeCm6/9mkSJyWcVbI7676GaMoI9Z0h5sMx2vLS4MEi+geRTgTW8O5OSFbvTG3ZRGvE9HbpKFzj9LbOEPdeINbrRTh9Iu39p1g4SzcINykqN2BhxYAAKEFKJN56Qw+uQF2shChROb7Z4CDNYo3WOaPzyBbBQsMP/zw5IKqWMQpBBBEwLcz9AdIwDOlnTPwY8pC/pg64IsLjn/4dcsRXbcpcu/g8RE+lNzBAm6AD0BAf5T64OMZ4BWKSibyh7xVDOpn5G0w8uEDx//6gSOC5JTsrMGaIrxJI5DKmyjMUIODOg98BURJXQT00o+jXOJPjt1WoEdZGMd3m6SEvA6zVIOZQB5jN3TqwKfIi1Nf5k+oaIbdFFO6zLd9FyP46SDr5FpXQYgApxvUQL04HYRSa4G/QE2UewRfcsgzkfA2aYqiZ06tQtVu1xlBqNna6YCwRMA3vHs+mJxN+Gr50hBLEakk/+ibPCNZj3zu5WxgIX4+D8rgvwhJ7kOZGt9kZpz+GZAZ8uLIz7hGilV17USxk2EXZ/+GAif1/XfL+/+qZmtoLRF2sJveumFYooTd1HkJqZydIrVJw6Ic81DzDzXpbQE49wx0Nd4n8LkpCPg/C8pCTvsa6Gra/iJ8RbBOeyStQxAWmTW5B55ex5Uxb4GvjRrov/1BaughZt0A/wt8J0MPPu4zhpaOixuKGgy1CvxLkaWjbxGE1Xijd76yBIhg4uKVzJ+wKL9qRLmu60/DXGduxvnmBoQF8MVp8PFjGej9Ma6r+ptBLktzb6hLk0hwyYMCQs2gvxV9dC9GmzD8t4SeMizitBn1FwJeBfmYsibuPfLZTkr3Ly+MN74QRAEWCG/WpRyUd5miBISLP0gyFHq2HPCUgwSRBaL3LV2zVHr4vapfHNai8HJW/BNNk3KSdToATiTmiT5XGVgVR2Xz27cMjta2lX3JMFp7mCQvnWHfNpMgu/cilwzYk781hUozwHfROo7Ik3Xs+l8jwOwGnpnyDwyz8mwyxTdZdbQgRLGQuEuUgtAsv9/jTRq5IRESNqXAXyqnKmQZjpP/d/EiRv+TwfpmVP0gc2+/rlH9q4Bldv87sc07DHHl23D9u2DSghNykP49gNyjNAviyFniIs0wysjDdpu+G1zA4UH2IToEjv+Vg0dgbx2v4RFWyPVBiEDqcCDLwPES19q2quxVI5IDSuRbjWa+0+ZB6vXgFRz3gM/9MdX8ja9lK/bckvlfmnJlq5OaTQ7ewpN3I7wk5LzdMF62KoCbB4AQIbKHPIGZrXESePEm9CGKMdyi/OGq/mjYiASDNljAd7DnaQukPvG0/6rmDIrySpG+6vic24fbL5WK522pR2OUlyQNR61VB4uaLWGQYWETBTgDQVhsQpKvZJd/ZFsH2WSkbobS+8BD3BODm7MACk95iaT4c2DGSVIHc6fzfZUaxsv0ML/R+h6lw3iduLW3V8V7cEXm2/kmQvZWjzxb+8D9xJFNW+o0WM9L1v5zrDc3ZMMrdW9ZOZR3zrcc29obCx8pJeSX6msKoC6bv4E/JP+QOixK8Bryw1fBcoUyfJ2Xscy3tQtLLp9B8jO2XGk6T5UIi/4LpvMPTaXbfdaXubZt+fGniLTTEbo17pZ2fFHfrY2rcf5NgBU3+V1+xOiXt0aaqQ5t3XxfNNr1nR+kICTAN8j5Er7JVj7wDw3KtuzkO1VHcui01wM3wcISYSgMZiqIeVs5v2ambX/MD4oTspm6CaZvAQo55twLU6P5VuSsBUC/ShARmeDHPGi8KSYJXqvgr5g0fnK3BEHw4mgRLImngksKN049RG/6aEH5yqce4kgYe3cZvV3AIcQwSu6Wg4Gev0wfDOS6ljj0K8SEL0/fw7b+bHBRp6UzOqJ2x9JZ3jTZ8wMB/AkO7JJobW1bS4SHxlxJvVWZYW7qrWS+vcnX3nWnNOgG+AdCPDra0op0yY/TE44c8ISSrsn93WfRvI5ycmtnzjLq2i+otPcEmWJOT0/qLZaY0q5M79QP3X+m9MxpvVqPC+Nl5uDYyV/tl+flmYbd7I5mZvVeLifk3KRGZ27jdeTB8azTqjHSUWfXX1lyBxdwYHcPjmdcjjLJhKLsijnNTon850Up3+9ZHDkZToNoKfNt+P0PsktUq5AguOkSiI4Mu+sEgLazwqQtt8OqJyh1Sf5qPmFlBuxhZF2N3uGkbv94l8V2szuCDuTHEiz3KFIJkhN0j0IATosWcbqmBrjhLu8UZZm7RPmhZCyFCCN/APyPz+g1Ap/y9p6h2/vohw8lYAPgy+ujOjgD4Gu/jgo4BsCzq6PSfaKDXR7VvB0AX/04KlwbAM+ujkoPCk4j8I9Ks4ubduBvD6nptRfh/EMtL7bwFviH3W9gW/6hmcXbLpFqVa2II+2Cg+9kClCzwuoNpbYwrMhK4WR3QeLk344dPw3IdlxtrqRXfqaXt7H/Rebb1WsxEC6BmyLs+i52B/S7CkfX0ySNP38B7kcOuBXGyUAUpdM33f6rky77v7hmUmIQZdiNPPSLmwQC28vlfq8vCb2+0JNYzdVK7a+4Sh2pfC3WD44nLpE9gRQigsOuF6+TDUZd7C6zSZBheIS1m7QzFCIPt7u02z7Sh4U2Z90FyTjZjChgGnEjDLkz4AKu0+nc9D52791wg0AUgVu4YYa4UpIClXMe1r+H8DUb88cK+lXjk4u9FbCIeG6CNyna91ml+gZCC6CiXg4OpoMDq5OrjJO6xnJKv/C9puxuLyov+PxgsUApijzkBJHDvsXIu59s+Adp2+lUBqDQTTLkO6t4k1J+fq8m8fi01+t0dsTWQbTBiAo+I3lAJcXTfdI1M58RZmJkXufPiMI93KLIW63d9A64Q/6hvz0EAfIPc6QNgZorH8BBr+8Pyv9wwDd8rX4yH6ob7PBWsWw8HNPZTRKokfWVSfnTJUcrgT6D0sfyAfAZ/STuPEkSMsLLgfs1WnbFaX1VoijymaAa+RSHAfCN3KFnkoQXEHAfIr5E8UNESOXP7Ce5zVVU2gqeEKk5+wgo8rkOa3GfnIpYlFHt/POSOMgNKJdQjn+oJG9+/bjlyi00L1iyDQRctcmRu+TQ7y/ViaGalqpf/G8AAAD//50GzqT6LwAA + H4sIAAAAAAAA/9R6fXebxrb3//oUu5QcS42RhPzSRH5IiyUs81gSuoCc5rq+LAwjiVgCAkhJjq3vftcMAwwScpP2rK7edLVFs3+zZ7/vPZAff2g9eH7rwY4XNUXXLeODYSqjnjm0DFPWTetKVofSKRBab6hN+5Y6Vk3LVEeKNjWls5RypQ4V671s9q5zynlKudaGfeu9PFTH09/kgTI2pZ9Tgq4MFdlQKgBvUoA8MS11bJjycJgzfZuS+lrvRtH3qJ12idzX3o+Hmtwv6GKJfqN8qMB0ShgsBMbl5JMSmbFRhxpppF1+INuGqlHYqUMNNTKswWRw4OhzhsOebtRsPW1syupY0fv7EGo4fTru7ROp6W7eGBgwVseDnHbSLmh7Up1Qo91MLxUcFmPNtK606bgvnVBTqaNBxbaTYttQMVlLnZyWvTgaWJMpI+rJ2Z6qPbMKd76P01Us4z70sPVI6DJKUSP2xuq+Uqdi7sWJrvWtvnJZAersgyY3A0vu92k2UdOkqcZIQohvsiDoT3TtUqGr1Hva1LzEYmJFxinpjHGePFEtQ9FvFZ0FiJWA/tiwhpp2M51QWKcSJv/3VFf2wZl3ZVOuDubzNoPYzaJzkSHuRuo5FeT2ur/rnPP9yNg7+Oc2kwX7VHpyb2qY2sgyFFnvXVt9bSSrYyPV7Q1lMJhM9/e/OWGIunqr6AYb2m9O98m7+r05YzDKrdpTrMlwOlDHJUbnBUgdX2mWro2snqbr04mp9KU3NJ6NwW8Hz3nb3scwJ7wVizLbl9Vh4Z23TAGeTvqyqRQkGoc9Q8HBfasaqja2jJ6uTkziJ12R+wUnsd1mDsH1cDoZ6HJfYRCMGJOpPqABL7Y7eZLgjNYV7AZJbFP791TDkg1DHYwtXdNMa/JeEkVxj0biZ6LoI9XAkkqiSNlOZFJ7etrkAwFJoshynkyGH6yJbBjvNZ0k25U6kETxrJy4eRPQaFqIYlaS0jq0Fz6i+HMJoE0UXTaxDRVd13RJFLPyY+oVxLdQS41FktIw5d6NNVBMS9ZHlqndKGNJzHrgLmSsmO81/YbqMk0ZS2LWEnfhxvRyrJjWRFeu1N8kEXfFPCkvp+qwn8mEG1tqlPfyxOrpCg6X1BhZW2Ep6tiYXl2pPVUZk4i4sYyJ3FMkEbcZgjaVoTLRdJNJbUXXJTGrcwU9C/iUnCmim+qV3MMNR1fkEW5zGR9JzGpcBYgyk0Rc2tLJxTQnOMh/+2D1ZGy3W0U3JTErbDQzMEnRTUMSz/PpgoptKD1sVHNoWJeaZhqmLk/yfqj8pvSyvM+j4zxzcF81LuWhYqkTU74cKoYk4rKW1kx9apiYw35wZcWtrxp4l2UY15L4M+s6XcGSWLryX1NVV/pSJ0vQsUZSQh4oBq21nSwzjbE8Ma61vBawM087Yz7R1VtMxN0DNzvsk06WrHiRdVanfZoFTT5tjmTjhjKltJ6u9JWxqcrDtNT0K0e6No4/zZD4ehxECQgRtFDitH4SIrREdozgGeb250c4WtmJs6jz7WNo/U9d7VtD9UaR6k4QoSBuPKt9qd78qdHgW8dgN+AJwsjzE0iCdRiiqG7fde7Bvju5b1wA+uIlsD1q1DTDwkUV59H3nU53Wd9/KDxDEoHgwhF31KhNL6djc2pphjWWR4rEpb+52kjWcXMsCHSBq9EhTmqt46i1DBx7Sab/x/UDcpJlLS1oKRWvu4HziKIa+hJi7UjDupU4/qlob5kFutKWK+EUw2RP8Tee69m18a3aV+WscGbW6zTfNNuCWNtZFpviSVMUxGxX3vVxb8cBkCO5k+Z5s50LkJ2SSqiO5IFiGddyJnm+wApdtceUB7m2t1uBfzrA+EUuErdyoubKc6IgDmZJ0wlWLfsxxv8K83Cdb8UVP+32aaL0Rn2Jc5IIorUPghBG3sZbojlyQRCiFQiCjxJhEcQJCMJnL1kIfgyh53ZbYRQ4LbHlx63Qw+BVsMZB9TVE0oPnu8dx5EitIExa83B97MaJ1Fr56Y8gTLzAj6UI417aaTsEWOzOFkocctWoX/e0S8OrSkEfJRLVLfRc+riBTOxuJnK+SAXostIQQ3E1PFn05N61YvVVXWpt7Kjl2M4CtWy8L3IW3gbFrRqeEuQxbksMOAqCBOPSDTXlVhmbeBIeDEhjyfgtg3nL/vc6Qq1R7mcZ/24qXxLkx1iaZm8dJ8HKcCIvTFpog/wkbtV6U32Ip/rJ1JRaySpsOetoaW1Q9BDEqBmsk1otQkn01Vm5ljezZra3XEeo3oCnGgAApnkolnjxAj7bXmLFS4RCie9cQOKtULBOJP7kAuKFN0vgX//aeSAsZkEEHng+8PUYfQIReMq0cQFuQCD4D2UHfPbA8U+/bjnM6yFC9iM8P8PvOdqbwR3wHgjoU84P7i8gWSA/B+E/yFkEoHxBzjpBLvzO8b/+zuGN+JT4ogSNULKOfBDzRbSMUQlBlAe+MEROnXnk0Q38dMcfHLstjO7HyyB4XIe5yVkzi4yZscmDxF5arOEj5ASRK/GnZGuc2FFC6BJfd+0EwetXcSPluvCWCJJojUpWz04HIeea2V8gIkptbF98yAFPOOsoQv6BUwtX1essEARG1kYDhDkCvqTdYWdyJsYx8VLaFiGcSe7xd2mGox653MvRQF18OA5y579oklSHPDS+S8wg+iNDxsgJfDfmSiFW5LXlB1ac2En8T0hwnN9/Nb3/UznLWGuOEiuxowd7ucytlNiR9ZKlUjix1DpaZumYupp/YnZvM4NzB0zHYHfMZ0cgJP+eEQg+7VtMx3D7k+bLnHXexmG9BGEWG8MN8OQ5KIR5BzzTaqDz7l9iiQ8W6w74X+AHCdpwXyUMSR07KTEqAZgM/FOeJa1v5i2L9kZWvjEF8MbQThYSf0q9fFbyMsvrD93Mgst+vrsDYQZ8dhrc3+eOrvYxy+ovOjlPzUpX5yJh5+KLAkJlp79ruWjT8tfL5T/F9QQwC6Ky119weOHkEwIN7Q1y6UxK5i9nGaxdwfO9RMDYuEkQBDuPUAjC1SccDBmfLQc8QWAnUke0v6dq5kyPflS0qyPGCy9Hxd9RNAkSj9MecC0sXsvlCgGL5ChkfveOmqO2rcVf4wStnAQHL+lh39eTIN44vo0b7Olf6kK5GODaaBX4+GYd2O63bKByA09F+RuaWX427uLruDhaEPxACO05ikAop9/HYB359hJvEtb5hj+VToXL4iQI/8/5Cwv9dzrru63qerH98G2F6h9lWCr3P9O2aYXBqnyfXf+qMUnCCamR/jkG2aAo9gLfmidZmCUoxpftOnk3OIOjV/Hv/hFw/K8cPAN963gLz7BAtguCD2KDA0kCjhe52rZWRK/i4xiQfdcoFfO9Mg9iuw1ncNIGPtVHV9I3voYpm1ND4n8p78tLnVgucvAOdt6N8KKQYpvLYF4rDFw+AAQf4Tlkx8x0jBPBCdZLF/wggQeUXq7Yq2HJE9S03gx+gIrbFogdrGnnjFEG+WmmiN90fIp24eFrweKwLKw3+mlKEncwpdqbMbIsvTgR1r6XxCAIs/USxyue5Z/p1IEnGbEZo2jjOYjbEbjcCyDTlBdxiB8yZhCGrDH3Kt83saFYyofqjVYbFPWCVWgzb6+y9+CyxNfTSQTPrQ6+W7vAvebwpC02StDLHNo5BL27wxNezntL0yFfudxydGovDXw4lZCbs2cYALs3fQN/hP/BeZil4C2khy+8+QLFyW2axhJfV68MKb+DpGdsuVx0njARZp0XROefyky3VdLnsbatucFnH5fTPnqYPM7N4IqdrSc3g/SbAE1u/Dv/iNHJl/qqrvRMTf+QFdrVo+tFIITAl8jpEL6OFy7wTyXKNq/ke1mHY+i83QY7TIQ5SiATmLLA4m2l9JmKtv0pPSgI8WRqhwl5C5Dto8q90DXKb0UuagDkqwTeImH7UQ1Kb4pxgDMZ/A2dxg0f5yAITuDPvDnWVLBx4gaRg8iii2YEl996sCLLwHmMyXJmDiGAfvg473a19GV6tyuxXIKlW1hM+Lr7Hrb2R42LKC1ekBa135Yu0qJJ7w/Y4Dt2oI+Ya21bm6OkN5nKkbPII8yOnIXE19fp2Ltq5ALdAf+EicfHW5KRNv5xfsrhA3Yo0Qqv799F0zxKybW9PkupKzejktrjxbI+Oj9lSywWpV6I3mAPrT5TPHBam6lxy2AeW0lgpa/28/PSSEvs+JFEZvFeLiWkaJyjY7v0OvLVybhRY4Ck1ZnsK0vu1RW8MpuvTsZcamUcCVnaZX2anuK7h7cS3Mc48K04iTx/LvF1+PgJzxLFKCQIdjQHzCNO7FUIQMpZJtKW24NqIYpsHL+qi6FUgAogrWpkhRObnZN9iGnHj9g6kB6LbVnBSMGWHKINWgJwqj8LohURwF7uY0coju05Sg/FbWmJEuR2gf/pAN+J5xJs+wDdrKIfPeUG6wKfPx+zxukCz/w6zszRBZ4+HefqYx708ZjRtgt88eM4U60LPH06zjXIkBPPPc7FzhZNz90eEdGZF+H8ExMXW3gH/NP+N7At/1SO4m0T76oVpYjD5YKDHyRioHKGsQWFGRgWeKSw4kcvtNJvx5YbeXg6LiZXXCu/kMeHwP0q8fXitRgI18CNUGK7dmJ3yXcVjoynYRR8+QrcTxxwiyQJu62WeP622Tk7bdL/t1Z0V8vz48T2HfSLHXoCnculTrsjCu2O0BZpzjGp9mdUJYoUumbjB8djlfCcgBMRwVHTCVbhOkHNxJ7HQy9O4BlWdliP0RI5Sb1Jqu0zuSzUOePRCwfhuk8MpmI1lkvuAjiPazQad+375sZerhG0WsDN7GWMuHwnMVSKPGK/h/CMjORa4aVc//8noP4I1kmI72V1LHBmLsyCWEXwgeNTSNkolD0l1Zgam9Zpjn/SDDrCZX+LYbdGx2s3gMT1Z0Clwm3x46ca2xU+foLPdpwBSKqXJd3rJ9mUkfE8AxHO23+SL/F0GtmOHSbrCFkPyHcWKzt6jDMT4oB+/aWWTydebM08315aMSIftNOZjfYTL1kiPLHlKy981cp7ACGSGlQgrruvRt1XRu4qjt89lwOJZFDJcSlP15vNUIR8B1meb9GvW1LFRzDy1dtKv4Xhe8ZnO3EWjQbr8O/kmMpWyXLmFWZBSzuMkWstgnVE+PCVJ7ROztvtRmNv28rz1wkiGw/sfEV2ts6rdjPiH9hMt9HLvbBhviFblAtwr9odt5v/hwO+pFTxkwpbLNBTarUsnX6odm/mX9bBRXy+luo8ibdGBaHshzy+qqClAKwC7OtOvQlQKwrCH8sPhHdaW9PACx4+IierTj5t3JRGSieXasiVSTtK4TpYSci2lTQErqxxBqrycIXqHBw91XlGxkYXnrhggyJczfFzIQTXhQOSHQOXCYFBJYGOgas4tgsVwmy32yM6KP7oJXhcQYBFweZmnAh2FNlf8S0piFxMDeitbIMA91SYRcEKwghtvGAdZzkcg+274EQIc6VrkHosJvcuZDuL/HVfve5J7Qvw/h//9GNx8t2v99sL8F5Lpw3m1V/WIGiMVkcBJdIweGJ4evdbbge1HxGlDa/FYstuMJSBnQJYGRBl9AlGk3hgpG1UBEG1mP+xKDjK/t5IZtnD6YVHwDK9SJ/0N8cCSy7CyNIC91LKHpXZwjM079jEuYfXEuwwzKKZXHSZSeQyt3qXK80/ZcHTuawHzVpqiY+fgGviY+7KyHsO+Kfi70xPFP3K6sumjEfpZBWSORlf3Veb4mf1BnKMs1gFLvx8dnYYlPa+A91xZy44EC0Vs0EtH7e3tdqP18pwouiGol39bwAAAP//pTja2T42AAA= diff --git a/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG+ArtifactStreaming/line9.sh b/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG+ArtifactStreaming/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG+ArtifactStreaming/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG+ArtifactStreaming/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG/CustomData b/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG/CustomData index 2d3e8507591..4581e7f3e6a 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG/CustomData +++ b/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG/line9.sh b/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu2204+Containerd+MIG/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu2204+CustomCloud+ootcredentialprovider/CustomData b/pkg/agent/testdata/AKSUbuntu2204+CustomCloud+ootcredentialprovider/CustomData index d03e8c47b32..7607cdd4dc8 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+CustomCloud+ootcredentialprovider/CustomData +++ b/pkg/agent/testdata/AKSUbuntu2204+CustomCloud+ootcredentialprovider/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu2204+CustomCloud+ootcredentialprovider/line9.sh b/pkg/agent/testdata/AKSUbuntu2204+CustomCloud+ootcredentialprovider/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+CustomCloud+ootcredentialprovider/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu2204+CustomCloud+ootcredentialprovider/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu2204+CustomCloud/CustomData b/pkg/agent/testdata/AKSUbuntu2204+CustomCloud/CustomData index 69dbf133817..e22adbb1e5d 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+CustomCloud/CustomData +++ b/pkg/agent/testdata/AKSUbuntu2204+CustomCloud/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu2204+CustomCloud/line9.sh b/pkg/agent/testdata/AKSUbuntu2204+CustomCloud/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+CustomCloud/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu2204+CustomCloud/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu2204+CustomKubeletConfig+CustomLinuxOSConfig/CustomData b/pkg/agent/testdata/AKSUbuntu2204+CustomKubeletConfig+CustomLinuxOSConfig/CustomData index 292db9c8ba2..067f16963b8 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+CustomKubeletConfig+CustomLinuxOSConfig/CustomData +++ b/pkg/agent/testdata/AKSUbuntu2204+CustomKubeletConfig+CustomLinuxOSConfig/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu2204+CustomKubeletConfig+CustomLinuxOSConfig/line9.sh b/pkg/agent/testdata/AKSUbuntu2204+CustomKubeletConfig+CustomLinuxOSConfig/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+CustomKubeletConfig+CustomLinuxOSConfig/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu2204+CustomKubeletConfig+CustomLinuxOSConfig/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOff/CustomData b/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOff/CustomData index 73427af8dc9..f5d9050a933 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOff/CustomData +++ b/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOff/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOff/line9.sh b/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOff/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOff/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOff/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOn/CustomData b/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOn/CustomData index 73427af8dc9..f5d9050a933 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOn/CustomData +++ b/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOn/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOn/line9.sh b/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOn/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOn/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu2204+SSHStatusOn/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBoostrapping/CustomData b/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBoostrapping/CustomData index 63d1899a0ea..237e067d544 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBoostrapping/CustomData +++ b/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBoostrapping/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBoostrapping/line9.sh b/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBoostrapping/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBoostrapping/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBoostrapping/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBootstrapping+CustomAADResource/CustomData b/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBootstrapping+CustomAADResource/CustomData index c52bc602898..d67b221a5d3 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBootstrapping+CustomAADResource/CustomData +++ b/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBootstrapping+CustomAADResource/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBootstrapping+CustomAADResource/line9.sh b/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBootstrapping+CustomAADResource/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBootstrapping+CustomAADResource/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu2204+SecureTLSBootstrapping+CustomAADResource/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu2204+SecurityProfile/CustomData b/pkg/agent/testdata/AKSUbuntu2204+SecurityProfile/CustomData index 2565057b57b..d98e41e8594 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+SecurityProfile/CustomData +++ b/pkg/agent/testdata/AKSUbuntu2204+SecurityProfile/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu2204+SecurityProfile/line9.sh b/pkg/agent/testdata/AKSUbuntu2204+SecurityProfile/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+SecurityProfile/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu2204+SecurityProfile/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu2204+cgroupv2/CustomData b/pkg/agent/testdata/AKSUbuntu2204+cgroupv2/CustomData index 73427af8dc9..f5d9050a933 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+cgroupv2/CustomData +++ b/pkg/agent/testdata/AKSUbuntu2204+cgroupv2/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu2204+cgroupv2/line9.sh b/pkg/agent/testdata/AKSUbuntu2204+cgroupv2/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+cgroupv2/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu2204+cgroupv2/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AKSUbuntu2204+ootcredentialprovider/CustomData b/pkg/agent/testdata/AKSUbuntu2204+ootcredentialprovider/CustomData index 3140f46bde9..3dc984e90fa 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+ootcredentialprovider/CustomData +++ b/pkg/agent/testdata/AKSUbuntu2204+ootcredentialprovider/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AKSUbuntu2204+ootcredentialprovider/line9.sh b/pkg/agent/testdata/AKSUbuntu2204+ootcredentialprovider/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AKSUbuntu2204+ootcredentialprovider/line9.sh +++ b/pkg/agent/testdata/AKSUbuntu2204+ootcredentialprovider/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AzureLinuxV2+Kata/CustomData b/pkg/agent/testdata/AzureLinuxV2+Kata/CustomData index cbc8167e2d6..e60dab96385 100644 --- a/pkg/agent/testdata/AzureLinuxV2+Kata/CustomData +++ b/pkg/agent/testdata/AzureLinuxV2+Kata/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AzureLinuxV2+Kata/line9.sh b/pkg/agent/testdata/AzureLinuxV2+Kata/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AzureLinuxV2+Kata/line9.sh +++ b/pkg/agent/testdata/AzureLinuxV2+Kata/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=false/CustomData b/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=false/CustomData index cbc8167e2d6..e60dab96385 100644 --- a/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=false/CustomData +++ b/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=false/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=false/line9.sh b/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=false/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=false/line9.sh +++ b/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=false/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=true/CustomData b/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=true/CustomData index cbc8167e2d6..e60dab96385 100644 --- a/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=true/CustomData +++ b/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=true/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - H4sIAAAAAAAA/9RZ+3Ob1pf/XX/FKcW11BohZMdN5CEtlrDMWBIsIKdZJ8tguJKoEVC4cpKvrf99514uL0t2k3an03WnLeI87jmf8wS+/068DSLx1s1WLdU0Heu9ZavToT1xLFsxbedC0SbyCVDacKLPR44202zH1qaqPrflVznlQpuozjvFHl6WlNOccqlPRs47ZaLN5r8pY3Vmyz/nBFOdqIql7mF4nTMohu1oM8tWJpNS6ZucNNKHV6q5Q+33GuSR/m420ZVRRZca9Cv1/R6efoOHGEH4SvJxg1zDqM9Amurn76nYRLMqnPoMqKnljI3xM0ef1jTs+MZgG+ozW9FmqjnaZWHAmfPZcJfIoLt6bRGGmTYbl7TjXkXbseqYgXY1P1dJWsx027nQ57ORfMyg0qbjPWLHldhEtetIHZ80ozgdO8a8Zurxqx1Xh/Y+vtNdPlMjNu6yPo8eTd2aUwzE4UzbdepEKqNomPrIGanne5j6u0zG1dhRRiNWTQyavNRqllDi6yIJRoapn6vsLouePrfPiZnEkVlOelULnmJojqWa16pZZ5D2MoxmljPR9au5wdj6e9mU/56b6i5zEV3FVvYn82mvxvG0ik6lGvFppp4yQ64vR0+Dc7qbGTsH/9yrVcEulZ08nFu2PnUsVTGHl85InyrazMp9e80UjI35rvzr4xrR1K5V06qn9uuTXfJT/16/qvGo19pQdYzJfKzNGopOKyZtdqE7pj51hrppzg1bHcmvWT5b49+ePedNb5endsIbqWqzI0WbVNF5U2vAc2Ok2GpFYnk4tFSS3NeapekzxxqammHTOJmqMqo0Sb1e7RDSD+fG2FRGao2jZoYxN8cs4aVevywSUtGmSsIgSz2G/1CzHMWytPHMMXXddox3siRJOzSaP4ZqTjWLWCpLElNrKLT3DHXjPWWSJamu2TAm7x1Dsax3ukmL7UIby5L0qlm45RDQWVlIUtGS8j60kz6S9HODQTdUU7EJhqpp6qYsSUX7sc09xDfQysGiRWnZyvDKGau2o5hTx9av1JksFTPwKctMtd/p5hXzZZ4rlqViJD5lt+bnM9V2DFO90H6TJTIVy6I8n2uTUWETGWw5KO8UwxmaKkmXHIxirNQp2syaX1xoQ02d0Yy4cixDGaqyRMYM5bbViWropl0rbdU0ZanocxW9SPicXDhi2tqFMiQDx1SVKRlzhR5ZKnrcHiamTJZIa8s3F9s2SJL/9t4ZKgS3a9W0ZalobKwyCEk1bUuWTsvtgpltqUMCqj2xnHNdty3bVIxyHqq/qcOi7svsOC0CPNKsc2WiOpphK+cT1ZIl0tbynmnOLZto2E2uormNNItIOZZ1KUs/10NnqsQSx1T/a66Z6kjuFwU602lJKGPVYr22X1SmNVMM61Ive0F95+kVyg1TuyZEMj3IsCMx6RfFSm7Wg9XvnRRJU26bU8W6YkoZbWiqI3Vma8okbzWjvStdj+Sfbsl8O4tTDEIKIsKe+KOQohC5GYJHWLqf7uBw7WJv1eZ7RyD+T1sbORPtSpXbXpyiOOs8aiO53f2x0+HFI3A78ABJGkQYcLxJEpS23Zv+R3Bvjj92zgB9DjBsDzst3XJIUyV19G2nMynn2w+FR8ApCD4ccoed1vx8PrPnjm45M2Wqylz+m2tNFZMMx4rAbnAttsTJ4iZLxTD23JBu/3ebW+ThsJU3tJxK7vuxd4fSFvqcEO/owLqWOf6hGm8FAgN5yzX4VMuunxLdB37gtmbX2khTisZZoNfvvu72BKn15LbUlY67kiAVUuXUJ7OdJEDJyR13T7u90oDilNxCbaqMVce6VArLyxt1o/fJ2Mq49PZ6K/APzyh+UYvMrb20uw68NM7iBe568Vp07zLyr7BMNqUo6fj5tM8LZTgdyZyHU0g3EQhCkgb3QYiWyAdBSNcgCBHCwirOMAjCpwCvhCiDJPAHYpLGniiJUSYmAWFexxuSVF8SJN8GkX+UpZ4sxgkWl8nmyM+wLK6j/Eec4CCOMjklfC9Juh5lrKSLGw0NpWssrjve5em1z8EIYZn5lgQ+u7yHwuxBYXJ5kxkwqFtDgeJaZLMYKsNL1Rlppizeu6noud4KiS6RS71VcI8ysUW2BGVGxlKNOY1jTPhygZZ6rc5ssgmPx3SwFPrCeCm6/9mkSJyWcVbI7676GaMoI9Z0h5sMx2vLS4MEi+geRTgTW8O5OSFbvTG3ZRGvE9HbpKFzj9LbOEPdeINbrRTh9Iu39p1g4SzcINykqN2BhxYAAKEFKJN56Qw+uQF2shChROb7Z4CDNYo3WOaPzyBbBQsMP/zw5IKqWMQpBBBEwLcz9AdIwDOlnTPwY8pC/pg64IsLjn/4dcsRXbcpcu/g8RE+lNzBAm6AD0BAf5T64OMZ4BWKSibyh7xVDOpn5G0w8uEDx//6gSOC5JTsrMGaIrxJI5DKmyjMUIODOg98BURJXQT00o+jXOJPjt1WoEdZGMd3m6SEvA6zVIOZQB5jN3TqwKfIi1Nf5k+oaIbdFFO6zLd9FyP46SDr5FpXQYgApxvUQL04HYRSa4G/QE2UewRfcsgzkfA2aYqiZ06tQtVu1xlBqNna6YCwRMA3vHs+mJxN+Gr50hBLEakk/+ibPCNZj3zu5WxgIX4+D8rgvwhJ7kOZGt9kZpz+GZAZ8uLIz7hGilV17USxk2EXZ/+GAif1/XfL+/+qZmtoLRF2sJveumFYooTd1HkJqZydIrVJw6Ic81DzDzXpbQE49wx0Nd4n8LkpCPg/C8pCTvsa6Gra/iJ8RbBOeyStQxAWmTW5B55ex5Uxb4GvjRrov/1BaughZt0A/wt8J0MPPu4zhpaOixuKGgy1CvxLkaWjbxGE1Xijd76yBIhg4uKVzJ+wKL9qRLmu60/DXGduxvnmBoQF8MVp8PFjGej9Ma6r+ptBLktzb6hLk0hwyYMCQs2gvxV9dC9GmzD8t4SeMizitBn1FwJeBfmYsibuPfLZTkr3Ly+MN74QRAEWCG/WpRyUd5miBISLP0gyFHq2HPCUgwSRBaL3LV2zVHr4vapfHNai8HJW/BNNk3KSdToATiTmiT5XGVgVR2Xz27cMjta2lX3JMFp7mCQvnWHfNpMgu/cilwzYk781hUozwHfROo7Ik3Xs+l8jwOwGnpnyDwyz8mwyxTdZdbQgRLGQuEuUgtAsv9/jTRq5IRESNqXAXyqnKmQZjpP/d/EiRv+TwfpmVP0gc2+/rlH9q4Bldv87sc07DHHl23D9u2DSghNykP49gNyjNAviyFniIs0wysjDdpu+G1zA4UH2IToEjv+Vg0dgbx2v4RFWyPVBiEDqcCDLwPES19q2quxVI5IDSuRbjWa+0+ZB6vXgFRz3gM/9MdX8ja9lK/bckvlfmnJlq5OaTQ7ewpN3I7wk5LzdMF62KoCbB4AQIbKHPIGZrXESePEm9CGKMdyi/OGq/mjYiASDNljAd7DnaQukPvG0/6rmDIrySpG+6vic24fbL5WK522pR2OUlyQNR61VB4uaLWGQYWETBTgDQVhsQpKvZJd/ZFsH2WSkbobS+8BD3BODm7MACk95iaT4c2DGSVIHc6fzfZUaxsv0ML/R+h6lw3iduLW3V8V7cEXm2/kmQvZWjzxb+8D9xJFNW+o0WM9L1v5zrDc3ZMMrdW9ZOZR3zrcc29obCx8pJeSX6msKoC6bv4E/JP+QOixK8Bryw1fBcoUyfJ2Xscy3tQtLLp9B8jO2XGk6T5UIi/4LpvMPTaXbfdaXubZt+fGniLTTEbo17pZ2fFHfrY2rcf5NgBU3+V1+xOiXt0aaqQ5t3XxfNNr1nR+kICTAN8j5Er7JVj7wDw3KtuzkO1VHcui01wM3wcISYSgMZiqIeVs5v2ambX/MD4oTspm6CaZvAQo55twLU6P5VuSsBUC/ShARmeDHPGi8KSYJXqvgr5g0fnK3BEHw4mgRLImngksKN049RG/6aEH5yqce4kgYe3cZvV3AIcQwSu6Wg4Gev0wfDOS6ljj0K8SEL0/fw7b+bHBRp6UzOqJ2x9JZ3jTZ8wMB/AkO7JJobW1bS4SHxlxJvVWZYW7qrWS+vcnX3nWnNOgG+AdCPDra0op0yY/TE44c8ISSrsn93WfRvI5ycmtnzjLq2i+otPcEmWJOT0/qLZaY0q5M79QP3X+m9MxpvVqPC+Nl5uDYyV/tl+flmYbd7I5mZvVeLifk3KRGZ27jdeTB8azTqjHSUWfXX1lyBxdwYHcPjmdcjjLJhKLsijnNTon850Up3+9ZHDkZToNoKfNt+P0PsktUq5AguOkSiI4Mu+sEgLazwqQtt8OqJyh1Sf5qPmFlBuxhZF2N3uGkbv94l8V2szuCDuTHEiz3KFIJkhN0j0IATosWcbqmBrjhLu8UZZm7RPmhZCyFCCN/APyPz+g1Ap/y9p6h2/vohw8lYAPgy+ujOjgD4Gu/jgo4BsCzq6PSfaKDXR7VvB0AX/04KlwbAM+ujkoPCk4j8I9Ks4ubduBvD6nptRfh/EMtL7bwFviH3W9gW/6hmcXbLpFqVa2II+2Cg+9kClCzwuoNpbYwrMhK4WR3QeLk344dPw3IdlxtrqRXfqaXt7H/Rebb1WsxEC6BmyLs+i52B/S7CkfX0ySNP38B7kcOuBXGyUAUpdM33f6rky77v7hmUmIQZdiNPPSLmwQC28vlfq8vCb2+0JNYzdVK7a+4Sh2pfC3WD44nLpE9gRQigsOuF6+TDUZd7C6zSZBheIS1m7QzFCIPt7u02z7Sh4U2Z90FyTjZjChgGnEjDLkz4AKu0+nc9D52791wg0AUgVu4YYa4UpIClXMe1r+H8DUb88cK+lXjk4u9FbCIeG6CNyna91ml+gZCC6CiXg4OpoMDq5OrjJO6xnJKv/C9puxuLyov+PxgsUApijzkBJHDvsXIu59s+Adp2+lUBqDQTTLkO6t4k1J+fq8m8fi01+t0dsTWQbTBiAo+I3lAJcXTfdI1M58RZmJkXufPiMI93KLIW63d9A64Q/6hvz0EAfIPc6QNgZorH8BBr+8Pyv9wwDd8rX4yH6ob7PBWsWw8HNPZTRKokfWVSfnTJUcrgT6D0sfyAfAZ/STuPEkSMsLLgfs1WnbFaX1VoijymaAa+RSHAfCN3KFnkoQXEHAfIr5E8UNESOXP7Ce5zVVU2gqeEKk5+wgo8rkOa3GfnIpYlFHt/POSOMgNKJdQjn+oJG9+/bjlyi00L1iyDQRctcmRu+TQ7y/ViaGalqpf/G8AAAD//50GzqT6LwAA + H4sIAAAAAAAA/9R6fXebxrb3//oUu5QcS42RhPzSRH5IiyUs81gSuoCc5rq+LAwjiVgCAkhJjq3vftcMAwwScpP2rK7edLVFs3+zZ7/vPZAff2g9eH7rwY4XNUXXLeODYSqjnjm0DFPWTetKVofSKRBab6hN+5Y6Vk3LVEeKNjWls5RypQ4V671s9q5zynlKudaGfeu9PFTH09/kgTI2pZ9Tgq4MFdlQKgBvUoA8MS11bJjycJgzfZuS+lrvRtH3qJ12idzX3o+Hmtwv6GKJfqN8qMB0ShgsBMbl5JMSmbFRhxpppF1+INuGqlHYqUMNNTKswWRw4OhzhsOebtRsPW1syupY0fv7EGo4fTru7ROp6W7eGBgwVseDnHbSLmh7Up1Qo91MLxUcFmPNtK606bgvnVBTqaNBxbaTYttQMVlLnZyWvTgaWJMpI+rJ2Z6qPbMKd76P01Us4z70sPVI6DJKUSP2xuq+Uqdi7sWJrvWtvnJZAersgyY3A0vu92k2UdOkqcZIQohvsiDoT3TtUqGr1Hva1LzEYmJFxinpjHGePFEtQ9FvFZ0FiJWA/tiwhpp2M51QWKcSJv/3VFf2wZl3ZVOuDubzNoPYzaJzkSHuRuo5FeT2ur/rnPP9yNg7+Oc2kwX7VHpyb2qY2sgyFFnvXVt9bSSrYyPV7Q1lMJhM9/e/OWGIunqr6AYb2m9O98m7+r05YzDKrdpTrMlwOlDHJUbnBUgdX2mWro2snqbr04mp9KU3NJ6NwW8Hz3nb3scwJ7wVizLbl9Vh4Z23TAGeTvqyqRQkGoc9Q8HBfasaqja2jJ6uTkziJ12R+wUnsd1mDsH1cDoZ6HJfYRCMGJOpPqABL7Y7eZLgjNYV7AZJbFP791TDkg1DHYwtXdNMa/JeEkVxj0biZ6LoI9XAkkqiSNlOZFJ7etrkAwFJoshynkyGH6yJbBjvNZ0k25U6kETxrJy4eRPQaFqIYlaS0jq0Fz6i+HMJoE0UXTaxDRVd13RJFLPyY+oVxLdQS41FktIw5d6NNVBMS9ZHlqndKGNJzHrgLmSsmO81/YbqMk0ZS2LWEnfhxvRyrJjWRFeu1N8kEXfFPCkvp+qwn8mEG1tqlPfyxOrpCg6X1BhZW2Ep6tiYXl2pPVUZk4i4sYyJ3FMkEbcZgjaVoTLRdJNJbUXXJTGrcwU9C/iUnCmim+qV3MMNR1fkEW5zGR9JzGpcBYgyk0Rc2tLJxTQnOMh/+2D1ZGy3W0U3JTErbDQzMEnRTUMSz/PpgoptKD1sVHNoWJeaZhqmLk/yfqj8pvSyvM+j4zxzcF81LuWhYqkTU74cKoYk4rKW1kx9apiYw35wZcWtrxp4l2UY15L4M+s6XcGSWLryX1NVV/pSJ0vQsUZSQh4oBq21nSwzjbE8Ma61vBawM087Yz7R1VtMxN0DNzvsk06WrHiRdVanfZoFTT5tjmTjhjKltJ6u9JWxqcrDtNT0K0e6No4/zZD4ehxECQgRtFDitH4SIrREdozgGeb250c4WtmJs6jz7WNo/U9d7VtD9UaR6k4QoSBuPKt9qd78qdHgW8dgN+AJwsjzE0iCdRiiqG7fde7Bvju5b1wA+uIlsD1q1DTDwkUV59H3nU53Wd9/KDxDEoHgwhF31KhNL6djc2pphjWWR4rEpb+52kjWcXMsCHSBq9EhTmqt46i1DBx7Sab/x/UDcpJlLS1oKRWvu4HziKIa+hJi7UjDupU4/qlob5kFutKWK+EUw2RP8Tee69m18a3aV+WscGbW6zTfNNuCWNtZFpviSVMUxGxX3vVxb8cBkCO5k+Z5s50LkJ2SSqiO5IFiGddyJnm+wApdtceUB7m2t1uBfzrA+EUuErdyoubKc6IgDmZJ0wlWLfsxxv8K83Cdb8UVP+32aaL0Rn2Jc5IIorUPghBG3sZbojlyQRCiFQiCjxJhEcQJCMJnL1kIfgyh53ZbYRQ4LbHlx63Qw+BVsMZB9TVE0oPnu8dx5EitIExa83B97MaJ1Fr56Y8gTLzAj6UI417aaTsEWOzOFkocctWoX/e0S8OrSkEfJRLVLfRc+riBTOxuJnK+SAXostIQQ3E1PFn05N61YvVVXWpt7Kjl2M4CtWy8L3IW3gbFrRqeEuQxbksMOAqCBOPSDTXlVhmbeBIeDEhjyfgtg3nL/vc6Qq1R7mcZ/24qXxLkx1iaZm8dJ8HKcCIvTFpog/wkbtV6U32Ip/rJ1JRaySpsOetoaW1Q9BDEqBmsk1otQkn01Vm5ljezZra3XEeo3oCnGgAApnkolnjxAj7bXmLFS4RCie9cQOKtULBOJP7kAuKFN0vgX//aeSAsZkEEHng+8PUYfQIReMq0cQFuQCD4D2UHfPbA8U+/bjnM6yFC9iM8P8PvOdqbwR3wHgjoU84P7i8gWSA/B+E/yFkEoHxBzjpBLvzO8b/+zuGN+JT4ogSNULKOfBDzRbSMUQlBlAe+MEROnXnk0Q38dMcfHLstjO7HyyB4XIe5yVkzi4yZscmDxF5arOEj5ASRK/GnZGuc2FFC6BJfd+0EwetXcSPluvCWCJJojUpWz04HIeea2V8gIkptbF98yAFPOOsoQv6BUwtX1essEARG1kYDhDkCvqTdYWdyJsYx8VLaFiGcSe7xd2mGox653MvRQF18OA5y579oklSHPDS+S8wg+iNDxsgJfDfmSiFW5LXlB1ac2En8T0hwnN9/Nb3/UznLWGuOEiuxowd7ucytlNiR9ZKlUjix1DpaZumYupp/YnZvM4NzB0zHYHfMZ0cgJP+eEQg+7VtMx3D7k+bLnHXexmG9BGEWG8MN8OQ5KIR5BzzTaqDz7l9iiQ8W6w74X+AHCdpwXyUMSR07KTEqAZgM/FOeJa1v5i2L9kZWvjEF8MbQThYSf0q9fFbyMsvrD93Mgst+vrsDYQZ8dhrc3+eOrvYxy+ovOjlPzUpX5yJh5+KLAkJlp79ruWjT8tfL5T/F9QQwC6Ky119weOHkEwIN7Q1y6UxK5i9nGaxdwfO9RMDYuEkQBDuPUAjC1SccDBmfLQc8QWAnUke0v6dq5kyPflS0qyPGCy9Hxd9RNAkSj9MecC0sXsvlCgGL5ChkfveOmqO2rcVf4wStnAQHL+lh39eTIN44vo0b7Olf6kK5GODaaBX4+GYd2O63bKByA09F+RuaWX427uLruDhaEPxACO05ikAop9/HYB359hJvEtb5hj+VToXL4iQI/8/5Cwv9dzrru63qerH98G2F6h9lWCr3P9O2aYXBqnyfXf+qMUnCCamR/jkG2aAo9gLfmidZmCUoxpftOnk3OIOjV/Hv/hFw/K8cPAN963gLz7BAtguCD2KDA0kCjhe52rZWRK/i4xiQfdcoFfO9Mg9iuw1ncNIGPtVHV9I3voYpm1ND4n8p78tLnVgucvAOdt6N8KKQYpvLYF4rDFw+AAQf4Tlkx8x0jBPBCdZLF/wggQeUXq7Yq2HJE9S03gx+gIrbFogdrGnnjFEG+WmmiN90fIp24eFrweKwLKw3+mlKEncwpdqbMbIsvTgR1r6XxCAIs/USxyue5Z/p1IEnGbEZo2jjOYjbEbjcCyDTlBdxiB8yZhCGrDH3Kt83saFYyofqjVYbFPWCVWgzb6+y9+CyxNfTSQTPrQ6+W7vAvebwpC02StDLHNo5BL27wxNezntL0yFfudxydGovDXw4lZCbs2cYALs3fQN/hP/BeZil4C2khy+8+QLFyW2axhJfV68MKb+DpGdsuVx0njARZp0XROefyky3VdLnsbatucFnH5fTPnqYPM7N4IqdrSc3g/SbAE1u/Dv/iNHJl/qqrvRMTf+QFdrVo+tFIITAl8jpEL6OFy7wTyXKNq/ke1mHY+i83QY7TIQ5SiATmLLA4m2l9JmKtv0pPSgI8WRqhwl5C5Dto8q90DXKb0UuagDkqwTeImH7UQ1Kb4pxgDMZ/A2dxg0f5yAITuDPvDnWVLBx4gaRg8iii2YEl996sCLLwHmMyXJmDiGAfvg473a19GV6tyuxXIKlW1hM+Lr7Hrb2R42LKC1ekBa135Yu0qJJ7w/Y4Dt2oI+Ya21bm6OkN5nKkbPII8yOnIXE19fp2Ltq5ALdAf+EicfHW5KRNv5xfsrhA3Yo0Qqv799F0zxKybW9PkupKzejktrjxbI+Oj9lSywWpV6I3mAPrT5TPHBam6lxy2AeW0lgpa/28/PSSEvs+JFEZvFeLiWkaJyjY7v0OvLVybhRY4Ck1ZnsK0vu1RW8MpuvTsZcamUcCVnaZX2anuK7h7cS3Mc48K04iTx/LvF1+PgJzxLFKCQIdjQHzCNO7FUIQMpZJtKW24NqIYpsHL+qi6FUgAogrWpkhRObnZN9iGnHj9g6kB6LbVnBSMGWHKINWgJwqj8LohURwF7uY0coju05Sg/FbWmJEuR2gf/pAN+J5xJs+wDdrKIfPeUG6wKfPx+zxukCz/w6zszRBZ4+HefqYx708ZjRtgt88eM4U60LPH06zjXIkBPPPc7FzhZNz90eEdGZF+H8ExMXW3gH/NP+N7At/1SO4m0T76oVpYjD5YKDHyRioHKGsQWFGRgWeKSw4kcvtNJvx5YbeXg6LiZXXCu/kMeHwP0q8fXitRgI18CNUGK7dmJ3yXcVjoynYRR8+QrcTxxwiyQJu62WeP622Tk7bdL/t1Z0V8vz48T2HfSLHXoCnculTrsjCu2O0BZpzjGp9mdUJYoUumbjB8djlfCcgBMRwVHTCVbhOkHNxJ7HQy9O4BlWdliP0RI5Sb1Jqu0zuSzUOePRCwfhuk8MpmI1lkvuAjiPazQad+375sZerhG0WsDN7GWMuHwnMVSKPGK/h/CMjORa4aVc//8noP4I1kmI72V1LHBmLsyCWEXwgeNTSNkolD0l1Zgam9Zpjn/SDDrCZX+LYbdGx2s3gMT1Z0Clwm3x46ca2xU+foLPdpwBSKqXJd3rJ9mUkfE8AxHO23+SL/F0GtmOHSbrCFkPyHcWKzt6jDMT4oB+/aWWTydebM08315aMSIftNOZjfYTL1kiPLHlKy981cp7ACGSGlQgrruvRt1XRu4qjt89lwOJZFDJcSlP15vNUIR8B1meb9GvW1LFRzDy1dtKv4Xhe8ZnO3EWjQbr8O/kmMpWyXLmFWZBSzuMkWstgnVE+PCVJ7ROztvtRmNv28rz1wkiGw/sfEV2ts6rdjPiH9hMt9HLvbBhviFblAtwr9odt5v/hwO+pFTxkwpbLNBTarUsnX6odm/mX9bBRXy+luo8ibdGBaHshzy+qqClAKwC7OtOvQlQKwrCH8sPhHdaW9PACx4+IierTj5t3JRGSieXasiVSTtK4TpYSci2lTQErqxxBqrycIXqHBw91XlGxkYXnrhggyJczfFzIQTXhQOSHQOXCYFBJYGOgas4tgsVwmy32yM6KP7oJXhcQYBFweZmnAh2FNlf8S0piFxMDeitbIMA91SYRcEKwghtvGAdZzkcg+274EQIc6VrkHosJvcuZDuL/HVfve5J7Qvw/h//9GNx8t2v99sL8F5Lpw3m1V/WIGiMVkcBJdIweGJ4evdbbge1HxGlDa/FYstuMJSBnQJYGRBl9AlGk3hgpG1UBEG1mP+xKDjK/t5IZtnD6YVHwDK9SJ/0N8cCSy7CyNIC91LKHpXZwjM079jEuYfXEuwwzKKZXHSZSeQyt3qXK80/ZcHTuawHzVpqiY+fgGviY+7KyHsO+Kfi70xPFP3K6sumjEfpZBWSORlf3Veb4mf1BnKMs1gFLvx8dnYYlPa+A91xZy44EC0Vs0EtH7e3tdqP18pwouiGol39bwAAAP//pTja2T42AAA= diff --git a/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=true/line9.sh b/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=true/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=true/line9.sh +++ b/pkg/agent/testdata/AzureLinuxv2+DisableUnattendedUpgrades=true/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=false/CustomData b/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=false/CustomData index cbc8167e2d6..e60dab96385 100644 --- a/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=false/CustomData +++ b/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=false/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=false/line9.sh b/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=false/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=false/line9.sh +++ b/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=false/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=true/CustomData b/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=true/CustomData index cbc8167e2d6..e60dab96385 100644 --- a/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=true/CustomData +++ b/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=true/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=true/line9.sh b/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=true/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=true/line9.sh +++ b/pkg/agent/testdata/AzureLinuxv2+Kata+DisableUnattendedUpgrades=true/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/CustomizedImage/CustomData b/pkg/agent/testdata/CustomizedImage/CustomData index 2e3ad221df7..bafb2d41039 100644 --- a/pkg/agent/testdata/CustomizedImage/CustomData +++ b/pkg/agent/testdata/CustomizedImage/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/CustomizedImage/line9.sh b/pkg/agent/testdata/CustomizedImage/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/CustomizedImage/line9.sh +++ b/pkg/agent/testdata/CustomizedImage/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/CustomizedImageKata/CustomData b/pkg/agent/testdata/CustomizedImageKata/CustomData index 2e3ad221df7..bafb2d41039 100644 --- a/pkg/agent/testdata/CustomizedImageKata/CustomData +++ b/pkg/agent/testdata/CustomizedImageKata/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/CustomizedImageKata/line9.sh b/pkg/agent/testdata/CustomizedImageKata/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/CustomizedImageKata/line9.sh +++ b/pkg/agent/testdata/CustomizedImageKata/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/MarinerV2+CustomCloud/CustomData b/pkg/agent/testdata/MarinerV2+CustomCloud/CustomData index b2a94cbc6d4..86e6659b6d9 100644 --- a/pkg/agent/testdata/MarinerV2+CustomCloud/CustomData +++ b/pkg/agent/testdata/MarinerV2+CustomCloud/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/MarinerV2+CustomCloud/line9.sh b/pkg/agent/testdata/MarinerV2+CustomCloud/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/MarinerV2+CustomCloud/line9.sh +++ b/pkg/agent/testdata/MarinerV2+CustomCloud/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/MarinerV2+Kata/CustomData b/pkg/agent/testdata/MarinerV2+Kata/CustomData index c8fa6725c0a..c9648dab3f1 100644 --- a/pkg/agent/testdata/MarinerV2+Kata/CustomData +++ b/pkg/agent/testdata/MarinerV2+Kata/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/MarinerV2+Kata/line9.sh b/pkg/agent/testdata/MarinerV2+Kata/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/MarinerV2+Kata/line9.sh +++ b/pkg/agent/testdata/MarinerV2+Kata/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=false/CustomData b/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=false/CustomData index c8fa6725c0a..c9648dab3f1 100644 --- a/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=false/CustomData +++ b/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=false/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=false/line9.sh b/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=false/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=false/line9.sh +++ b/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=false/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=true/CustomData b/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=true/CustomData index c8fa6725c0a..c9648dab3f1 100644 --- a/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=true/CustomData +++ b/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=true/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - H4sIAAAAAAAA/9RZ+3Ob1pf/XX/FKcW11BohZMdN5CEtlrDMWBIsIKdZJ8tguJKoEVC4cpKvrf99514uL0t2k3an03WnLeI87jmf8wS+/068DSLx1s1WLdU0Heu9ZavToT1xLFsxbedC0SbyCVDacKLPR44202zH1qaqPrflVznlQpuozjvFHl6WlNOccqlPRs47ZaLN5r8pY3Vmyz/nBFOdqIql7mF4nTMohu1oM8tWJpNS6ZucNNKHV6q5Q+33GuSR/m420ZVRRZca9Cv1/R6efoOHGEH4SvJxg1zDqM9Amurn76nYRLMqnPoMqKnljI3xM0ef1jTs+MZgG+ozW9FmqjnaZWHAmfPZcJfIoLt6bRGGmTYbl7TjXkXbseqYgXY1P1dJWsx027nQ57ORfMyg0qbjPWLHldhEtetIHZ80ozgdO8a8Zurxqx1Xh/Y+vtNdPlMjNu6yPo8eTd2aUwzE4UzbdepEKqNomPrIGanne5j6u0zG1dhRRiNWTQyavNRqllDi6yIJRoapn6vsLouePrfPiZnEkVlOelULnmJojqWa16pZZ5D2MoxmljPR9au5wdj6e9mU/56b6i5zEV3FVvYn82mvxvG0ik6lGvFppp4yQ64vR0+Dc7qbGTsH/9yrVcEulZ08nFu2PnUsVTGHl85InyrazMp9e80UjI35rvzr4xrR1K5V06qn9uuTXfJT/16/qvGo19pQdYzJfKzNGopOKyZtdqE7pj51hrppzg1bHcmvWT5b49+ePedNb5endsIbqWqzI0WbVNF5U2vAc2Ok2GpFYnk4tFSS3NeapekzxxqammHTOJmqMqo0Sb1e7RDSD+fG2FRGao2jZoYxN8cs4aVevywSUtGmSsIgSz2G/1CzHMWytPHMMXXddox3siRJOzSaP4ZqTjWLWCpLElNrKLT3DHXjPWWSJamu2TAm7x1Dsax3ukmL7UIby5L0qlm45RDQWVlIUtGS8j60kz6S9HODQTdUU7EJhqpp6qYsSUX7sc09xDfQysGiRWnZyvDKGau2o5hTx9av1JksFTPwKctMtd/p5hXzZZ4rlqViJD5lt+bnM9V2DFO90H6TJTIVy6I8n2uTUWETGWw5KO8UwxmaKkmXHIxirNQp2syaX1xoQ02d0Yy4cixDGaqyRMYM5bbViWropl0rbdU0ZanocxW9SPicXDhi2tqFMiQDx1SVKRlzhR5ZKnrcHiamTJZIa8s3F9s2SJL/9t4ZKgS3a9W0ZalobKwyCEk1bUuWTsvtgpltqUMCqj2xnHNdty3bVIxyHqq/qcOi7svsOC0CPNKsc2WiOpphK+cT1ZIl0tbynmnOLZto2E2uormNNItIOZZ1KUs/10NnqsQSx1T/a66Z6kjuFwU602lJKGPVYr22X1SmNVMM61Ive0F95+kVyg1TuyZEMj3IsCMx6RfFSm7Wg9XvnRRJU26bU8W6YkoZbWiqI3Vma8okbzWjvStdj+Sfbsl8O4tTDEIKIsKe+KOQohC5GYJHWLqf7uBw7WJv1eZ7RyD+T1sbORPtSpXbXpyiOOs8aiO53f2x0+HFI3A78ABJGkQYcLxJEpS23Zv+R3Bvjj92zgB9DjBsDzst3XJIUyV19G2nMynn2w+FR8ApCD4ccoed1vx8PrPnjm45M2Wqylz+m2tNFZMMx4rAbnAttsTJ4iZLxTD23JBu/3ebW+ThsJU3tJxK7vuxd4fSFvqcEO/owLqWOf6hGm8FAgN5yzX4VMuunxLdB37gtmbX2khTisZZoNfvvu72BKn15LbUlY67kiAVUuXUJ7OdJEDJyR13T7u90oDilNxCbaqMVce6VArLyxt1o/fJ2Mq49PZ6K/APzyh+UYvMrb20uw68NM7iBe568Vp07zLyr7BMNqUo6fj5tM8LZTgdyZyHU0g3EQhCkgb3QYiWyAdBSNcgCBHCwirOMAjCpwCvhCiDJPAHYpLGniiJUSYmAWFexxuSVF8SJN8GkX+UpZ4sxgkWl8nmyM+wLK6j/Eec4CCOMjklfC9Juh5lrKSLGw0NpWssrjve5em1z8EIYZn5lgQ+u7yHwuxBYXJ5kxkwqFtDgeJaZLMYKsNL1Rlppizeu6noud4KiS6RS71VcI8ysUW2BGVGxlKNOY1jTPhygZZ6rc5ssgmPx3SwFPrCeCm6/9mkSJyWcVbI7676GaMoI9Z0h5sMx2vLS4MEi+geRTgTW8O5OSFbvTG3ZRGvE9HbpKFzj9LbOEPdeINbrRTh9Iu39p1g4SzcINykqN2BhxYAAKEFKJN56Qw+uQF2shChROb7Z4CDNYo3WOaPzyBbBQsMP/zw5IKqWMQpBBBEwLcz9AdIwDOlnTPwY8pC/pg64IsLjn/4dcsRXbcpcu/g8RE+lNzBAm6AD0BAf5T64OMZ4BWKSibyh7xVDOpn5G0w8uEDx//6gSOC5JTsrMGaIrxJI5DKmyjMUIODOg98BURJXQT00o+jXOJPjt1WoEdZGMd3m6SEvA6zVIOZQB5jN3TqwKfIi1Nf5k+oaIbdFFO6zLd9FyP46SDr5FpXQYgApxvUQL04HYRSa4G/QE2UewRfcsgzkfA2aYqiZ06tQtVu1xlBqNna6YCwRMA3vHs+mJxN+Gr50hBLEakk/+ibPCNZj3zu5WxgIX4+D8rgvwhJ7kOZGt9kZpz+GZAZ8uLIz7hGilV17USxk2EXZ/+GAif1/XfL+/+qZmtoLRF2sJveumFYooTd1HkJqZydIrVJw6Ic81DzDzXpbQE49wx0Nd4n8LkpCPg/C8pCTvsa6Gra/iJ8RbBOeyStQxAWmTW5B55ex5Uxb4GvjRrov/1BaughZt0A/wt8J0MPPu4zhpaOixuKGgy1CvxLkaWjbxGE1Xijd76yBIhg4uKVzJ+wKL9qRLmu60/DXGduxvnmBoQF8MVp8PFjGej9Ma6r+ptBLktzb6hLk0hwyYMCQs2gvxV9dC9GmzD8t4SeMizitBn1FwJeBfmYsibuPfLZTkr3Ly+MN74QRAEWCG/WpRyUd5miBISLP0gyFHq2HPCUgwSRBaL3LV2zVHr4vapfHNai8HJW/BNNk3KSdToATiTmiT5XGVgVR2Xz27cMjta2lX3JMFp7mCQvnWHfNpMgu/cilwzYk781hUozwHfROo7Ik3Xs+l8jwOwGnpnyDwyz8mwyxTdZdbQgRLGQuEuUgtAsv9/jTRq5IRESNqXAXyqnKmQZjpP/d/EiRv+TwfpmVP0gc2+/rlH9q4Bldv87sc07DHHl23D9u2DSghNykP49gNyjNAviyFniIs0wysjDdpu+G1zA4UH2IToEjv+Vg0dgbx2v4RFWyPVBiEDqcCDLwPES19q2quxVI5IDSuRbjWa+0+ZB6vXgFRz3gM/9MdX8ja9lK/bckvlfmnJlq5OaTQ7ewpN3I7wk5LzdMF62KoCbB4AQIbKHPIGZrXESePEm9CGKMdyi/OGq/mjYiASDNljAd7DnaQukPvG0/6rmDIrySpG+6vic24fbL5WK522pR2OUlyQNR61VB4uaLWGQYWETBTgDQVhsQpKvZJd/ZFsH2WSkbobS+8BD3BODm7MACk95iaT4c2DGSVIHc6fzfZUaxsv0ML/R+h6lw3iduLW3V8V7cEXm2/kmQvZWjzxb+8D9xJFNW+o0WM9L1v5zrDc3ZMMrdW9ZOZR3zrcc29obCx8pJeSX6msKoC6bv4E/JP+QOixK8Bryw1fBcoUyfJ2Xscy3tQtLLp9B8jO2XGk6T5UIi/4LpvMPTaXbfdaXubZt+fGniLTTEbo17pZ2fFHfrY2rcf5NgBU3+V1+xOiXt0aaqQ5t3XxfNNr1nR+kICTAN8j5Er7JVj7wDw3KtuzkO1VHcui01wM3wcISYSgMZiqIeVs5v2ambX/MD4oTspm6CaZvAQo55twLU6P5VuSsBUC/ShARmeDHPGi8KSYJXqvgr5g0fnK3BEHw4mgRLImngksKN049RG/6aEH5yqce4kgYe3cZvV3AIcQwSu6Wg4Gev0wfDOS6ljj0K8SEL0/fw7b+bHBRp6UzOqJ2x9JZ3jTZ8wMB/AkO7JJobW1bS4SHxlxJvVWZYW7qrWS+vcnX3nWnNOgG+AdCPDra0op0yY/TE44c8ISSrsn93WfRvI5ycmtnzjLq2i+otPcEmWJOT0/qLZaY0q5M79QP3X+m9MxpvVqPC+Nl5uDYyV/tl+flmYbd7I5mZvVeLifk3KRGZ27jdeTB8azTqjHSUWfXX1lyBxdwYHcPjmdcjjLJhKLsijnNTon850Up3+9ZHDkZToNoKfNt+P0PsktUq5AguOkSiI4Mu+sEgLazwqQtt8OqJyh1Sf5qPmFlBuxhZF2N3uGkbv94l8V2szuCDuTHEiz3KFIJkhN0j0IATosWcbqmBrjhLu8UZZm7RPmhZCyFCCN/APyPz+g1Ap/y9p6h2/vohw8lYAPgy+ujOjgD4Gu/jgo4BsCzq6PSfaKDXR7VvB0AX/04KlwbAM+ujkoPCk4j8I9Ks4ubduBvD6nptRfh/EMtL7bwFviH3W9gW/6hmcXbLpFqVa2II+2Cg+9kClCzwuoNpbYwrMhK4WR3QeLk344dPw3IdlxtrqRXfqaXt7H/Rebb1WsxEC6BmyLs+i52B/S7CkfX0ySNP38B7kcOuBXGyUAUpdM33f6rky77v7hmUmIQZdiNPPSLmwQC28vlfq8vCb2+0JNYzdVK7a+4Sh2pfC3WD44nLpE9gRQigsOuF6+TDUZd7C6zSZBheIS1m7QzFCIPt7u02z7Sh4U2Z90FyTjZjChgGnEjDLkz4AKu0+nc9D52791wg0AUgVu4YYa4UpIClXMe1r+H8DUb88cK+lXjk4u9FbCIeG6CNyna91ml+gZCC6CiXg4OpoMDq5OrjJO6xnJKv/C9puxuLyov+PxgsUApijzkBJHDvsXIu59s+Adp2+lUBqDQTTLkO6t4k1J+fq8m8fi01+t0dsTWQbTBiAo+I3lAJcXTfdI1M58RZmJkXufPiMI93KLIW63d9A64Q/6hvz0EAfIPc6QNgZorH8BBr+8Pyv9wwDd8rX4yH6ob7PBWsWw8HNPZTRKokfWVSfnTJUcrgT6D0sfyAfAZ/STuPEkSMsLLgfs1WnbFaX1VoijymaAa+RSHAfCN3KFnkoQXEHAfIr5E8UNESOXP7Ce5zVVU2gqeEKk5+wgo8rkOa3GfnIpYlFHt/POSOMgNKJdQjn+oJG9+/bjlyi00L1iyDQRctcmRu+TQ7y/ViaGalqpf/G8AAAD//50GzqT6LwAA + H4sIAAAAAAAA/9R6fXebxrb3//oUu5QcS42RhPzSRH5IiyUs81gSuoCc5rq+LAwjiVgCAkhJjq3vftcMAwwScpP2rK7edLVFs3+zZ7/vPZAff2g9eH7rwY4XNUXXLeODYSqjnjm0DFPWTetKVofSKRBab6hN+5Y6Vk3LVEeKNjWls5RypQ4V671s9q5zynlKudaGfeu9PFTH09/kgTI2pZ9Tgq4MFdlQKgBvUoA8MS11bJjycJgzfZuS+lrvRtH3qJ12idzX3o+Hmtwv6GKJfqN8qMB0ShgsBMbl5JMSmbFRhxpppF1+INuGqlHYqUMNNTKswWRw4OhzhsOebtRsPW1syupY0fv7EGo4fTru7ROp6W7eGBgwVseDnHbSLmh7Up1Qo91MLxUcFmPNtK606bgvnVBTqaNBxbaTYttQMVlLnZyWvTgaWJMpI+rJ2Z6qPbMKd76P01Us4z70sPVI6DJKUSP2xuq+Uqdi7sWJrvWtvnJZAersgyY3A0vu92k2UdOkqcZIQohvsiDoT3TtUqGr1Hva1LzEYmJFxinpjHGePFEtQ9FvFZ0FiJWA/tiwhpp2M51QWKcSJv/3VFf2wZl3ZVOuDubzNoPYzaJzkSHuRuo5FeT2ur/rnPP9yNg7+Oc2kwX7VHpyb2qY2sgyFFnvXVt9bSSrYyPV7Q1lMJhM9/e/OWGIunqr6AYb2m9O98m7+r05YzDKrdpTrMlwOlDHJUbnBUgdX2mWro2snqbr04mp9KU3NJ6NwW8Hz3nb3scwJ7wVizLbl9Vh4Z23TAGeTvqyqRQkGoc9Q8HBfasaqja2jJ6uTkziJ12R+wUnsd1mDsH1cDoZ6HJfYRCMGJOpPqABL7Y7eZLgjNYV7AZJbFP791TDkg1DHYwtXdNMa/JeEkVxj0biZ6LoI9XAkkqiSNlOZFJ7etrkAwFJoshynkyGH6yJbBjvNZ0k25U6kETxrJy4eRPQaFqIYlaS0jq0Fz6i+HMJoE0UXTaxDRVd13RJFLPyY+oVxLdQS41FktIw5d6NNVBMS9ZHlqndKGNJzHrgLmSsmO81/YbqMk0ZS2LWEnfhxvRyrJjWRFeu1N8kEXfFPCkvp+qwn8mEG1tqlPfyxOrpCg6X1BhZW2Ep6tiYXl2pPVUZk4i4sYyJ3FMkEbcZgjaVoTLRdJNJbUXXJTGrcwU9C/iUnCmim+qV3MMNR1fkEW5zGR9JzGpcBYgyk0Rc2tLJxTQnOMh/+2D1ZGy3W0U3JTErbDQzMEnRTUMSz/PpgoptKD1sVHNoWJeaZhqmLk/yfqj8pvSyvM+j4zxzcF81LuWhYqkTU74cKoYk4rKW1kx9apiYw35wZcWtrxp4l2UY15L4M+s6XcGSWLryX1NVV/pSJ0vQsUZSQh4oBq21nSwzjbE8Ma61vBawM087Yz7R1VtMxN0DNzvsk06WrHiRdVanfZoFTT5tjmTjhjKltJ6u9JWxqcrDtNT0K0e6No4/zZD4ehxECQgRtFDitH4SIrREdozgGeb250c4WtmJs6jz7WNo/U9d7VtD9UaR6k4QoSBuPKt9qd78qdHgW8dgN+AJwsjzE0iCdRiiqG7fde7Bvju5b1wA+uIlsD1q1DTDwkUV59H3nU53Wd9/KDxDEoHgwhF31KhNL6djc2pphjWWR4rEpb+52kjWcXMsCHSBq9EhTmqt46i1DBx7Sab/x/UDcpJlLS1oKRWvu4HziKIa+hJi7UjDupU4/qlob5kFutKWK+EUw2RP8Tee69m18a3aV+WscGbW6zTfNNuCWNtZFpviSVMUxGxX3vVxb8cBkCO5k+Z5s50LkJ2SSqiO5IFiGddyJnm+wApdtceUB7m2t1uBfzrA+EUuErdyoubKc6IgDmZJ0wlWLfsxxv8K83Cdb8UVP+32aaL0Rn2Jc5IIorUPghBG3sZbojlyQRCiFQiCjxJhEcQJCMJnL1kIfgyh53ZbYRQ4LbHlx63Qw+BVsMZB9TVE0oPnu8dx5EitIExa83B97MaJ1Fr56Y8gTLzAj6UI417aaTsEWOzOFkocctWoX/e0S8OrSkEfJRLVLfRc+riBTOxuJnK+SAXostIQQ3E1PFn05N61YvVVXWpt7Kjl2M4CtWy8L3IW3gbFrRqeEuQxbksMOAqCBOPSDTXlVhmbeBIeDEhjyfgtg3nL/vc6Qq1R7mcZ/24qXxLkx1iaZm8dJ8HKcCIvTFpog/wkbtV6U32Ip/rJ1JRaySpsOetoaW1Q9BDEqBmsk1otQkn01Vm5ljezZra3XEeo3oCnGgAApnkolnjxAj7bXmLFS4RCie9cQOKtULBOJP7kAuKFN0vgX//aeSAsZkEEHng+8PUYfQIReMq0cQFuQCD4D2UHfPbA8U+/bjnM6yFC9iM8P8PvOdqbwR3wHgjoU84P7i8gWSA/B+E/yFkEoHxBzjpBLvzO8b/+zuGN+JT4ogSNULKOfBDzRbSMUQlBlAe+MEROnXnk0Q38dMcfHLstjO7HyyB4XIe5yVkzi4yZscmDxF5arOEj5ASRK/GnZGuc2FFC6BJfd+0EwetXcSPluvCWCJJojUpWz04HIeea2V8gIkptbF98yAFPOOsoQv6BUwtX1essEARG1kYDhDkCvqTdYWdyJsYx8VLaFiGcSe7xd2mGox653MvRQF18OA5y579oklSHPDS+S8wg+iNDxsgJfDfmSiFW5LXlB1ac2En8T0hwnN9/Nb3/UznLWGuOEiuxowd7ucytlNiR9ZKlUjix1DpaZumYupp/YnZvM4NzB0zHYHfMZ0cgJP+eEQg+7VtMx3D7k+bLnHXexmG9BGEWG8MN8OQ5KIR5BzzTaqDz7l9iiQ8W6w74X+AHCdpwXyUMSR07KTEqAZgM/FOeJa1v5i2L9kZWvjEF8MbQThYSf0q9fFbyMsvrD93Mgst+vrsDYQZ8dhrc3+eOrvYxy+ovOjlPzUpX5yJh5+KLAkJlp79ruWjT8tfL5T/F9QQwC6Ky119weOHkEwIN7Q1y6UxK5i9nGaxdwfO9RMDYuEkQBDuPUAjC1SccDBmfLQc8QWAnUke0v6dq5kyPflS0qyPGCy9Hxd9RNAkSj9MecC0sXsvlCgGL5ChkfveOmqO2rcVf4wStnAQHL+lh39eTIN44vo0b7Olf6kK5GODaaBX4+GYd2O63bKByA09F+RuaWX427uLruDhaEPxACO05ikAop9/HYB359hJvEtb5hj+VToXL4iQI/8/5Cwv9dzrru63qerH98G2F6h9lWCr3P9O2aYXBqnyfXf+qMUnCCamR/jkG2aAo9gLfmidZmCUoxpftOnk3OIOjV/Hv/hFw/K8cPAN963gLz7BAtguCD2KDA0kCjhe52rZWRK/i4xiQfdcoFfO9Mg9iuw1ncNIGPtVHV9I3voYpm1ND4n8p78tLnVgucvAOdt6N8KKQYpvLYF4rDFw+AAQf4Tlkx8x0jBPBCdZLF/wggQeUXq7Yq2HJE9S03gx+gIrbFogdrGnnjFEG+WmmiN90fIp24eFrweKwLKw3+mlKEncwpdqbMbIsvTgR1r6XxCAIs/USxyue5Z/p1IEnGbEZo2jjOYjbEbjcCyDTlBdxiB8yZhCGrDH3Kt83saFYyofqjVYbFPWCVWgzb6+y9+CyxNfTSQTPrQ6+W7vAvebwpC02StDLHNo5BL27wxNezntL0yFfudxydGovDXw4lZCbs2cYALs3fQN/hP/BeZil4C2khy+8+QLFyW2axhJfV68MKb+DpGdsuVx0njARZp0XROefyky3VdLnsbatucFnH5fTPnqYPM7N4IqdrSc3g/SbAE1u/Dv/iNHJl/qqrvRMTf+QFdrVo+tFIITAl8jpEL6OFy7wTyXKNq/ke1mHY+i83QY7TIQ5SiATmLLA4m2l9JmKtv0pPSgI8WRqhwl5C5Dto8q90DXKb0UuagDkqwTeImH7UQ1Kb4pxgDMZ/A2dxg0f5yAITuDPvDnWVLBx4gaRg8iii2YEl996sCLLwHmMyXJmDiGAfvg473a19GV6tyuxXIKlW1hM+Lr7Hrb2R42LKC1ekBa135Yu0qJJ7w/Y4Dt2oI+Ya21bm6OkN5nKkbPII8yOnIXE19fp2Ltq5ALdAf+EicfHW5KRNv5xfsrhA3Yo0Qqv799F0zxKybW9PkupKzejktrjxbI+Oj9lSywWpV6I3mAPrT5TPHBam6lxy2AeW0lgpa/28/PSSEvs+JFEZvFeLiWkaJyjY7v0OvLVybhRY4Ck1ZnsK0vu1RW8MpuvTsZcamUcCVnaZX2anuK7h7cS3Mc48K04iTx/LvF1+PgJzxLFKCQIdjQHzCNO7FUIQMpZJtKW24NqIYpsHL+qi6FUgAogrWpkhRObnZN9iGnHj9g6kB6LbVnBSMGWHKINWgJwqj8LohURwF7uY0coju05Sg/FbWmJEuR2gf/pAN+J5xJs+wDdrKIfPeUG6wKfPx+zxukCz/w6zszRBZ4+HefqYx708ZjRtgt88eM4U60LPH06zjXIkBPPPc7FzhZNz90eEdGZF+H8ExMXW3gH/NP+N7At/1SO4m0T76oVpYjD5YKDHyRioHKGsQWFGRgWeKSw4kcvtNJvx5YbeXg6LiZXXCu/kMeHwP0q8fXitRgI18CNUGK7dmJ3yXcVjoynYRR8+QrcTxxwiyQJu62WeP622Tk7bdL/t1Z0V8vz48T2HfSLHXoCnculTrsjCu2O0BZpzjGp9mdUJYoUumbjB8djlfCcgBMRwVHTCVbhOkHNxJ7HQy9O4BlWdliP0RI5Sb1Jqu0zuSzUOePRCwfhuk8MpmI1lkvuAjiPazQad+375sZerhG0WsDN7GWMuHwnMVSKPGK/h/CMjORa4aVc//8noP4I1kmI72V1LHBmLsyCWEXwgeNTSNkolD0l1Zgam9Zpjn/SDDrCZX+LYbdGx2s3gMT1Z0Clwm3x46ca2xU+foLPdpwBSKqXJd3rJ9mUkfE8AxHO23+SL/F0GtmOHSbrCFkPyHcWKzt6jDMT4oB+/aWWTydebM08315aMSIftNOZjfYTL1kiPLHlKy981cp7ACGSGlQgrruvRt1XRu4qjt89lwOJZFDJcSlP15vNUIR8B1meb9GvW1LFRzDy1dtKv4Xhe8ZnO3EWjQbr8O/kmMpWyXLmFWZBSzuMkWstgnVE+PCVJ7ROztvtRmNv28rz1wkiGw/sfEV2ts6rdjPiH9hMt9HLvbBhviFblAtwr9odt5v/hwO+pFTxkwpbLNBTarUsnX6odm/mX9bBRXy+luo8ibdGBaHshzy+qqClAKwC7OtOvQlQKwrCH8sPhHdaW9PACx4+IierTj5t3JRGSieXasiVSTtK4TpYSci2lTQErqxxBqrycIXqHBw91XlGxkYXnrhggyJczfFzIQTXhQOSHQOXCYFBJYGOgas4tgsVwmy32yM6KP7oJXhcQYBFweZmnAh2FNlf8S0piFxMDeitbIMA91SYRcEKwghtvGAdZzkcg+274EQIc6VrkHosJvcuZDuL/HVfve5J7Qvw/h//9GNx8t2v99sL8F5Lpw3m1V/WIGiMVkcBJdIweGJ4evdbbge1HxGlDa/FYstuMJSBnQJYGRBl9AlGk3hgpG1UBEG1mP+xKDjK/t5IZtnD6YVHwDK9SJ/0N8cCSy7CyNIC91LKHpXZwjM079jEuYfXEuwwzKKZXHSZSeQyt3qXK80/ZcHTuawHzVpqiY+fgGviY+7KyHsO+Kfi70xPFP3K6sumjEfpZBWSORlf3Veb4mf1BnKMs1gFLvx8dnYYlPa+A91xZy44EC0Vs0EtH7e3tdqP18pwouiGol39bwAAAP//pTja2T42AAA= diff --git a/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=true/line9.sh b/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=true/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=true/line9.sh +++ b/pkg/agent/testdata/Marinerv2+DisableUnattendedUpgrades=true/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=false/CustomData b/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=false/CustomData index c8fa6725c0a..c9648dab3f1 100644 --- a/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=false/CustomData +++ b/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=false/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=false/line9.sh b/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=false/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=false/line9.sh +++ b/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=false/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=true/CustomData b/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=true/CustomData index c8fa6725c0a..c9648dab3f1 100644 --- a/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=true/CustomData +++ b/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=true/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=true/line9.sh b/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=true/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=true/line9.sh +++ b/pkg/agent/testdata/Marinerv2+Kata+DisableUnattendedUpgrades=true/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/RawUbuntu/CustomData b/pkg/agent/testdata/RawUbuntu/CustomData index 845b42384ae..d6a5e52d282 100644 --- a/pkg/agent/testdata/RawUbuntu/CustomData +++ b/pkg/agent/testdata/RawUbuntu/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - H4sIAAAAAAAA/9RZ+3Ob1pf/XX/FKcW11BohZMdN5CEtlrDMWBIsIKdZJ8tguJKoEVC4cpKvrf99514uL0t2k3an03WnLeI87jmf8wS+/068DSLx1s1WLdU0Heu9ZavToT1xLFsxbedC0SbyCVDacKLPR44202zH1qaqPrflVznlQpuozjvFHl6WlNOccqlPRs47ZaLN5r8pY3Vmyz/nBFOdqIql7mF4nTMohu1oM8tWJpNS6ZucNNKHV6q5Q+33GuSR/m420ZVRRZca9Cv1/R6efoOHGEH4SvJxg1zDqM9Amurn76nYRLMqnPoMqKnljI3xM0ef1jTs+MZgG+ozW9FmqjnaZWHAmfPZcJfIoLt6bRGGmTYbl7TjXkXbseqYgXY1P1dJWsx027nQ57ORfMyg0qbjPWLHldhEtetIHZ80ozgdO8a8Zurxqx1Xh/Y+vtNdPlMjNu6yPo8eTd2aUwzE4UzbdepEKqNomPrIGanne5j6u0zG1dhRRiNWTQyavNRqllDi6yIJRoapn6vsLouePrfPiZnEkVlOelULnmJojqWa16pZZ5D2MoxmljPR9au5wdj6e9mU/56b6i5zEV3FVvYn82mvxvG0ik6lGvFppp4yQ64vR0+Dc7qbGTsH/9yrVcEulZ08nFu2PnUsVTGHl85InyrazMp9e80UjI35rvzr4xrR1K5V06qn9uuTXfJT/16/qvGo19pQdYzJfKzNGopOKyZtdqE7pj51hrppzg1bHcmvWT5b49+ePedNb5endsIbqWqzI0WbVNF5U2vAc2Ok2GpFYnk4tFSS3NeapekzxxqammHTOJmqMqo0Sb1e7RDSD+fG2FRGao2jZoYxN8cs4aVevywSUtGmSsIgSz2G/1CzHMWytPHMMXXddox3siRJOzSaP4ZqTjWLWCpLElNrKLT3DHXjPWWSJamu2TAm7x1Dsax3ukmL7UIby5L0qlm45RDQWVlIUtGS8j60kz6S9HODQTdUU7EJhqpp6qYsSUX7sc09xDfQysGiRWnZyvDKGau2o5hTx9av1JksFTPwKctMtd/p5hXzZZ4rlqViJD5lt+bnM9V2DFO90H6TJTIVy6I8n2uTUWETGWw5KO8UwxmaKkmXHIxirNQp2syaX1xoQ02d0Yy4cixDGaqyRMYM5bbViWropl0rbdU0ZanocxW9SPicXDhi2tqFMiQDx1SVKRlzhR5ZKnrcHiamTJZIa8s3F9s2SJL/9t4ZKgS3a9W0ZalobKwyCEk1bUuWTsvtgpltqUMCqj2xnHNdty3bVIxyHqq/qcOi7svsOC0CPNKsc2WiOpphK+cT1ZIl0tbynmnOLZto2E2uormNNItIOZZ1KUs/10NnqsQSx1T/a66Z6kjuFwU602lJKGPVYr22X1SmNVMM61Ive0F95+kVyg1TuyZEMj3IsCMx6RfFSm7Wg9XvnRRJU26bU8W6YkoZbWiqI3Vma8okbzWjvStdj+Sfbsl8O4tTDEIKIsKe+KOQohC5GYJHWLqf7uBw7WJv1eZ7RyD+T1sbORPtSpXbXpyiOOs8aiO53f2x0+HFI3A78ABJGkQYcLxJEpS23Zv+R3Bvjj92zgB9DjBsDzst3XJIUyV19G2nMynn2w+FR8ApCD4ccoed1vx8PrPnjm45M2Wqylz+m2tNFZMMx4rAbnAttsTJ4iZLxTD23JBu/3ebW+ThsJU3tJxK7vuxd4fSFvqcEO/owLqWOf6hGm8FAgN5yzX4VMuunxLdB37gtmbX2khTisZZoNfvvu72BKn15LbUlY67kiAVUuXUJ7OdJEDJyR13T7u90oDilNxCbaqMVce6VArLyxt1o/fJ2Mq49PZ6K/APzyh+UYvMrb20uw68NM7iBe568Vp07zLyr7BMNqUo6fj5tM8LZTgdyZyHU0g3EQhCkgb3QYiWyAdBSNcgCBHCwirOMAjCpwCvhCiDJPAHYpLGniiJUSYmAWFexxuSVF8SJN8GkX+UpZ4sxgkWl8nmyM+wLK6j/Eec4CCOMjklfC9Juh5lrKSLGw0NpWssrjve5em1z8EIYZn5lgQ+u7yHwuxBYXJ5kxkwqFtDgeJaZLMYKsNL1Rlppizeu6noud4KiS6RS71VcI8ysUW2BGVGxlKNOY1jTPhygZZ6rc5ssgmPx3SwFPrCeCm6/9mkSJyWcVbI7676GaMoI9Z0h5sMx2vLS4MEi+geRTgTW8O5OSFbvTG3ZRGvE9HbpKFzj9LbOEPdeINbrRTh9Iu39p1g4SzcINykqN2BhxYAAKEFKJN56Qw+uQF2shChROb7Z4CDNYo3WOaPzyBbBQsMP/zw5IKqWMQpBBBEwLcz9AdIwDOlnTPwY8pC/pg64IsLjn/4dcsRXbcpcu/g8RE+lNzBAm6AD0BAf5T64OMZ4BWKSibyh7xVDOpn5G0w8uEDx//6gSOC5JTsrMGaIrxJI5DKmyjMUIODOg98BURJXQT00o+jXOJPjt1WoEdZGMd3m6SEvA6zVIOZQB5jN3TqwKfIi1Nf5k+oaIbdFFO6zLd9FyP46SDr5FpXQYgApxvUQL04HYRSa4G/QE2UewRfcsgzkfA2aYqiZ06tQtVu1xlBqNna6YCwRMA3vHs+mJxN+Gr50hBLEakk/+ibPCNZj3zu5WxgIX4+D8rgvwhJ7kOZGt9kZpz+GZAZ8uLIz7hGilV17USxk2EXZ/+GAif1/XfL+/+qZmtoLRF2sJveumFYooTd1HkJqZydIrVJw6Ic81DzDzXpbQE49wx0Nd4n8LkpCPg/C8pCTvsa6Gra/iJ8RbBOeyStQxAWmTW5B55ex5Uxb4GvjRrov/1BaughZt0A/wt8J0MPPu4zhpaOixuKGgy1CvxLkaWjbxGE1Xijd76yBIhg4uKVzJ+wKL9qRLmu60/DXGduxvnmBoQF8MVp8PFjGej9Ma6r+ptBLktzb6hLk0hwyYMCQs2gvxV9dC9GmzD8t4SeMizitBn1FwJeBfmYsibuPfLZTkr3Ly+MN74QRAEWCG/WpRyUd5miBISLP0gyFHq2HPCUgwSRBaL3LV2zVHr4vapfHNai8HJW/BNNk3KSdToATiTmiT5XGVgVR2Xz27cMjta2lX3JMFp7mCQvnWHfNpMgu/cilwzYk781hUozwHfROo7Ik3Xs+l8jwOwGnpnyDwyz8mwyxTdZdbQgRLGQuEuUgtAsv9/jTRq5IRESNqXAXyqnKmQZjpP/d/EiRv+TwfpmVP0gc2+/rlH9q4Bldv87sc07DHHl23D9u2DSghNykP49gNyjNAviyFniIs0wysjDdpu+G1zA4UH2IToEjv+Vg0dgbx2v4RFWyPVBiEDqcCDLwPES19q2quxVI5IDSuRbjWa+0+ZB6vXgFRz3gM/9MdX8ja9lK/bckvlfmnJlq5OaTQ7ewpN3I7wk5LzdMF62KoCbB4AQIbKHPIGZrXESePEm9CGKMdyi/OGq/mjYiASDNljAd7DnaQukPvG0/6rmDIrySpG+6vic24fbL5WK522pR2OUlyQNR61VB4uaLWGQYWETBTgDQVhsQpKvZJd/ZFsH2WSkbobS+8BD3BODm7MACk95iaT4c2DGSVIHc6fzfZUaxsv0ML/R+h6lw3iduLW3V8V7cEXm2/kmQvZWjzxb+8D9xJFNW+o0WM9L1v5zrDc3ZMMrdW9ZOZR3zrcc29obCx8pJeSX6msKoC6bv4E/JP+QOixK8Bryw1fBcoUyfJ2Xscy3tQtLLp9B8jO2XGk6T5UIi/4LpvMPTaXbfdaXubZt+fGniLTTEbo17pZ2fFHfrY2rcf5NgBU3+V1+xOiXt0aaqQ5t3XxfNNr1nR+kICTAN8j5Er7JVj7wDw3KtuzkO1VHcui01wM3wcISYSgMZiqIeVs5v2ambX/MD4oTspm6CaZvAQo55twLU6P5VuSsBUC/ShARmeDHPGi8KSYJXqvgr5g0fnK3BEHw4mgRLImngksKN049RG/6aEH5yqce4kgYe3cZvV3AIcQwSu6Wg4Gev0wfDOS6ljj0K8SEL0/fw7b+bHBRp6UzOqJ2x9JZ3jTZ8wMB/AkO7JJobW1bS4SHxlxJvVWZYW7qrWS+vcnX3nWnNOgG+AdCPDra0op0yY/TE44c8ISSrsn93WfRvI5ycmtnzjLq2i+otPcEmWJOT0/qLZaY0q5M79QP3X+m9MxpvVqPC+Nl5uDYyV/tl+flmYbd7I5mZvVeLifk3KRGZ27jdeTB8azTqjHSUWfXX1lyBxdwYHcPjmdcjjLJhKLsijnNTon850Up3+9ZHDkZToNoKfNt+P0PsktUq5AguOkSiI4Mu+sEgLazwqQtt8OqJyh1Sf5qPmFlBuxhZF2N3uGkbv94l8V2szuCDuTHEiz3KFIJkhN0j0IATosWcbqmBrjhLu8UZZm7RPmhZCyFCCN/APyPz+g1Ap/y9p6h2/vohw8lYAPgy+ujOjgD4Gu/jgo4BsCzq6PSfaKDXR7VvB0AX/04KlwbAM+ujkoPCk4j8I9Ks4ubduBvD6nptRfh/EMtL7bwFviH3W9gW/6hmcXbLpFqVa2II+2Cg+9kClCzwuoNpbYwrMhK4WR3QeLk344dPw3IdlxtrqRXfqaXt7H/Rebb1WsxEC6BmyLs+i52B/S7CkfX0ySNP38B7kcOuBXGyUAUpdM33f6rky77v7hmUmIQZdiNPPSLmwQC28vlfq8vCb2+0JNYzdVK7a+4Sh2pfC3WD44nLpE9gRQigsOuF6+TDUZd7C6zSZBheIS1m7QzFCIPt7u02z7Sh4U2Z90FyTjZjChgGnEjDLkz4AKu0+nc9D52791wg0AUgVu4YYa4UpIClXMe1r+H8DUb88cK+lXjk4u9FbCIeG6CNyna91ml+gZCC6CiXg4OpoMDq5OrjJO6xnJKv/C9puxuLyov+PxgsUApijzkBJHDvsXIu59s+Adp2+lUBqDQTTLkO6t4k1J+fq8m8fi01+t0dsTWQbTBiAo+I3lAJcXTfdI1M58RZmJkXufPiMI93KLIW63d9A64Q/6hvz0EAfIPc6QNgZorH8BBr+8Pyv9wwDd8rX4yH6ob7PBWsWw8HNPZTRKokfWVSfnTJUcrgT6D0sfyAfAZ/STuPEkSMsLLgfs1WnbFaX1VoijymaAa+RSHAfCN3KFnkoQXEHAfIr5E8UNESOXP7Ce5zVVU2gqeEKk5+wgo8rkOa3GfnIpYlFHt/POSOMgNKJdQjn+oJG9+/bjlyi00L1iyDQRctcmRu+TQ7y/ViaGalqpf/G8AAAD//50GzqT6LwAA + H4sIAAAAAAAA/9R6fXebxrb3//oUu5QcS42RhPzSRH5IiyUs81gSuoCc5rq+LAwjiVgCAkhJjq3vftcMAwwScpP2rK7edLVFs3+zZ7/vPZAff2g9eH7rwY4XNUXXLeODYSqjnjm0DFPWTetKVofSKRBab6hN+5Y6Vk3LVEeKNjWls5RypQ4V671s9q5zynlKudaGfeu9PFTH09/kgTI2pZ9Tgq4MFdlQKgBvUoA8MS11bJjycJgzfZuS+lrvRtH3qJ12idzX3o+Hmtwv6GKJfqN8qMB0ShgsBMbl5JMSmbFRhxpppF1+INuGqlHYqUMNNTKswWRw4OhzhsOebtRsPW1syupY0fv7EGo4fTru7ROp6W7eGBgwVseDnHbSLmh7Up1Qo91MLxUcFmPNtK606bgvnVBTqaNBxbaTYttQMVlLnZyWvTgaWJMpI+rJ2Z6qPbMKd76P01Us4z70sPVI6DJKUSP2xuq+Uqdi7sWJrvWtvnJZAersgyY3A0vu92k2UdOkqcZIQohvsiDoT3TtUqGr1Hva1LzEYmJFxinpjHGePFEtQ9FvFZ0FiJWA/tiwhpp2M51QWKcSJv/3VFf2wZl3ZVOuDubzNoPYzaJzkSHuRuo5FeT2ur/rnPP9yNg7+Oc2kwX7VHpyb2qY2sgyFFnvXVt9bSSrYyPV7Q1lMJhM9/e/OWGIunqr6AYb2m9O98m7+r05YzDKrdpTrMlwOlDHJUbnBUgdX2mWro2snqbr04mp9KU3NJ6NwW8Hz3nb3scwJ7wVizLbl9Vh4Z23TAGeTvqyqRQkGoc9Q8HBfasaqja2jJ6uTkziJ12R+wUnsd1mDsH1cDoZ6HJfYRCMGJOpPqABL7Y7eZLgjNYV7AZJbFP791TDkg1DHYwtXdNMa/JeEkVxj0biZ6LoI9XAkkqiSNlOZFJ7etrkAwFJoshynkyGH6yJbBjvNZ0k25U6kETxrJy4eRPQaFqIYlaS0jq0Fz6i+HMJoE0UXTaxDRVd13RJFLPyY+oVxLdQS41FktIw5d6NNVBMS9ZHlqndKGNJzHrgLmSsmO81/YbqMk0ZS2LWEnfhxvRyrJjWRFeu1N8kEXfFPCkvp+qwn8mEG1tqlPfyxOrpCg6X1BhZW2Ep6tiYXl2pPVUZk4i4sYyJ3FMkEbcZgjaVoTLRdJNJbUXXJTGrcwU9C/iUnCmim+qV3MMNR1fkEW5zGR9JzGpcBYgyk0Rc2tLJxTQnOMh/+2D1ZGy3W0U3JTErbDQzMEnRTUMSz/PpgoptKD1sVHNoWJeaZhqmLk/yfqj8pvSyvM+j4zxzcF81LuWhYqkTU74cKoYk4rKW1kx9apiYw35wZcWtrxp4l2UY15L4M+s6XcGSWLryX1NVV/pSJ0vQsUZSQh4oBq21nSwzjbE8Ma61vBawM087Yz7R1VtMxN0DNzvsk06WrHiRdVanfZoFTT5tjmTjhjKltJ6u9JWxqcrDtNT0K0e6No4/zZD4ehxECQgRtFDitH4SIrREdozgGeb250c4WtmJs6jz7WNo/U9d7VtD9UaR6k4QoSBuPKt9qd78qdHgW8dgN+AJwsjzE0iCdRiiqG7fde7Bvju5b1wA+uIlsD1q1DTDwkUV59H3nU53Wd9/KDxDEoHgwhF31KhNL6djc2pphjWWR4rEpb+52kjWcXMsCHSBq9EhTmqt46i1DBx7Sab/x/UDcpJlLS1oKRWvu4HziKIa+hJi7UjDupU4/qlob5kFutKWK+EUw2RP8Tee69m18a3aV+WscGbW6zTfNNuCWNtZFpviSVMUxGxX3vVxb8cBkCO5k+Z5s50LkJ2SSqiO5IFiGddyJnm+wApdtceUB7m2t1uBfzrA+EUuErdyoubKc6IgDmZJ0wlWLfsxxv8K83Cdb8UVP+32aaL0Rn2Jc5IIorUPghBG3sZbojlyQRCiFQiCjxJhEcQJCMJnL1kIfgyh53ZbYRQ4LbHlx63Qw+BVsMZB9TVE0oPnu8dx5EitIExa83B97MaJ1Fr56Y8gTLzAj6UI417aaTsEWOzOFkocctWoX/e0S8OrSkEfJRLVLfRc+riBTOxuJnK+SAXostIQQ3E1PFn05N61YvVVXWpt7Kjl2M4CtWy8L3IW3gbFrRqeEuQxbksMOAqCBOPSDTXlVhmbeBIeDEhjyfgtg3nL/vc6Qq1R7mcZ/24qXxLkx1iaZm8dJ8HKcCIvTFpog/wkbtV6U32Ip/rJ1JRaySpsOetoaW1Q9BDEqBmsk1otQkn01Vm5ljezZra3XEeo3oCnGgAApnkolnjxAj7bXmLFS4RCie9cQOKtULBOJP7kAuKFN0vgX//aeSAsZkEEHng+8PUYfQIReMq0cQFuQCD4D2UHfPbA8U+/bjnM6yFC9iM8P8PvOdqbwR3wHgjoU84P7i8gWSA/B+E/yFkEoHxBzjpBLvzO8b/+zuGN+JT4ogSNULKOfBDzRbSMUQlBlAe+MEROnXnk0Q38dMcfHLstjO7HyyB4XIe5yVkzi4yZscmDxF5arOEj5ASRK/GnZGuc2FFC6BJfd+0EwetXcSPluvCWCJJojUpWz04HIeea2V8gIkptbF98yAFPOOsoQv6BUwtX1essEARG1kYDhDkCvqTdYWdyJsYx8VLaFiGcSe7xd2mGox653MvRQF18OA5y579oklSHPDS+S8wg+iNDxsgJfDfmSiFW5LXlB1ac2En8T0hwnN9/Nb3/UznLWGuOEiuxowd7ucytlNiR9ZKlUjix1DpaZumYupp/YnZvM4NzB0zHYHfMZ0cgJP+eEQg+7VtMx3D7k+bLnHXexmG9BGEWG8MN8OQ5KIR5BzzTaqDz7l9iiQ8W6w74X+AHCdpwXyUMSR07KTEqAZgM/FOeJa1v5i2L9kZWvjEF8MbQThYSf0q9fFbyMsvrD93Mgst+vrsDYQZ8dhrc3+eOrvYxy+ovOjlPzUpX5yJh5+KLAkJlp79ruWjT8tfL5T/F9QQwC6Ky119weOHkEwIN7Q1y6UxK5i9nGaxdwfO9RMDYuEkQBDuPUAjC1SccDBmfLQc8QWAnUke0v6dq5kyPflS0qyPGCy9Hxd9RNAkSj9MecC0sXsvlCgGL5ChkfveOmqO2rcVf4wStnAQHL+lh39eTIN44vo0b7Olf6kK5GODaaBX4+GYd2O63bKByA09F+RuaWX427uLruDhaEPxACO05ikAop9/HYB359hJvEtb5hj+VToXL4iQI/8/5Cwv9dzrru63qerH98G2F6h9lWCr3P9O2aYXBqnyfXf+qMUnCCamR/jkG2aAo9gLfmidZmCUoxpftOnk3OIOjV/Hv/hFw/K8cPAN963gLz7BAtguCD2KDA0kCjhe52rZWRK/i4xiQfdcoFfO9Mg9iuw1ncNIGPtVHV9I3voYpm1ND4n8p78tLnVgucvAOdt6N8KKQYpvLYF4rDFw+AAQf4Tlkx8x0jBPBCdZLF/wggQeUXq7Yq2HJE9S03gx+gIrbFogdrGnnjFEG+WmmiN90fIp24eFrweKwLKw3+mlKEncwpdqbMbIsvTgR1r6XxCAIs/USxyue5Z/p1IEnGbEZo2jjOYjbEbjcCyDTlBdxiB8yZhCGrDH3Kt83saFYyofqjVYbFPWCVWgzb6+y9+CyxNfTSQTPrQ6+W7vAvebwpC02StDLHNo5BL27wxNezntL0yFfudxydGovDXw4lZCbs2cYALs3fQN/hP/BeZil4C2khy+8+QLFyW2axhJfV68MKb+DpGdsuVx0njARZp0XROefyky3VdLnsbatucFnH5fTPnqYPM7N4IqdrSc3g/SbAE1u/Dv/iNHJl/qqrvRMTf+QFdrVo+tFIITAl8jpEL6OFy7wTyXKNq/ke1mHY+i83QY7TIQ5SiATmLLA4m2l9JmKtv0pPSgI8WRqhwl5C5Dto8q90DXKb0UuagDkqwTeImH7UQ1Kb4pxgDMZ/A2dxg0f5yAITuDPvDnWVLBx4gaRg8iii2YEl996sCLLwHmMyXJmDiGAfvg473a19GV6tyuxXIKlW1hM+Lr7Hrb2R42LKC1ekBa135Yu0qJJ7w/Y4Dt2oI+Ya21bm6OkN5nKkbPII8yOnIXE19fp2Ltq5ALdAf+EicfHW5KRNv5xfsrhA3Yo0Qqv799F0zxKybW9PkupKzejktrjxbI+Oj9lSywWpV6I3mAPrT5TPHBam6lxy2AeW0lgpa/28/PSSEvs+JFEZvFeLiWkaJyjY7v0OvLVybhRY4Ck1ZnsK0vu1RW8MpuvTsZcamUcCVnaZX2anuK7h7cS3Mc48K04iTx/LvF1+PgJzxLFKCQIdjQHzCNO7FUIQMpZJtKW24NqIYpsHL+qi6FUgAogrWpkhRObnZN9iGnHj9g6kB6LbVnBSMGWHKINWgJwqj8LohURwF7uY0coju05Sg/FbWmJEuR2gf/pAN+J5xJs+wDdrKIfPeUG6wKfPx+zxukCz/w6zszRBZ4+HefqYx708ZjRtgt88eM4U60LPH06zjXIkBPPPc7FzhZNz90eEdGZF+H8ExMXW3gH/NP+N7At/1SO4m0T76oVpYjD5YKDHyRioHKGsQWFGRgWeKSw4kcvtNJvx5YbeXg6LiZXXCu/kMeHwP0q8fXitRgI18CNUGK7dmJ3yXcVjoynYRR8+QrcTxxwiyQJu62WeP622Tk7bdL/t1Z0V8vz48T2HfSLHXoCnculTrsjCu2O0BZpzjGp9mdUJYoUumbjB8djlfCcgBMRwVHTCVbhOkHNxJ7HQy9O4BlWdliP0RI5Sb1Jqu0zuSzUOePRCwfhuk8MpmI1lkvuAjiPazQad+375sZerhG0WsDN7GWMuHwnMVSKPGK/h/CMjORa4aVc//8noP4I1kmI72V1LHBmLsyCWEXwgeNTSNkolD0l1Zgam9Zpjn/SDDrCZX+LYbdGx2s3gMT1Z0Clwm3x46ca2xU+foLPdpwBSKqXJd3rJ9mUkfE8AxHO23+SL/F0GtmOHSbrCFkPyHcWKzt6jDMT4oB+/aWWTydebM08315aMSIftNOZjfYTL1kiPLHlKy981cp7ACGSGlQgrruvRt1XRu4qjt89lwOJZFDJcSlP15vNUIR8B1meb9GvW1LFRzDy1dtKv4Xhe8ZnO3EWjQbr8O/kmMpWyXLmFWZBSzuMkWstgnVE+PCVJ7ROztvtRmNv28rz1wkiGw/sfEV2ts6rdjPiH9hMt9HLvbBhviFblAtwr9odt5v/hwO+pFTxkwpbLNBTarUsnX6odm/mX9bBRXy+luo8ibdGBaHshzy+qqClAKwC7OtOvQlQKwrCH8sPhHdaW9PACx4+IierTj5t3JRGSieXasiVSTtK4TpYSci2lTQErqxxBqrycIXqHBw91XlGxkYXnrhggyJczfFzIQTXhQOSHQOXCYFBJYGOgas4tgsVwmy32yM6KP7oJXhcQYBFweZmnAh2FNlf8S0piFxMDeitbIMA91SYRcEKwghtvGAdZzkcg+274EQIc6VrkHosJvcuZDuL/HVfve5J7Qvw/h//9GNx8t2v99sL8F5Lpw3m1V/WIGiMVkcBJdIweGJ4evdbbge1HxGlDa/FYstuMJSBnQJYGRBl9AlGk3hgpG1UBEG1mP+xKDjK/t5IZtnD6YVHwDK9SJ/0N8cCSy7CyNIC91LKHpXZwjM079jEuYfXEuwwzKKZXHSZSeQyt3qXK80/ZcHTuawHzVpqiY+fgGviY+7KyHsO+Kfi70xPFP3K6sumjEfpZBWSORlf3Veb4mf1BnKMs1gFLvx8dnYYlPa+A91xZy44EC0Vs0EtH7e3tdqP18pwouiGol39bwAAAP//pTja2T42AAA= diff --git a/pkg/agent/testdata/RawUbuntu/line9.sh b/pkg/agent/testdata/RawUbuntu/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/RawUbuntu/line9.sh +++ b/pkg/agent/testdata/RawUbuntu/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/agent/testdata/RawUbuntuContainerd/CustomData b/pkg/agent/testdata/RawUbuntuContainerd/CustomData index efefde2a283..e371996a50c 100644 --- a/pkg/agent/testdata/RawUbuntuContainerd/CustomData +++ b/pkg/agent/testdata/RawUbuntuContainerd/CustomData @@ -6,7 +6,7 @@ write_files: encoding: gzip owner: root content: !!binary | - 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 diff --git a/pkg/agent/testdata/RawUbuntuContainerd/line9.sh b/pkg/agent/testdata/RawUbuntuContainerd/line9.sh index 5e6d81b438e..e230458b599 100644 --- a/pkg/agent/testdata/RawUbuntuContainerd/line9.sh +++ b/pkg/agent/testdata/RawUbuntuContainerd/line9.sh @@ -362,40 +362,71 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF \ No newline at end of file diff --git a/pkg/templates/templates_generated.go b/pkg/templates/templates_generated.go index 267a9dc7324..b553aad4925 100644 --- a/pkg/templates/templates_generated.go +++ b/pkg/templates/templates_generated.go @@ -3512,40 +3512,80 @@ should_skip_nvidia_drivers() { echo "$should_skip" } -start_watch () { - capture_time=$(date +%s) - start_timestamp=$(date +%H:%M:%S) +installJq () { + # jq is not available until downloaded in install-dependencies.sh with the installDeps function + # but it is needed earlier to call the capture_benchmarks function in pre-install-dependencies.sh + output=$(jq --version) + if [ -n "$output" ]; then + echo "$output" + else + if [[ "${OS}" == "MARINER" ]]; then + sudo tdnf install -y jq + echo "jq was installed: $(jq --version)" + else + apt_get_install 5 1 60 jq + echo "jq was installed: $(jq --version)" + fi + fi } -stop_watch () { +capture_benchmarks () { + # the capture_benchmarks function is used to capture benchmark data for each section in VHD build scripts + # data will be stored in a JSON file and published as an artifact to be evaluated by github actions + set +x + + local is_final_section=$1 + local title=$2 local current_time=$(date +%s) local end_timestamp=$(date +%H:%M:%S) - local difference_in_seconds=$((current_time - ${1})) + if [ "$is_final_section" = true ]; then + local difference_in_seconds=$((current_time - script_start_stopwatch)) + else + local difference_in_seconds=$((current_time - section_start_stopwatch)) + fi local elapsed_hours=$(($difference_in_seconds/3600)) local elapsed_minutes=$((($difference_in_seconds%3600)/60)) local elapsed_seconds=$(($difference_in_seconds%60)) + printf -v total_time_elapsed "%02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds + + # if the final section of the current script has not yet been reached, store the latest recorded benchmarking data in an array + if [[ ! "$is_final_section" == true ]]; then + benchmarks+=($title) + benchmarks+=($section_start_timestamp) + benchmarks+=($end_timestamp) + benchmarks+=($total_time_elapsed) + fi - printf -v benchmark "'${2}' - Total Time Elapsed: %02d:%02d:%02d" $elapsed_hours $elapsed_minutes $elapsed_seconds - if [ ${3} == true ]; then - printf -v start " Start time: $script_start_timestamp" - else - printf -v start " Start time: $start_timestamp" + if [[ "$is_final_section" == true ]]; then + + # if current section is the final section of the current sript, create a JSON object for the script as a whole + script_object=$(jq -n --arg script_name "$title" --arg script_start_timestamp "$script_start_timestamp" --arg end_timestamp "$end_timestamp" --arg total_time_elapsed "$total_time_elapsed" '{($script_name): {"overall": {"start_time": $script_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}}') + + #iterate over the benchmarks array in order to retrieve data from previous sections and create section objects for each + for ((i=0; i<${#benchmarks[@]}; i+=4)); do + + section_object=$(jq -n --arg section_name "${benchmarks[i]}" --arg section_start_timestamp "${benchmarks[i+1]}" --arg end_timestamp "${benchmarks[i+2]}" --arg total_time_elapsed "${benchmarks[i+3]}" '{($section_name): {"start_time": $section_start_timestamp, "end_time": $end_timestamp, "total_time_elapsed": $total_time_elapsed}}') + + # append the section objects to the current script object + script_object=$(jq -n --argjson script_object "$script_object" --argjson section_object "$section_object" --arg script_name "$title" '$script_object | .[$script_name] += $section_object') + + done + + echo "Benchmarks:" + echo "$script_object" | jq -C . + + # after all section objects are appended to the current script object, append current script object to the array in ${VHD_BUILD_PERF_DATA} + jq ". += [$script_object]" ${VHD_BUILD_PERF_DATA} > tmp.json && mv tmp.json ${VHD_BUILD_PERF_DATA} + chmod 755 ${VHD_BUILD_PERF_DATA} fi - printf -v end " End Time: $end_timestamp" - echo -e "\n$benchmark\n" - benchmarks+=("$benchmark") - benchmarks+=("$start") - benchmarks+=("$end") -} -show_benchmarks () { - echo -e "\nBenchmarks:\n" - for i in "${benchmarks[@]}"; do - echo " $i" - done - echo + # reset timers for next section + section_start_stopwatch=$(date +%s) + section_start_timestamp=$(date +%H:%M:%S) + + set -x } #HELPERSEOF`) From 6f98383432d8cbf29ead361008b85fb81b7f4eb9 Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Mon, 22 Apr 2024 08:05:01 -0700 Subject: [PATCH 21/22] fix: publish buld performance data on dry runs --- .pipelines/templates/.builder-release-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pipelines/templates/.builder-release-template.yaml b/.pipelines/templates/.builder-release-template.yaml index 07bef06aedb..4e43dc9b133 100644 --- a/.pipelines/templates/.builder-release-template.yaml +++ b/.pipelines/templates/.builder-release-template.yaml @@ -156,7 +156,7 @@ steps: artifactName: 'build-performance-data-${{ parameters.artifactName }}' targetPath: 'vhd-build-performance-data.json' displayName: Publish Build Performance Data - condition: and(succeeded(), eq(variables.DRY_RUN, 'False')) + condition: succeeded() - bash: | echo MODE=$(MODE) && \ PKR_RG_NAME="$(cat packer-output | grep "ResourceGroupName" | cut -d "'" -f 2 | head -1)" && \ From 816fcfdcaefe883fac444859d16d485c7ed4ee20 Mon Sep 17 00:00:00 2001 From: Zachary Bailey Date: Wed, 24 Apr 2024 08:13:50 -0700 Subject: [PATCH 22/22] chore: remove unused array --- vhdbuilder/packer/install-dependencies.sh | 1 - vhdbuilder/packer/post-install-dependencies.sh | 1 - vhdbuilder/packer/pre-install-dependencies.sh | 1 - 3 files changed, 3 deletions(-) diff --git a/vhdbuilder/packer/install-dependencies.sh b/vhdbuilder/packer/install-dependencies.sh index bbf281e1962..32532ae3241 100644 --- a/vhdbuilder/packer/install-dependencies.sh +++ b/vhdbuilder/packer/install-dependencies.sh @@ -7,7 +7,6 @@ script_start_stopwatch=$(date +%s) section_start_stopwatch=$(date +%s) declare -a benchmarks=() -declare -a jsonBenchmarks=() OS=$(sort -r /etc/*-release | gawk 'match($0, /^(ID_LIKE=(coreos)|ID=(.*))$/, a) { print toupper(a[2] a[3]); exit }') OS_VERSION=$(sort -r /etc/*-release | gawk 'match($0, /^(VERSION_ID=(.*))$/, a) { print toupper(a[2] a[3]); exit }' | tr -d '"') diff --git a/vhdbuilder/packer/post-install-dependencies.sh b/vhdbuilder/packer/post-install-dependencies.sh index 578bee5a9a2..12ee4b28299 100644 --- a/vhdbuilder/packer/post-install-dependencies.sh +++ b/vhdbuilder/packer/post-install-dependencies.sh @@ -7,7 +7,6 @@ script_start_stopwatch=$(date +%s) section_start_stopwatch=$(date +%s) declare -a benchmarks=() -declare -a jsonBenchmarks=() OS=$(sort -r /etc/*-release | gawk 'match($0, /^(ID_LIKE=(coreos)|ID=(.*))$/, a) { print toupper(a[2] a[3]); exit }') UBUNTU_OS_NAME="UBUNTU" diff --git a/vhdbuilder/packer/pre-install-dependencies.sh b/vhdbuilder/packer/pre-install-dependencies.sh index 7df6e5b9754..9a9aded7439 100644 --- a/vhdbuilder/packer/pre-install-dependencies.sh +++ b/vhdbuilder/packer/pre-install-dependencies.sh @@ -7,7 +7,6 @@ script_start_stopwatch=$(date +%s) section_start_stopwatch=$(date +%s) declare -a benchmarks=() -declare -a jsonBenchmarks=() OS=$(sort -r /etc/*-release | gawk 'match($0, /^(ID_LIKE=(coreos)|ID=(.*))$/, a) { print toupper(a[2] a[3]); exit }') OS_VERSION=$(sort -r /etc/*-release | gawk 'match($0, /^(VERSION_ID=(.*))$/, a) { print toupper(a[2] a[3]); exit }' | tr -d '"')