需要压测influxdb的写性能
行协议数据
行协议数据时间可以不填,默认为当前时间
指标集名称,标签键=标签值,标签键2=标签值2 指标名=指标值,指标名2=指标值2 时间
例子:
cpu,host=jydubuntu,os=linux free=200i,num=1 1607085812754755000
准备数据样例如下:
每一行作为一个数据包(在influxdb中,该行作为一个数据点)
DDD1,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true DDD2,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true
csv数据文件配置
看请求内容,已经达到我的要求
接下来扩展请求内容,每行包含多个数据点,数据点之间需要有换行符(\n),才能被解析
准备数据如下,注意每一行我在中间都添加了\n
DDD1,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true\nDDD2,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true DDD3,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true\nDDD4,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true
看请求内容,并没有达到我的要求,只发了一条数据
这样好了,我把数据写成一行,分割符换个其它的字符串,然后每个请求内容\n还是保持不变
这是一行数据,通过AAAAAAAA分割,那么就是两条数据,
每条数据包含两个influxdb的点,通过\n分割
DDD1,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true\nDDD2,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=trueAAAAAAAADDD3,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true\nDDD4,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true
再看看请求,分割是正常的,但是我理想中这个\n是要换行数据的,但实际没有换行,还是不能行通
换种思路,数据还是多行,默认分割还是用\n,那就把数据点的分割符换成其它字符(AAAAAAAA)8个大写的字符
DDD1,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=trueAAAAAAAADDD2,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true DDD3,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=trueAAAAAAAADDD4,tag1="标签1",tag2=t2,tag3=t3 field1=20i,field2=30,field3="中国",field4=true
增加前置处理器试试,这里把AAAAAAAA替换成\n
String data=vars.get("data"); data=data.replaceAll("AAAAAAAA","\n"); vars.put("data",data);
看请求内容,是符合我要求的