diff --git a/.pipelines/templates/.builder-release-template.yaml b/.pipelines/templates/.builder-release-template.yaml index a66e6c4f375..4e43dc9b133 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,13 +144,19 @@ 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: 'vhd-build-performance-data.json' + displayName: Publish Build Performance Data + condition: succeeded() - bash: | echo MODE=$(MODE) && \ PKR_RG_NAME="$(cat packer-output | grep "ResourceGroupName" | cut -d "'" -f 2 | head -1)" && \ @@ -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: diff --git a/parts/linux/cloud-init/artifacts/cse_helpers.sh b/parts/linux/cloud-init/artifacts/cse_helpers.sh index 34f13e6da0c..e72094853d9 100755 --- a/parts/linux/cloud-init/artifacts/cse_helpers.sh +++ b/parts/linux/cloud-init/artifacts/cse_helpers.sh @@ -379,40 +379,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 \ No newline at end of file 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 | - 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+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 | - 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 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 | - 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+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 | - 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 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 | - 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 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 | - 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+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 | - 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 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 | - 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+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 | - 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 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 | - 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 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 | - 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+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 | - 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+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 | - 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 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 | - 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+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 | - 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 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 | - 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 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`) diff --git a/vhdbuilder/packer/install-dependencies.sh b/vhdbuilder/packer/install-dependencies.sh index 20e2da02011..32532ae3241 100644 --- a/vhdbuilder/packer/install-dependencies.sh +++ b/vhdbuilder/packer/install-dependencies.sh @@ -1,10 +1,10 @@ #!/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=() @@ -24,11 +24,11 @@ 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} -stop_watch $capture_time "Declare Variables / Configure Environment" false -start_watch +capture_benchmarks false "declare_variables_and_source_packer_files" echo "Logging the kernel after purge and reinstall + reboot: $(uname -r)" # fix grub issue with cvm by reinstalling before other deps @@ -53,8 +53,7 @@ APT::Periodic::AutocleanInterval "0"; APT::Periodic::Unattended-Upgrade "0"; EOF fi -stop_watch $capture_time "Purge and Re-install Ubuntu" false -start_watch +capture_benchmarks false "purge_and_reinstall_ubuntu" # If the IMG_SKU does not contain "minimal", installDeps normally if [[ "$IMG_SKU" != *"minimal"* ]]; then @@ -83,8 +82,7 @@ SystemMaxUse=1G RuntimeMaxUse=1G ForwardToSyslog=yes EOF -stop_watch $capture_time "Install Dependencies" false -start_watch +capture_benchmarks false "install_dependencies" if [[ ${CONTAINER_RUNTIME:-""} != "containerd" ]]; then echo "Unsupported container runtime. Only containerd is supported for new VHD builds." @@ -111,8 +109,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 -start_watch +capture_benchmarks false "check_container_runtime_and_network_configurations" CONTAINERD_SERVICE_DIR="/etc/systemd/system/containerd.service.d" mkdir -p "${CONTAINERD_SERVICE_DIR}" @@ -168,8 +165,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 -start_watch +capture_benchmarks false "create_containerd_service_directory_download_shims_configure_runtime_and_network" DOWNLOAD_FILES=$(jq ".DownloadFiles" $COMPONENTS_FILEPATH | jq .[] --monochrome-output --compact-output) for componentToDownload in ${DOWNLOAD_FILES[*]}; do @@ -190,8 +186,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 -start_watch +capture_benchmarks false "download_crictl" installAndConfigureArtifactStreaming() { # arguments: package name, package extension @@ -229,8 +224,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 -start_watch +capture_benchmarks false "artifact_streaming_and_download_teleportd" if [[ $OS == $UBUNTU_OS_NAME && $(isARM64) != 1 ]]; then # no ARM64 SKU with GPU now gpu_action="copy" @@ -265,8 +259,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 -start_watch +capture_benchmarks false "pull_nvidia_driver_image(mcr)_and_run_installBcc_in_subshell" string_replace() { echo ${1//\*/$2} @@ -313,8 +306,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 -start_watch +capture_benchmarks false "pull_and_retag_container_images" # doing this at vhd allows CSE to be faster with just mv unpackAzureCNI() { @@ -376,8 +368,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 -start_watch +capture_benchmarks false "configure_networking_and_interface" if [[ $OS == $UBUNTU_OS_NAME && $(isARM64) != 1 ]]; then # no ARM64 SKU with GPU now NVIDIA_DEVICE_PLUGIN_VERSIONS=" @@ -405,8 +396,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 -start_watch +capture_benchmarks false "download_gpu_device_plugin" # Kubelet credential provider plugins CREDENTIAL_PROVIDER_VERSIONS=" @@ -451,8 +441,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 -start_watch +capture_benchmarks false "configure_telemetry_create_logging_directory_and_download_kube-proxy_images" # 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 @@ -517,8 +506,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 0e3f4b067c3..12ee4b28299 100644 --- a/vhdbuilder/packer/post-install-dependencies.sh +++ b/vhdbuilder/packer/post-install-dependencies.sh @@ -1,10 +1,10 @@ #!/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=() @@ -17,16 +17,14 @@ 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 -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 -stop_watch $capture_time "Set Variables" false -start_watch +capture_benchmarks false "set_variables_and_source_packer_files" if [[ $OS == $UBUNTU_OS_NAME ]]; then # shellcheck disable=SC2021 @@ -52,8 +50,7 @@ if [[ $OS == $UBUNTU_OS_NAME ]]; then detachAndCleanUpUA fi fi -stop_watch $capture_time "Log / Detach UA and Clean-up" false -start_watch +capture_benchmarks false "log_and_detach_ua" # shellcheck disable=SC2129 echo "kubelet/kubectl downloaded:" >> ${VHD_LOGS_FILEPATH} @@ -63,8 +60,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 -start_watch +capture_benchmarks false "list_installed_packages" echo "Disk usage:" >> ${VHD_LOGS_FILEPATH} df -h >> ${VHD_LOGS_FILEPATH} @@ -76,8 +72,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 -start_watch +capture_benchmarks false "determine_disk_usage" echo -e "=== os-release Begin" >> ${VHD_LOGS_FILEPATH} cat /etc/os-release >> ${VHD_LOGS_FILEPATH} @@ -96,23 +91,19 @@ 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 -start_watch +capture_benchmarks false "write_logs" if [[ $(isARM64) != 1 ]]; then # no asc-baseline-1.1.0-268.arm64.deb installAscBaseline fi -stop_watch $capture_time "Instal Asc Baseline" false -start_watch +capture_benchmarks false "install_asc_baseline" if [[ ${UBUNTU_RELEASE} == "18.04" || ${UBUNTU_RELEASE} == "20.04" || ${UBUNTU_RELEASE} == "22.04" ]]; then if [[ ${ENABLE_FIPS,,} == "true" || ${CPU_ARCH} == "arm64" ]]; then 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 26f72ab00d8..9a9aded7439 100644 --- a/vhdbuilder/packer/pre-install-dependencies.sh +++ b/vhdbuilder/packer/pre-install-dependencies.sh @@ -1,10 +1,10 @@ #!/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=() @@ -23,40 +23,37 @@ 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 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} -stop_watch $capture_time "Create Post-build Test" false -start_watch +echo '[]' > ${VHD_BUILD_PERF_DATA} 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 -start_watch + +installJq +capture_benchmarks false "source_packer_files_declare_variables_and_set_mariner_permissions" copyPackerFiles systemctlEnableAndStart disk_queue || exit 1 -stop_watch $capture_time "Copy Packer Files" false -start_watch +capture_benchmarks false "copy_packer_files" 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 -start_watch +capture_benchmarks false "make_directory_and_update_certs" systemctlEnableAndStart ci-syslog-watcher.path || exit 1 systemctlEnableAndStart ci-syslog-watcher.service || exit 1 @@ -64,18 +61,15 @@ 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 -start_watch +capture_benchmarks false "start_system_logs_and_aks_log_collector" # 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 -start_watch +capture_benchmarks false "enable_modified_log_rotate_service" systemctlEnableAndStart sync-container-logs.service || exit 1 -stop_watch $capture_time "Sync Container Logs" false -start_watch +capture_benchmarks false "sync_container_logs" # First handle Mariner + FIPS if [[ ${OS} == ${MARINER_OS_NAME} ]]; then @@ -112,8 +106,7 @@ else installFIPS fi fi -stop_watch $capture_time "Handle Mariner / FIPS Configurations" false -start_watch +capture_benchmarks false "handle_mariner_and_fips_configurations" # Handle Azure Linux + CgroupV2 if [[ ${OS} == ${MARINER_OS_NAME} ]] && [[ "${ENABLE_CGROUPV2,,}" == "true" ]]; then @@ -134,8 +127,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 diff --git a/vhdbuilder/packer/vhd-image-builder-arm64-gen2.json b/vhdbuilder/packer/vhd-image-builder-arm64-gen2.json index 5dec6d90490..a2ef47e36be 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/vhd-build-performance-data.json", + "destination": "vhd-build-performance-data.json" + }, + { + "type": "shell", + "inline": [ + "sudo rm /opt/azure/vhd-build-performance-data.json" + ] + }, { "type": "shell", "inline": [ diff --git a/vhdbuilder/packer/vhd-image-builder-base.json b/vhdbuilder/packer/vhd-image-builder-base.json index 8849308e0aa..9d47bca8bf9 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/vhd-build-performance-data.json", + "destination": "vhd-build-performance-data.json" + }, + { + "type": "shell", + "inline": [ + "sudo rm /opt/azure/vhd-build-performance-data.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..29e9c9c70f4 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/vhd-build-performance-data.json", + "destination": "vhd-build-performance-data.json" + }, + { + "type": "shell", + "inline": [ + "sudo rm /opt/azure/vhd-build-performance-data.json" + ] + }, { "type": "shell", "inline": [ diff --git a/vhdbuilder/packer/vhd-image-builder-mariner.json b/vhdbuilder/packer/vhd-image-builder-mariner.json index 21c3aab0a02..5d536188cb7 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/vhd-build-performance-data.json", + "destination": "vhd-build-performance-data.json" + }, + { + "type": "shell", + "inline": [ + "sudo rm /opt/azure/vhd-build-performance-data.json" + ] + }, { "type": "shell", "inline": [