2017-03-08 16 views
0

私はライブストリームからビットレートをフィルタリングし、以下の出力を得ました。私はPythonでAPIを構築し、継続的なデータを流入させる必要があります。これは、python api.pyのように監視する必要があります。 python influx.pyしかし、私はこの出力をinfluxdbに保存できません。必要な場合は、私のAPIコードを表示することができます。influxdbへのビットレートと時刻

Click here to show output to be stored in influxdb

#!usr/bin/python 

import sys 
import datetime 
from influxdb import InfluxDBClient 
from influxdb.client import InfluxDBClientError 
from influxdb import DataFrameClient 
import os 
import time 

client=InfluxDBClient('localhost',8086,'admin','admin',database='stackanm') 
client.create_database('stackanm') 
def store(bitrate,time): 
     json=[ 
       { 
       "measurement":"bitrates", 
       "tags":{  
         "time":time, 
       "fields":{ 
       "bitrate":bitrate 
         }    
     } 
     } 
     ] 
     client.write_points(json,time_precision='u') 


f = os.fdopen(sys.stdin.fileno(),'r',0) 
for line in f: 
    elements = line.strip().split() 
    if len(elements) == 1: 
    bitrate = elements[0] 

     unixtime = elements[1].split('.') 
     stdtime = datetime.datetime.utcfromtimestamp(long(float(unixtime[1]))).strftime('%Y-%m-%dT%H:%M:%S') 
     influxtime = ".".join([stdtime,unixtime[1]]) 
     store(bitrate,float(elements[1]),influxtime) 

答えて

0

あなたはおそらく、今ではこれを解決したが、私はちょうどそれを偶然見つけ。

時間がタグとして表示されるはずですか?

私は最近、Pythonとinfluxdbのものに取り組んできましたが、その時はJSON本体のタグの外にあるようです。

"points": [ 
     { 
      "measurement": "cpu_load_short", 
      "tags": { 
       "host": "server01", 
       "region": "us-west" 
      }, 
      "time": "2009-11-10T23:00:00Z", 
      "fields": { 
       "value": 0.64 
      } 
     } 
    ] 
+0

ええ、私はタグを使用しますが、あまりにもinfluxdbにこれらのライブストリームを送信し、それらをプロットできない:と同様に

関連する問題