#!/bin/bash # Color setting RED='\033[0;31m' GREEN='\033[1;32m' GREEN_DARK='\033[0;32m' GREEN_UNDERLINE='\033[4;32m' NC='\033[0m' docker rm -f `docker ps -a -q` #set -x echo echo "---------------Generating Data-----------------" echo echo "Prepare data for InfluxDB...." #bin/bulk_data_gen -seed 123 -format influx-bulk -scale-var 100 -use-case devops -timestamp-start "2018-01-01T00:00:00Z" -timestamp-end "2018-01-02T00:00:00Z" >data/influx.dat bin/bulk_data_gen -seed 123 -format influx-bulk -sampling-interval 1s -scale-var 10 -use-case devops -timestamp-start "2018-01-02T00:00:00Z" -timestamp-end "2018-01-15T00:00:00Z" > /mnt/data/influx.dat docker network create --ip-range 172.15.1.255/24 --subnet 172.15.1.1/16 tsdbcomp >>/dev/null 2>&1 INFLUX=`docker run -d -p 8086:8086 --net tsdbcomp --ip 172.15.1.5 influxdb` >>/dev/null 2>&1 sleep 10 echo echo -e "Start test InfluxDB, result in ${GREEN}Green line${NC}" INFLUXRES=`cat /mnt/data/influx.dat |bin/bulk_load_influx --batch-size=5000 --workers=20 --urls="http://172.15.1.5:8086" | grep loaded` echo echo -e "${GREEN}InfluxDB writing result:${NC}" echo -e "${GREEN}$INFLUXRES${NC}" DATA=`echo $INFLUXRES|awk '{print($2)}'` TMP=`echo $INFLUXRES|awk '{print($5)}'` IFWTM=`echo ${TMP%s*}` echo echo "------------------Querying Data-----------------" echo sleep 10 echo echo "start query test, query max from 8 hosts group by 1hour, Influxdb" echo #Test case 1 #测试用例1,查询所有数据中,用8个hostname标签进行匹配,匹配出这8个hostname对应的模拟服务器CPU数据中的usage_user这个监控数据的最大值。 #select max(usage_user) from cpu where(hostname='host_a' and hostname='host_b'and hostname='host_c'and hostname='host_d'and hostname='host_e'and hostname='host_f' and hostname='host_g'and hostname='host_h') ; # a,b,c,d,e,f,g,h are random 8 numbers. IFQS1=`bin/bulk_query_gen -seed 123 -format influx-http -query-type 8-host-all -scale-var 10 -queries 1000 | bin/query_benchmarker_influxdb -urls="http://172.15.1.5:8086" -workers 50 -print-interval 0|grep wall` echo -e "${GREEN}InfluxDB query test case 1 result:${NC}" echo -e "${GREEN}$IFQS1${NC}" TMP=`echo $IFQS1|awk '{print($4)}'` IFQ1=`echo ${TMP%s*}` #Test case 2 #测试用例2,查询所有数据中,用8个hostname标签进行匹配,匹配出这8个hostname对应的模拟服务器CPU数据中的usage_user这个监控数据,以1小时为粒度,查询每1小时的最大值。 #select max(usage_user) from cpu where(hostname='host_a' and hostname='host_b'and hostname='host_c'and hostname='host_d'and hostname='host_e'and hostname='host_f' and hostname='host_g'and hostname='host_h') interval(1h); # a,b,c,d,e,f,g,h are random 8 numbers IFQS2=`bin/bulk_query_gen -seed 123 -format influx-http -query-type 8-host-allbyhr -scale-var 10 -queries 1000 | bin/query_benchmarker_influxdb -urls="http://172.15.1.5:8086" -workers 50 -print-interval 0|grep wall` echo -e "${GREEN}InfluxDB query test case 2 result:${NC}" echo -e "${GREEN}$IFQS2${NC}" TMP=`echo $IFQS2|awk '{print($4)}'` IFQ2=`echo ${TMP%s*}` #Test case 3 #测试用例3,测试用例3,随机查询12个小时的数据,用8个hostname标签进行匹配,匹配出这8个hostname对应的模拟服务器CPU数据中的usage_user这个监控数据,以10分钟为粒度,查询每10分钟的最大值 #select max(usage_user) from cpu where(hostname='host_a' and hostname='host_b'and hostname='host_c'and hostname='host_d'and hostname='host_e'and hostname='host_f' and hostname='host_g'and hostname='host_h') and time >x and time x and time > /root/perftest-influxdb-report-13d.csv docker stop $INFLUX >>/dev/null 2>&1 docker container rm -f $INFLUX >>/dev/null 2>&1 docker network rm tsdbcomp >>/dev/null 2>&1 #bulk_query_gen/bulk_query_gen -format influx-http -query-type 1-host-1-hr -scale-var 10 -queries 1000 | query_benchmarker_influxdb/query_benchmarker_influxdb -urls="http://172.26.89.231:8086" #bulk_query_gen/bulk_query_gen -format tdengine -query-type 1-host-1-hr -scale-var 10 -queries 1000 | query_benchmarker_tdengine/query_benchmarker_tdengine -urls="http://172.26.89.231:6020"