Skip to content

Commit 2f460bd

Browse files
committed
mk-oracle: measure time final
Provide correct results now. Possibility to test all section to get more reliable results revamp, clean. CMK-33365 Change-Id: I357e822e0ec4c3d911a7c113dc7d3ef69d1e97e6
1 parent f38d426 commit 2f460bd

7 files changed

Lines changed: 72 additions & 31 deletions

File tree

agents/wnx/run.ps1

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@ $argDetach = $false
2828
$argWin = $false
2929
$argSkipSqlTest = $false
3030

31-
$msbuild_exe = & "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" `
32-
-latest `
33-
-requires Microsoft.Component.MSBuild `
34-
-find MSBuild\**\Bin\MSBuild.exe
31+
$vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
32+
if (Test-Path $vswhere) {
33+
$msbuild_exe = & $vswhere -latest -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe
34+
} else {
35+
$msbuild_exe = $null
36+
}
3537

3638
$repo_root = (get-item $pwd).parent.parent.FullName
3739
$results_dir = "$repo_root\artefacts"
@@ -701,7 +703,12 @@ function Test-MsiSigning($file) {
701703
Invoke-CheckApp "choco" "choco -v"
702704
Invoke-CheckApp "perl" "perl -v"
703705
Invoke-CheckApp "make" "make -v"
704-
Invoke-CheckApp "msvc" "& ""$msbuild_exe"" --version"
706+
if ($msbuild_exe) {
707+
Invoke-CheckApp "msvc" "& ""$msbuild_exe"" --version"
708+
} else {
709+
Write-Host "[-] msvc :vswhere.exe not found or Visual Studio not installed" -Fore Red
710+
Exit 55
711+
}
705712
Invoke-CheckApp "is_crlf" "python .\scripts\check_crlf.py"
706713

707714
$argAttached = $false

packages/mk-oracle/run_compare_all.sh

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,17 @@
22
# Compare outputs of the old (mk_oracle) and new (mk-oracle) plugins.
33
# Usage: ./run_compare_all.sh [--diff] [--keep] [--time-only]
44

5+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6+
7+
echo "=== Building release binary ==="
8+
TARGET_DIR=$(cargo metadata --manifest-path "${SCRIPT_DIR}/Cargo.toml" --no-deps --format-version 1 2>/dev/null | python3 -c "import sys,json; print(json.load(sys.stdin)['target_directory'])")
9+
export RELEASE_BIN="${TARGET_DIR}/release/mk-oracle"
10+
if ! cargo build --release --manifest-path "${SCRIPT_DIR}/Cargo.toml" 2>&1; then
11+
echo "ERROR: release build failed" >&2
12+
exit 1
13+
fi
14+
strip "${RELEASE_BIN}"
15+
516
sections=(
617
jobs
718
asm_instance
@@ -28,7 +39,7 @@ failed_sections=()
2839

2940
for section in "${sections[@]}"; do
3041
echo "Running section: $section"
31-
if ! DB_SECTION="$section" ./run_comparison.sh "$@"; then
42+
if ! DB_SECTION="$section" "${SCRIPT_DIR}/run_comparison.sh" "$@"; then
3243
failed_sections+=("$section")
3344
fi
3445
done

packages/mk-oracle/run_comparison.sh

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,17 @@ if [[ " $* " == *" --time-only "* ]]; then
3939
TIME_ONLY=1
4040
fi
4141

42-
echo "=== Building release binary ==="
43-
RELEASE_BIN="${SCRIPT_DIR}/target/release/mk-oracle"
44-
if ! cargo build --release --manifest-path "${SCRIPT_DIR}/Cargo.toml" 2>&1; then
45-
echo "ERROR: release build failed" >&2
46-
exit 1
42+
if [[ -z "${RELEASE_BIN}" ]]; then
43+
echo "=== Building release binary ==="
44+
TARGET_DIR=$(cargo metadata --manifest-path "${SCRIPT_DIR}/Cargo.toml" --no-deps --format-version 1 2>/dev/null | python3 -c "import sys,json; print(json.load(sys.stdin)['target_directory'])")
45+
RELEASE_BIN="${TARGET_DIR}/release/mk-oracle"
46+
if ! cargo build --release --manifest-path "${SCRIPT_DIR}/Cargo.toml" 2>&1; then
47+
echo "ERROR: release build failed" >&2
48+
exit 1
49+
fi
50+
strip "${RELEASE_BIN}"
4751
fi
52+
export RELEASE_BIN
4853

4954
echo "=== Running old plugin (mk_oracle) ==="
5055
OLD_START=$(date +%s%N)
@@ -55,7 +60,7 @@ OLD_MS=$(((OLD_END - OLD_START) / 1000000))
5560

5661
echo "=== Running new plugin (mk-oracle) ==="
5762
NEW_START=$(date +%s%N)
58-
"${SCRIPT_DIR}/run_unified.sh" --binary "${RELEASE_BIN}" | sed '/^[[:space:]]*$/d' >"$NEW_OUT" 2>/dev/null
63+
"${SCRIPT_DIR}/run_unified.sh" | sed '/^[[:space:]]*$/d' >"$NEW_OUT" 2>/dev/null
5964
NEW_RC=$?
6065
NEW_END=$(date +%s%N)
6166
NEW_MS=$(((NEW_END - NEW_START) / 1000000))

packages/mk-oracle/run_legacy.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,13 @@ export DB_PASSWORD="${CI_ORA_TEST_PASSWORD}"
2323
export DB_HOST="oracle-rocky-ci.lan.checkmk.net"
2424
export DB_SERVICE_NAME="dbtest23"
2525
export DB_SECTION="${DB_SECTION:-instance}"
26+
if [[ "${DB_SECTION}" == "all" ]]; then
27+
export INDIVIDUAL_SECTIONS="#SYNC_SECTIONS"
28+
export ALL_SECTIONS="SYNC_SECTIONS"
29+
else
30+
export INDIVIDUAL_SECTIONS="SYNC_SECTIONS"
31+
export ALL_SECTIONS="#SYNC_SECTIONS"
32+
fi
2633
envsubst <"${MK_CONFDIR}/mk_oracle.cfg.conf" >"${MK_CONFDIR}/mk_oracle.cfg"
2734

2835
# sqlplus

packages/mk-oracle/run_unified.sh

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,11 @@
11
#!/bin/bash
22
# Run mk-oracle as it has been built
33
# config asnd log are located in the tests/regression
4-
# Usage: ./run_unified.sh [--binary <path>]
4+
# Usage: ./run_unified.sh
5+
# Set RELEASE_BIN env var to use a pre-built binary instead of cargo run.
56

67
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
78

8-
BINARY=""
9-
while [[ $# -gt 0 ]]; do
10-
case "$1" in
11-
--binary)
12-
BINARY="$2"
13-
shift 2
14-
;;
15-
*)
16-
shift
17-
;;
18-
esac
19-
done
20-
219
# agent setup
2210
PKG_DIR="${SCRIPT_DIR}/tests/regression/mk-oracle"
2311
export MK_CONFDIR="${PKG_DIR}/etc/check_mk"
@@ -29,13 +17,22 @@ export DB_PASSWORD="${CI_ORA_TEST_PASSWORD}"
2917
export DB_HOST="oracle-rocky-ci.lan.checkmk.net"
3018
export DB_SERVICE_NAME="dbtest23"
3119
export DB_SECTION="${DB_SECTION:-instance}"
20+
if [[ "${DB_SECTION}" == "all" ]]; then
21+
export INDIVIDUAL_SECTIONS="_unused"
22+
export ALL_SECTIONS="sections"
23+
else
24+
export INDIVIDUAL_SECTIONS="sections"
25+
export ALL_SECTIONS="_unused"
26+
fi
3227
envsubst <"${MK_CONFDIR}/mk-oracle.yml.conf" >"${MK_CONFDIR}/mk-oracle.yml"
3328

3429
# run
35-
if [[ -n "${BINARY}" ]]; then
30+
if [[ -n "${RELEASE_BIN}" ]]; then
3631
path_to_runtime="${SCRIPT_DIR}/runtimes/plugins/packages/mk-oracle"
3732
export LD_LIBRARY_PATH="${path_to_runtime}:${LD_LIBRARY_PATH}"
38-
"${BINARY}" -c "${PKG_DIR}/etc/check_mk/mk-oracle.yml"
33+
export TNS_ADMIN="${SCRIPT_DIR}/tests/files/tns"
34+
export MK_LIBDIR="${SCRIPT_DIR}/runtimes/"
35+
"${RELEASE_BIN}" -c "${PKG_DIR}/etc/check_mk/mk-oracle.yml"
3936
else
4037
./cargo_run run -- -c "${PKG_DIR}/etc/check_mk/mk-oracle.yml"
4138
fi

packages/mk-oracle/tests/regression/mk-oracle/etc/check_mk/oracle.yml.conf

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,19 @@ oracle:
99
password: $DB_PASSWORD
1010
type: standard
1111
cache_age: 600
12-
sections:
12+
$INDIVIDUAL_SECTIONS:
1313
- $DB_SECTION:
14-
is_async: no
14+
is_async: no
15+
$ALL_SECTIONS:
16+
- instance:
17+
- sessions:
18+
- logswitches:
19+
- undostat:
20+
- recovery_area:
21+
- processes:
22+
- recovery_status:
23+
- longactivesessions:
24+
- dataguard_stats:
25+
- performance:
26+
- locks:
27+
- systemparameter:

packages/mk-oracle/tests/regression/mk_oracle/etc/check_mk/mk_oracle.cfg.conf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ DBUSER='system:$DB_PASSWORD::::'
77
ASMUSER='/::SYSASM:::'
88

99
# Sections to run in foreground and wait for the result
10-
SYNC_SECTIONS='$DB_SECTION'
10+
$INDIVIDUAL_SECTIONS='$DB_SECTION'
11+
$ALL_SECTIONS="instance sessions logswitches undostat recovery_area processes recovery_status longactivesessions dataguard_stats performance locks systemparameter"
1112

1213
# Sections to run in the background, at a slower interval cached
1314
ASYNC_SECTIONS=''

0 commit comments

Comments
 (0)