diff --git a/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_MixTbRows.jmx b/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_MixTbRows.jmx
new file mode 100644
index 0000000000000000000000000000000000000000..bbc1e5a27a857a8d374e935b41e91a614c48dc4b
--- /dev/null
+++ b/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_MixTbRows.jmx
@@ -0,0 +1,209 @@
+
+
+
+
+
+ false
+ true
+ false
+
+
+
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+ 1
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ create database if not exists test precision 'ms'
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/rest/sql
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+ continue
+
+ false
+ looptimes
+
+ 100
+
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ {"metric": "cpu.usage_user.rows", "timestamp":${ts_counter}, "value":32.261068286779754, "tags":{"arch":"x64","datacenter":"us-west-1b","hostname":"host_5","os":"Ubuntu16","rack":"13","region":"us-west-1","service":"10","service_environment":"staging","service_version":"${rows_counter}","team":"NYC"}}
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/opentsdb/v1/put/json/test
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+ 1614530008000
+
+ 1
+ ts_counter
+
+ false
+
+
+
+ 1
+ row_count
+ 1
+ rows_counter
+
+ false
+
+
+
+
+
+
diff --git a/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_createStb.jmx b/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_createStb.jmx
new file mode 100644
index 0000000000000000000000000000000000000000..11f0ed8f64a51aee50be99cc4ee8f1b7450b34e8
--- /dev/null
+++ b/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_createStb.jmx
@@ -0,0 +1,191 @@
+
+
+
+
+
+ false
+ true
+ false
+
+
+
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+ 1
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ create database if not exists test precision 'ms'
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/rest/sql
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+ continue
+
+ false
+ looptimes
+
+ 100
+
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ {"metric": "cpu.usage_user_${__Random(1,100000,)}_${__Random(1,100000,)}_${__Random(1,100000,)}", "timestamp":1626006833640, "value":32.261068286779754, "tags":{"arch":"x64","datacenter":"us-west-1b","hostname":"host_5","os":"Ubuntu16","rack":"13","region":"us-west-1","service":"10","service_environment":"staging","service_version":"0","team":"NYC"}}
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/opentsdb/v1/put/json/test
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+
+
diff --git a/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_createTb.jmx b/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_createTb.jmx
new file mode 100644
index 0000000000000000000000000000000000000000..053480dc47a9c26cd5faf0b0fb277c3fa060b87d
--- /dev/null
+++ b/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_createTb.jmx
@@ -0,0 +1,191 @@
+
+
+
+
+
+ false
+ true
+ false
+
+
+
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+ 1
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ create database if not exists test precision 'ms'
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/rest/sql
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+ continue
+
+ false
+ looptimes
+
+ 100
+
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ {"metric": "cpu.usage_user", "timestamp":1626006833640, "value":32.261068286779754, "tags":{"arch":"x64","datacenter":"us-west-1b","hostname":"host_5","os":"Ubuntu16","rack":"${__Random(1,100000,)}","region":"us-west-1","service":"${__Random(1,100000,)}","service_environment":"staging","service_version":"${__Random(1,100000,)}","team":"NYC"}}
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/opentsdb/v1/put/json/test
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+
+
diff --git a/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_insertRows.jmx b/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_insertRows.jmx
new file mode 100644
index 0000000000000000000000000000000000000000..be8b8bdc2b8491b6f1689ad45b31e026dcae6f23
--- /dev/null
+++ b/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_insertRows.jmx
@@ -0,0 +1,200 @@
+
+
+
+
+
+ false
+ true
+ false
+
+
+
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+ 1
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ create database if not exists test precision 'ms'
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/rest/sql
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+ continue
+
+ false
+ looptimes
+
+ 24
+
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ {"metric": "cpu.usage_user.rows", "timestamp":${ts_counter}, "value":32.261068286779754, "tags":{"arch":"x64","datacenter":"us-west-1b","hostname":"host_5","os":"Ubuntu16","rack":"13","region":"us-west-1","service":"10","service_environment":"staging","service_version":"0","team":"NYC"}}
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/opentsdb/v1/put/json/test
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+ 1614530008000
+
+ 1
+ ts_counter
+
+ false
+
+
+
+
+
+
diff --git a/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_jmeter_csv_import.jmx b/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_jmeter_csv_import.jmx
new file mode 100644
index 0000000000000000000000000000000000000000..7192421de4ca8f88f86226852bbe7242423efe65
--- /dev/null
+++ b/tests/perftest-scripts/taosadapter_perftest/opentsdb_json_jmeter_csv_import.jmx
@@ -0,0 +1,203 @@
+
+
+
+
+
+ false
+ true
+ false
+
+
+
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+ 1
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ create database if not exists test precision 'ms'
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/rest/sql
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+ continue
+
+ false
+ looptimes
+
+ 100
+
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ {"metric": "cpu.usage_user.rows", "timestamp":${ts_csv_count}, "value":32.261068286779754, "tags":{"arch":"x64","datacenter":"us-west-1b","hostname":"host_5","os":"Ubuntu16","rack":"13","region":"us-west-1","service":"10","service_environment":"staging","service_version":"${row_csv_count}","team":"NYC"}}
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/opentsdb/v1/put/json/test
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+ ,
+ UTF-8
+ import_file_name
+ false
+ false
+ true
+ shareMode.all
+ false
+ ts_csv_count,row_csv_count
+
+
+
+
+
diff --git a/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_MixTbRows.jmx b/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_MixTbRows.jmx
new file mode 100644
index 0000000000000000000000000000000000000000..0b001cd57776deaf0fc1268ac13bab72c50faafa
--- /dev/null
+++ b/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_MixTbRows.jmx
@@ -0,0 +1,209 @@
+
+
+
+
+
+ false
+ true
+ false
+
+
+
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+ 1
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ create database if not exists test precision 'ms'
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/rest/sql
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+ continue
+
+ false
+ looptimes
+
+ 100
+
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ cpu.usage_user.rows ${ts_counter} 22.345567 arch=x64 datacenter=us-west-1b hostname=host_5 os=Ubuntu16 rack=13 region=us-west-1 service=10 service_environment=staging service_version=${rows_counter} team=NYC
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/opentsdb/v1/put/telnet/test
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+ 1614530008000
+
+ 1
+ ts_counter
+
+ false
+
+
+
+ 1
+ row_count
+ 1
+ rows_counter
+
+ false
+
+
+
+
+
+
diff --git a/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_createStb.jmx b/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_createStb.jmx
new file mode 100644
index 0000000000000000000000000000000000000000..0a7a6aad4790bb0e8dca56f58eb8ef447ebe1f89
--- /dev/null
+++ b/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_createStb.jmx
@@ -0,0 +1,191 @@
+
+
+
+
+
+ false
+ true
+ false
+
+
+
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+ 1
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ create database if not exists test precision 'ms'
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/rest/sql
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+ continue
+
+ false
+ looptimes
+
+ 100
+
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ cpu.usage_user_${__Random(1,100000,)}_${__Random(1,100000,)}_${__Random(1,100000,)} 1626006833640 32.261068286779754 arch=x64 datacenter=us-west-1b hostname=host_5 os=Ubuntu16 rack=13 region=us-west-1 service=10 service_environment=staging service_version=0 team=NYC
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/opentsdb/v1/put/telnet/test
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+
+
diff --git a/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_createTb.jmx b/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_createTb.jmx
new file mode 100644
index 0000000000000000000000000000000000000000..6e7a8268f092c13ddf3e1896702aa23fe94221d0
--- /dev/null
+++ b/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_createTb.jmx
@@ -0,0 +1,191 @@
+
+
+
+
+
+ false
+ true
+ false
+
+
+
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+ 1
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ create database if not exists test precision 'ms'
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/rest/sql
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+ continue
+
+ false
+ looptimes
+
+ 100
+
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ cpu.usage_user 1626006833640 32.261068286779754 arch=x64 datacenter=us-west-1b hostname=host_5 os=Ubuntu16 rack=${__Random(1,100000,)} region=us-west-1 service=${__Random(1,100000,)} service_environment=staging service_version=${__Random(1,100000,)} team=NYC
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/opentsdb/v1/put/telnet/test
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+
+
diff --git a/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_insertRows.jmx b/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_insertRows.jmx
new file mode 100644
index 0000000000000000000000000000000000000000..eb86c0b2fc1b307fae1881f278fde9c5f0ed27b8
--- /dev/null
+++ b/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_insertRows.jmx
@@ -0,0 +1,200 @@
+
+
+
+
+
+ false
+ true
+ false
+
+
+
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+ 1
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ create database if not exists test precision 'ms'
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/rest/sql
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+ continue
+
+ false
+ looptimes
+
+ 24
+
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ cpu.usage_user.rows ${ts_counter} 22.345567 arch=x64 datacenter=us-west-1b hostname=host_5 os=Ubuntu16 rack=13 region=us-west-1 service=10 service_environment=staging service_version=0 team=NYC
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/opentsdb/v1/put/telnet/test
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+ 1614530008000
+
+ 1
+ ts_counter
+
+ false
+
+
+
+
+
+
diff --git a/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_jmeter_csv_import.jmx b/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_jmeter_csv_import.jmx
new file mode 100644
index 0000000000000000000000000000000000000000..672c377fcad2e988443efa28ae10c0b3c09152be
--- /dev/null
+++ b/tests/perftest-scripts/taosadapter_perftest/opentsdb_telnet_jmeter_csv_import.jmx
@@ -0,0 +1,203 @@
+
+
+
+
+
+ false
+ true
+ false
+
+
+
+
+
+
+
+ continue
+
+ false
+ 1
+
+ 1
+ 1
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ create database if not exists test precision 'ms'
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/rest/sql
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+ continue
+
+ false
+ looptimes
+
+ 100
+
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+ false
+ cpu.usage_user.rows ${ts_csv_count} 22.345567 arch=x64 datacenter=us-west-1b hostname=host_5 os=Ubuntu16 rack=13 region=us-west-1 service=10 service_environment=staging service_version=${row_csv_count} team=NYC
+ =
+
+
+
+
+
+
+
+ http://192.168.1.85:6041/opentsdb/v1/put/telnet/test
+ POST
+ true
+ false
+ true
+ false
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ Authorization
+ Basic cm9vdDp0YW9zZGF0YQ==
+
+
+
+
+
+
+ ,
+ UTF-8
+ import_file_name
+ false
+ false
+ true
+ shareMode.all
+ false
+ ts_csv_count,row_csv_count
+
+
+
+
+
diff --git a/tests/perftest-scripts/taosadapter_perftest/taosadapter_perftest.py b/tests/perftest-scripts/taosadapter_perftest/taosadapter_perftest.py
new file mode 100644
index 0000000000000000000000000000000000000000..480c25206065fc62a53156e899c213f8e2b487db
--- /dev/null
+++ b/tests/perftest-scripts/taosadapter_perftest/taosadapter_perftest.py
@@ -0,0 +1,224 @@
+from fabric import Connection
+from loguru import logger
+import shutil
+import os
+import time
+
+class TaosadapterPerftest():
+ def __init__(self):
+ self.ip = "192.168.1.85"
+ self.port = "22"
+ self.user = "root"
+ self.passwd = "tbase125!"
+ self.telnetCreateStbJmxFile = "opentsdb_telnet_createStb.jmx"
+ self.telnetCreateTbJmxFile = "opentsdb_telnet_createTb.jmx"
+ self.telnetInsertRowsFile = "opentsdb_telnet_insertRows.jmx"
+ # self.telnetMixJmxFile = "opentsdb_telnet_MixTbRows.jmx"
+ self.telnetMixJmxFile = "opentsdb_telnet_jmeter_csv_import.jmx"
+
+ self.jsonCreateStbJmxFile = "opentsdb_json_createStb.jmx"
+ self.jsonCreateTbJmxFile = "opentsdb_json_createTb.jmx"
+ self.jsonInsertRowsFile = "opentsdb_json_insertRows.jmx"
+ # self.jsonMixJmxFile = "opentsdb_json_MixTbRows.jmx"
+ self.jsonMixJmxFile = "opentsdb_json_jmeter_csv_import.jmx"
+
+ self.logfile = "taosadapter_perftest.log"
+ self.createStbThreads = 100
+ self.createTbThreads = 100
+ self.insertRowsThreads = 24
+
+ logger.add(self.logfile)
+
+ def exec_remote_cmd(self, cmd):
+ """
+ remote exec shell cmd
+ """
+ try:
+ c = Connection(self.ip, user=self.user, port=self.port, connect_timeout=120, connect_kwargs={"password": self.passwd})
+ result = c.run(cmd, pty=False, warn=True, hide=True).stdout
+ c.close()
+ return result
+ except Exception as e:
+ logger.error(f"exec cmd {cmd} failed:{e}");
+
+ def exec_local_cmd(self, shell_cmd):
+ '''
+ exec local shell cmd
+ '''
+ result = os.popen(shell_cmd).read().strip()
+ return result
+
+ def modifyJxmLooptimes(self, filename, looptimes, row_count=None, import_file_name=None):
+ '''
+ modify looptimes
+ '''
+ with open(filename, "r", encoding="utf-8") as f:
+ lines = f.readlines()
+ with open(filename, "w", encoding="utf-8") as f_w:
+ for line in lines:
+ if "looptimes" in line:
+ line = line.replace("looptimes", looptimes)
+ if row_count is not None:
+ if "row_count" in line:
+ line = line.replace("row_count", row_count)
+ if import_file_name is not None:
+ if "import_file_name" in line:
+ line = line.replace("import_file_name", import_file_name)
+ f_w.write(line)
+
+ def cleanAndRestartTaosd(self):
+ '''
+ restart taosd and clean env
+ '''
+ logger.info("---- restarting taosd and taosadapter ----")
+ self.exec_remote_cmd("systemctl stop taosd")
+ self.exec_remote_cmd("rm -rf /var/lib/taos/* /var/log/taos/*")
+ self.exec_remote_cmd("systemctl start taosd")
+ logger.info("---- finish restart ----")
+ time.sleep(60)
+
+ def recreateReportDir(self, path):
+ '''
+ recreate jmeter report path
+ '''
+ if os.path.exists(path):
+ self.exec_local_cmd(f'rm -rf {path}/*')
+ else:
+ os.makedirs(path)
+
+ def cleanLog(self):
+ '''
+ clean log
+ '''
+ with open(self.logfile, 'w') as f:
+ f.seek(0)
+ f.truncate()
+
+ def genMixTbRows(self, filename, table_count, row_count):
+ logger.info('generating import data file')
+ ts_start = 1614530008000
+ with open(filename, "w", encoding="utf-8") as f_w:
+ for i in range(table_count):
+ for j in range(row_count):
+ input_line = str(ts_start) + "," + str(i) + '\n'
+ ts_start += 1
+ f_w.write(input_line)
+
+ def outputParams(self, protocol, create_type):
+ '''
+ procotol is "telnet" or "json"
+ create_type is "stb" or "tb" or "rows"
+ '''
+ if protocol == "telnet":
+ if create_type == "stb":
+ return self.telnetCreateStbJmxFile, self.createStbThreads
+ elif create_type == "tb":
+ return self.telnetCreateTbJmxFile, self.createTbThreads
+ elif create_type == "rows":
+ return self.telnetInsertRowsFile, self.insertRowsThreads
+ else:
+ logger.error("create type error!")
+ else:
+ if create_type == "stb":
+ return self.jsonCreateStbJmxFile, self.createStbThreads
+ elif create_type == "tb":
+ return self.jsonCreateTbJmxFile, self.createTbThreads
+ elif create_type == "rows":
+ return self.jsonInsertRowsFile, self.insertRowsThreads
+ else:
+ logger.error("create type error!")
+
+ def insertTDengine(self, procotol, create_type, count):
+ '''
+ create stb/tb or insert rows
+ '''
+ self.cleanAndRestartTaosd()
+ jmxfile, threads = self.outputParams(procotol, create_type)
+ handle_file = str(count) + jmxfile
+ report_dir = f'testreport/{handle_file}'
+ self.recreateReportDir(report_dir)
+ shutil.copyfile(jmxfile, handle_file)
+ replace_count = int(count/threads)
+ self.modifyJxmLooptimes(handle_file, str(replace_count))
+ logger.info(f'jmeter running ----- jmeter -n -t {handle_file} -l {report_dir}/{handle_file}.txt -e -o {report_dir}')
+ result = self.exec_local_cmd(f"jmeter -n -t {handle_file} -l {report_dir}/{handle_file}.txt -e -o {report_dir}")
+ logger.info(result)
+ logger.info("----- sleep 120s and please record data -----")
+ time.sleep(120)
+
+ def insertMixTbRows(self, procotol, table_count, row_count):
+ self.cleanAndRestartTaosd()
+ local_path = os.getcwd()
+ jmxfile = f"opentsdb_{procotol}_{table_count}Tb{row_count}Rows.jmx"
+ import_file_name = f"import_opentsdb_{procotol}_{table_count}Tb{row_count}Rows.txt"
+ import_file_path = local_path + '/' + import_file_name
+ self.genMixTbRows(import_file_name, table_count, row_count)
+ report_dir = f'testreport/{jmxfile}'
+ self.recreateReportDir(report_dir)
+ if procotol == "telnet":
+ shutil.copyfile(self.telnetMixJmxFile, jmxfile)
+ else:
+ shutil.copyfile(self.jsonMixJmxFile, jmxfile)
+ self.modifyJxmLooptimes(jmxfile, str(int(table_count*row_count/100)), import_file_name=import_file_path)
+ logger.info(f'jmeter running ----- jmeter -n -t {jmxfile} -l {report_dir}/{jmxfile}.txt -e -o {report_dir}')
+ result = self.exec_local_cmd(f"jmeter -n -t {jmxfile} -l {report_dir}/{jmxfile}.txt -e -o {report_dir}")
+ logger.info(result)
+ logger.info("----- sleep 120s and please record data -----")
+ time.sleep(120)
+
+ # def insertMixTbRows(self, procotol, looptimes, row_count):
+ # self.cleanAndRestartTaosd()
+ # jmxfile = f"opentsdb_{procotol}_{looptimes}Tb100Rows.jmx"
+ # report_dir = f'testreport/{jmxfile}'
+ # self.recreateReportDir(report_dir)
+ # if procotol == "telnet":
+ # shutil.copyfile(self.telnetMixJmxFile, jmxfile)
+ # else:
+ # shutil.copyfile(self.jsonMixJmxFile, jmxfile)
+
+ # self.modifyJxmLooptimes(jmxfile, str(looptimes), str(row_count))
+ # result = self.exec_local_cmd(f"jmeter -n -t {jmxfile} -l {report_dir}/{jmxfile}.txt -e -o {report_dir}")
+ # logger.info(result)
+ # logger.info("----- sleep 120s and please record data -----")
+ # time.sleep(120)
+
+
+
+if __name__ == '__main__':
+ taosadapterPerftest = TaosadapterPerftest()
+ taosadapterPerftest.cleanLog()
+
+ logger.info('------------ Start testing the scenarios in the report chapter 3.4.1 ------------')
+ for procotol in ["telnet", "json"]:
+ logger.info(f'----- {procotol} protocol ------- Creating 30W stable ------------')
+ taosadapterPerftest.insertTDengine(procotol, "stb", 300000)
+ logger.info(f'----- {procotol} protocol ------- Creating 100W table with stb "cpu.usage_user" ------------')
+ taosadapterPerftest.insertTDengine(procotol, "tb", 1000000)
+ logger.info(f'----- {procotol} protocol ------- inserting 100W rows ------------')
+ taosadapterPerftest.insertTDengine(procotol, "rows", 1000000)
+
+ logger.info(f'----- {procotol} protocol ------- Creating 50W stable ------------')
+ taosadapterPerftest.insertTDengine(procotol, "stb", 500000)
+ logger.info(f'----- {procotol} protocol ------- Creating 500W table with stb "cpu.usage_user" ------------')
+ taosadapterPerftest.insertTDengine(procotol, "tb", 5000000)
+ logger.info(f'----- {procotol} protocol ------- inserting 500W rows ------------')
+ taosadapterPerftest.insertTDengine(procotol, "rows", 5000000)
+
+ logger.info(f'----- {procotol} protocol ------- Creating 100W stable ------------')
+ taosadapterPerftest.insertTDengine(procotol, "stb", 1000000)
+ logger.info(f'----- {procotol} protocol ------- Creating 1000W table with stb "cpu.usage_user" ------------')
+ taosadapterPerftest.insertTDengine(procotol, "tb", 10000000)
+ logger.info(f'----- {procotol} protocol ------- inserting 1000W rows ------------')
+ taosadapterPerftest.insertTDengine(procotol, "rows", 10000000)
+
+ logger.info(f'----- {procotol} protocol ------- Creating 10W stable 1000Rows ------------')
+ taosadapterPerftest.insertMixTbRows(procotol, 100000, 1000)
+
+ logger.info(f'----- {procotol} protocol ------- Creating 100W stable 100Rows ------------')
+ taosadapterPerftest.insertMixTbRows(procotol, 1000000, 100)
+
+ logger.info(f'----- {procotol} protocol ------- Creating 500W stable 20Rows ------------')
+ taosadapterPerftest.insertMixTbRows(procotol, 5000000, 20)
+
+ logger.info(f'----- {procotol} protocol ------- Creating 1000W stable 10Rows ------------')
+ taosadapterPerftest.insertMixTbRows(procotol, 10000000, 10)