-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathfunctions.sh
More file actions
executable file
·92 lines (82 loc) · 3.12 KB
/
functions.sh
File metadata and controls
executable file
·92 lines (82 loc) · 3.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# Kieker specific functions
# ensure the script is sourced
if [ "${BASH_SOURCE[0]}" -ef "$0" ]
then
echo "Hey, you should source this script, not execute it!"
exit 1
fi
# Skywalking Java Agent version
AGENT_VERSION="9.5.0"
# Skywalking APM version
APM_VERSION="10.2.0"
# Skywalking BanyanDB version, check config/bydb.dependencies.properties in Skywalking apm for version
BANYANDB_VERSION="0.8.0"
# Gets the skywalking agent and APM server
# Commented code uses archive.apache.org which is too slow for Github actions but should be always available.
# The dlcdn.apache.org is much faster but only available for the latest version.
function getAgent {
mkdir "${BASE_DIR}/skywalking-agent"
cd "${BASE_DIR}"
#wget https://archive.apache.org/dist/skywalking/java-agent/${AGENT_VERSION}/apache-skywalking-java-agent-${AGENT_VERSION}.tgz
wget https://dlcdn.apache.org/skywalking/java-agent/${AGENT_VERSION}/apache-skywalking-java-agent-${AGENT_VERSION}.tgz
tar -xvzf apache-skywalking-java-agent-${AGENT_VERSION}.tgz
cp "${BASE_DIR}/skywalking-agent/optional-plugins/apm-customize-enhance-plugin-9.5.0.jar" "${BASE_DIR}/skywalking-agent/plugins/"
#wget https://archive.apache.org/dist/skywalking/${APM_VERSION}/apache-skywalking-apm-${APM_VERSION}.tar.gz
wget https://dlcdn.apache.org/skywalking/${APM_VERSION}/apache-skywalking-apm-${APM_VERSION}.tar.gz
tar -xvzf apache-skywalking-apm-${APM_VERSION}.tar.gz
cd "${BASE_DIR}"
}
# Start banyandb as storage backend in a docker container and then the Skywalking APM server.
function startSkywalkingServer {
docker pull apache/skywalking-banyandb:${BANYANDB_VERSION}-slim
docker run -d -p 17912:17912 -p 17913:17913 --name banyandb \
apache/skywalking-banyandb:${BANYANDB_VERSION}-slim standalone
sleep 10
cd "${BASE_DIR}/apache-skywalking-apm-bin/bin"
./oapService.sh &
SKYWALKING_PID=$!
cd "${BASE_DIR}"
# while ! nc -z localhost 11800; do
while ! timeout 1 bash -c "cat < /dev/null > /dev/tcp/localhost/11800" 2>/dev/null; do
sleep 2
done
}
# Stops the APM server and then the banyandb container
function stopSkywalkingServer {
if [[ -n "$SKYWALKING_PID" ]]; then
kill "$SKYWALKING_PID"
wait "$SKYWALKING_PID" 2>/dev/null
fi
# Empty the logs to avoid interference with next run
echo "" > "${BASE_DIR}/apache-skywalking-apm-bin/logs/skywalking-oap-server.log"
docker stop banyandb
docker rm banyandb
sleep 3
}
function executeBenchmark {
for index in $MOOBENCH_CONFIGURATIONS
do
runExperiment $index
done
}
function runExperiment {
# No instrumentation
k=$1
info " # ${i}.$RECURSION_DEPTH.${k} ${TITLE[$k]}"
if [[ "$k" -gt 0 ]]
then
startSkywalkingServer
fi
export BENCHMARK_OPTS="${SKYWALKING_CONFIG[$k]}"
"${MOOBENCH_BIN}" \
--output-filename "${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv" \
--total-calls "${TOTAL_NUM_OF_CALLS}" \
--method-time "${METHOD_TIME}" \
--total-threads "${THREADS}" \
--recursion-depth "${RECURSION_DEPTH}" \
${MORE_PARAMS} &> "${RESULTS_DIR}/output_${i}_${RECURSION_DEPTH}_${k}.txt"
if [[ "$k" -gt 0 ]]
then
stopSkywalkingServer
fi
}