Skip to content

Commit f9b8bf4

Browse files
committed
First working implementation with elastic apm
1 parent daa065d commit f9b8bf4

File tree

5 files changed

+49
-13
lines changed

5 files changed

+49
-13
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
compile-results/
2020
frameworks/Kieker-python/kieker-lang-pack-python/
2121

22+
# Do not store agents
23+
frameworks/elasticapm-java/elastic-apm-agent.jar
24+
2225
# Do not store measurement results
2326
frameworks/OpenTelemetry-java/raw*
2427
frameworks/OpenTelemetry-java/results-OpenTelemetry-java/
@@ -28,3 +31,4 @@ frameworks/Kieker-java/raw*
2831
frameworks/Kieker-java/results-Kieker-java/
2932
frameworks/Kieker-python/raw*
3033
frameworks/Kieker-python/results-Kieker-python/
34+
frameworks/elasticapm-java/results-elasticapm-java/

frameworks/elasticapm-java/benchmark.sh

+11-7
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ fi
5656

5757
if [ -z "$MOOBENCH_CONFIGURATIONS" ]
5858
then
59-
MOOBENCH_CONFIGURATIONS="0 1 2 4 5"
60-
echo "Setting default configuration $MOOBENCH_CONFIGURATIONS (without TextLogStreamHandler)"
59+
MOOBENCH_CONFIGURATIONS="0 1 2 3"
60+
echo "Setting default configuration $MOOBENCH_CONFIGURATIONS"
6161
fi
6262
echo "Running configurations: $MOOBENCH_CONFIGURATIONS"
6363

@@ -72,7 +72,10 @@ info "----------------------------------"
7272
cd "${BASE_DIR}"
7373

7474
# load agent
75-
getAgent
75+
if [ ! -f $AGENT ]
76+
then
77+
getAgent
78+
fi
7679

7780
checkDirectory data-dir "${DATA_DIR}" create
7881
checkFile log "${DATA_DIR}/kieker.log" clean
@@ -97,8 +100,6 @@ JAVA_ARGS="-Xms1G -Xmx2G"
97100

98101
LTW_ARGS="-javaagent:elastic-apm-agent.jar"
99102

100-
KIEKER_ARGS="-Dlog4j.configuration=log4j.cfg -Dkieker.monitoring.name=KIEKER-BENCHMARK -Dkieker.monitoring.adaptiveMonitoring.enabled=false -Dkieker.monitoring.periodicSensorsExecutorPoolSize=0"
101-
102103
# JAVA_ARGS used to configure and setup a specific writer
103104
declare -a WRITER_CONFIG
104105
# Receiver setup if necessary
@@ -109,9 +110,12 @@ declare -a TITLE
109110
#
110111
# Different writer setups
111112
#
112-
WRITER_CONFIG[0]=""
113-
WRITER_CONFIG[1]="-Delastic.apm.service_name=moobench-benchmark -Delastic.apm.application_packages=moobench.application -Delastic.apm.server_url=http://127.0.0.1:8200"
114113

114+
ELASTIC_ARGS="-Delastic.apm.service_name=moobench-benchmark -Delastic.apm.service_name=moobench-benchmark -Delastic.apm.trace_methods=moobench.application.* -Delastic.apm.application_packages=moobench.application -Delastic.apm.server_url=http://127.0.0.1:8200"
115+
WRITER_CONFIG[0]=""
116+
WRITER_CONFIG[1]="-Delastic.apm.recording=false $ELASTIC_ARGS"
117+
WRITER_CONFIG[2]="$ELASTIC_ARGS"
118+
WRITER_CONFIG[3]="-Delastic.apm.sanitize_field_names= $ELASTIC_ARGS"
115119

116120

117121
writeConfiguration
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
services:
2+
search:
3+
image: elasticsearch:8.16.1
4+
environment:
5+
- cluster.name=es1
6+
- discovery.type=single-node
7+
- xpack.security.enabled=false
8+
- ES_JAVA_OPTS=-Xms1g -Xmx1g
9+
ports:
10+
- 9200:9200
11+
- 9300:9300
12+
kibana:
13+
image: kibana:8.16.1
14+
environment:
15+
- ELASTICSEARCH_HOSTS=http://search:9200
16+
- ELASTIC_APM_SERVER_URL=http://telemetry:8200
17+
ports:
18+
- 5601:5601
19+
telemetry:
20+
image: elastic/apm-server:7.17.25
21+
command: apm-server -e -E output.elasticsearch.hosts=http://search:9200
22+
ports:
23+
- 8200:8200

frameworks/elasticapm-java/functions.sh

+9-2
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ function executeExperiment() {
5151
--total-calls "${TOTAL_NUM_OF_CALLS}" \
5252
--method-time "${METHOD_TIME}" \
5353
--total-threads $THREADS \
54-
--recursion-depth "${recursion}"
54+
--recursion-depth "${recursion}" &> "${LOG_FILE}"
5555

5656
if [ ! -f "${RESULT_FILE}" ] ; then
5757
info "---------------------------------------------------"
@@ -99,7 +99,14 @@ function executeBenchmark() {
9999

100100
for index in $MOOBENCH_CONFIGURATIONS
101101
do
102-
executeBenchmarkBody $index $i $recursion
102+
if (( $index > 0 ))
103+
then
104+
docker compose up -d
105+
executeBenchmarkBody $index $i $recursion
106+
docker compose down
107+
else
108+
executeBenchmarkBody $index $i $recursion
109+
fi
103110
done
104111
}
105112

frameworks/elasticapm-java/labels.sh

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
11
TITLE[0]="No instrumentation"
22
TITLE[1]="Deactivated probe"
3-
TITLE[2]="No logging"
4-
TITLE[3]="Text file"
5-
TITLE[4]="Binary file"
6-
TITLE[5]="Binary TCP"
3+
TITLE[2]="Regular Writing"
4+
TITLE[3]="Writing without sanitizing fields"

0 commit comments

Comments
 (0)