2016-03-21 5 views
0

Ich habe ein Skript für Test meiner influxdb:warum kann ich nicht die Daten herausfinden, welche innerhalb von 5 Stunden in influxdb einfügen

from influxdb import InfluxDBClient 
import time 
now_time = "2016-03-21 15:03:46" 
#now_time = time.strftime("%Y-%m-%dT%XZ",time.localtime()) 
json_body = [ 
{ 
"measurement": "info_cpu_load3", 
"tags":{ 
"host": "1", 
"cpu": "cpu0" 
}, 
"time": "%s"%time.strftime("%Y-%m-%d %X",time.localtime()), 
"fields": { 
"user":12, 
"iowait":15 
} 
} 
] 
client = InfluxDBClient('localhost', 8086, 'root', 'root', 'monitor') 

client.create_database('monitor') 

client.write_points(json_body) 

wenn ich die Linie Kommentar „Jetzt_Zeit = time.strftime (“% Y- % m-% dT% XZ ", time.localtime())" es funktioniert gut, aber kommentieren Sie diese Zeile, ich kann nichts aus den Datenbanken finden, warum?

+0

Wie versuchen Sie, die Daten abzufragen? Können Sie uns die genaue Abfrage geben? – pootzko

+1

thks.Ich habe das Problem gelöst, es verursacht von der Zeitzone, benutze mein System die CST-Zeitzone, so die Datenbank und Echtzeitunterschied von 8 Stunden –

+0

Sie sollten das als Antwort aufschreiben und es dann akzeptieren. Freut mich, dass du es repariert hast. :) – pootzko

Antwort

1

Ich finde es Ursache der Zeitzone, nach dem Durchsuchen der Influxdb-Dokumentation, bekomme ich, dass Influxdb nur Unterstützung UTC Zeit, so dass ich Lösung diese Frage durch eine Funktion für die lokale Zeit zu verwandeln, um Zeit zu schreiben.

import pytz 
def utctime(self,times): 
     ''' 
     transform local time to utc time 
     :param times: 
     :return: 
     ''' 
     try: 
      utc = pytz.utc 
      cmd = "cat /etc/sysconfig/clock|cut -d = -f 2" 
      out,err,stat = exec_shell(cmd) 
      now_utc = out.read().strip() 
      fmt = '%Y-%m-%d %H:%M:%S' 
      amsterdam = pytz.timezone(now_utc) 
      dt = datetime.datetime.strptime(times, fmt) 
      am_dt = amsterdam.localize(dt) 
      utc_time = am_dt.astimezone(utc).strftime(fmt) 
     except Exception,err: 
      utc_time = 1 
      dlog("utctime err:%s"%err) 
     return utc_time 
Verwandte Themen