63 lines
1.6 KiB
Bash
Executable File
63 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
JAVA=$1
|
|
JAVA_VER=$2
|
|
AGENT_VERSION="0.12.0"
|
|
dir=$(mktemp -d)
|
|
pushd $dir
|
|
cat > prometheus_config.yaml <<EOF
|
|
---
|
|
lowercaseOutputName: true
|
|
lowercaseOutputLabelNames: true
|
|
blacklistObjectNames:
|
|
# handled by agent's default exporter
|
|
- "java.lang:*"
|
|
EOF
|
|
cat > HelloWait.java <<EOF
|
|
public class HelloWait {
|
|
|
|
public static void main(String[] args) {
|
|
System.out.println("Hello World");
|
|
try {
|
|
while (true) {
|
|
Thread.sleep(200);
|
|
}
|
|
} catch (InterruptedException e) {
|
|
// ignore
|
|
}
|
|
}
|
|
|
|
}
|
|
EOF
|
|
javac HelloWait.java
|
|
$JAVA/bin/java -javaagent:/usr/share/java/prometheus-jmx-exporter/jmx_prometheus_javaagent.jar=8080:prometheus_config.yaml -cp . HelloWait > hello_wait.out 2>&1 &
|
|
num_tries=0
|
|
while [ $num_tries -lt 10 ] && ! grep -q 'Hello World' hello_wait.out; do
|
|
sleep 1
|
|
num_tries=$(($num_tries + 1))
|
|
done
|
|
echo
|
|
if [ $num_tries -eq 10 ]; then
|
|
echo "Time out reached waiting for HelloWait to come up"
|
|
exit 1
|
|
fi
|
|
curl -s http://127.0.0.1:8080/metrics 2>&1 | tee prometheus.out
|
|
echo
|
|
echo
|
|
# jmx_exporter_build_info{version="0.12.0",name="jmx_prometheus_javaagent",} 1.0
|
|
grep "jmx_exporter_build_info" prometheus.out | grep -q "version=\"$AGENT_VERSION\""
|
|
# jvm_info{version="1.8.0_222-b10",vendor="Oracle Corporation",runtime="OpenJDK Runtime Environment",} 1.0
|
|
version="1.8.0"
|
|
if [ $JAVA_VER -ne 8 ]; then
|
|
version="11.0"
|
|
fi
|
|
grep "jvm_info" prometheus.out | grep -q "version=\"$version"
|
|
popd
|
|
rm -rf $dir
|
|
|
|
# Cleanup HelloWait process
|
|
kill $(jps | grep HelloWait | awk '{ print $1 }')
|
|
|
|
echo "JDK $JAVA_VER: Tests PASSED!"
|