用于将批量注入KairosDB的Python脚本 - 仅插入第一个批量,其余被忽略

时间:2018-01-11 12:42:48

标签: python kairosdb

我编写了以下脚本,允许我设置传感器的数量和它们的批量插入量。 每个批量插入都有不同的纪元时间。 每个传感器插入物获得不同的值+不同的标签(临时)值。

Kairos版本:

root@ip-172-16-0-147:~# echo "version" | nc -w 30 localhost 4242
KairosDB 1.2.0-0.3beta.20171211170411

Scylla(Backend Storage)版本:

[centos@ip-172-16-0-128 ~]$ scylla --version
2.0.2-0.20171201.07b039f

问题: 只有第一个批量插入Kairos,其他批量只是被忽略,我无法弄清楚为什么。 关于为什么或如何更正脚本的任何想法都值得赞赏。

脚本:

import socket
import time
import random

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("[Kairos_IP]", 4242))

start_time = time.time()
lowerRange = 1
upperRange = 5
sensor_amount = 10
sensors = []
for x in range(lowerRange, upperRange):
    str=""
    curr_epoch = time.time()
    #curr_epoch = int(time.time() * 1000)
    time.sleep(1)
    for y in range(1,sensor_amount):
        statement = "put SENSOR_%d %d %d temp=%d\n" %(y,curr_epoch,random.randint(1,500),random.randint(1,500))
        sensors.append(statement)
        str+=(sensors[y-1])
        print statement
        s.send(str)
    print curr_epoch

print("--- %s seconds ---" % (time.time() - start_time))

输出示例:

put SENSOR_1 1515672684 240 temp=500
put SENSOR_2 1515672684 279 temp=403
put SENSOR_3 1515672684 380 temp=376
put SENSOR_4 1515672684 59 temp=38
put SENSOR_5 1515672684 405 temp=46
put SENSOR_6 1515672684 61 temp=255
put SENSOR_7 1515672684 19 temp=21
put SENSOR_8 1515672684 246 temp=80
put SENSOR_9 1515672684 289 temp=233
1515672684.72
put SENSOR_1 1515672685 58 temp=12
put SENSOR_2 1515672685 245 temp=199
put SENSOR_3 1515672685 492 temp=220
put SENSOR_4 1515672685 185 temp=432
put SENSOR_5 1515672685 235 temp=416
put SENSOR_6 1515672685 218 temp=297
put SENSOR_7 1515672685 378 temp=3
put SENSOR_8 1515672685 317 temp=397
put SENSOR_9 1515672685 103 temp=229
1515672685.72
put SENSOR_1 1515672686 482 temp=395
put SENSOR_2 1515672686 417 temp=7
put SENSOR_3 1515672686 285 temp=111
put SENSOR_4 1515672686 67 temp=322
put SENSOR_5 1515672686 402 temp=3
put SENSOR_6 1515672686 120 temp=410
put SENSOR_7 1515672686 232 temp=50
put SENSOR_8 1515672686 90 temp=263
put SENSOR_9 1515672686 315 temp=48
1515672686.72
put SENSOR_1 1515672687 181 temp=453
put SENSOR_2 1515672687 212 temp=414
put SENSOR_3 1515672687 116 temp=138
put SENSOR_4 1515672687 106 temp=118
put SENSOR_5 1515672687 92 temp=348
put SENSOR_6 1515672687 178 temp=361
put SENSOR_7 1515672687 148 temp=198
put SENSOR_8 1515672687 334 temp=79
put SENSOR_9 1515672687 191 temp=192
1515672687.72

1 个答案:

答案 0 :(得分:0)

发现问题 - 这是脚本的正确版本:

import socket
import time
import random

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("[Kairos_IP]", 4242))

start_time = time.time()

sensor_amount = 501
#sensors = []
#curr_epoch = int(round(time.time() * 1000))

for num_repeat in range(1,501):
        str=""
        time.sleep(2)
        curr_epoch = int(round(time.time() * 1000))
        print "Current time " + time.strftime("%X")
        print "======================"
        for y in range(1,sensor_amount):
                statement = "putm SENSOR_%d %d %d temp=%d\n" %(y,curr_epoch,random.randint(1,500),random.randint(1,500))
                print statement
                s.send(statement)

print("--- %s seconds ---" % (time.time() - start_time))