#python #python-3.x #influxdb
#python #python-3.x #influxdb
Вопрос:
Я пытаюсь перенести некоторые тестовые показатели в Influxdb следующим образом:
import random
import json
from datetime import datetime
from influxdb import InfluxDBClient
test_client = InfluxDBClient("localhost", 8086, "myuser", "mypassword", "test")
def generate_send_fake(measname):
fake_point = [{
"measurement": measname,
"fields": {"value": random.randint(0, 100)},
"time": json.dumps((datetime.now().replace(minute=0, second=0, microsecond=0)).isoformat()).replace('"', '')
}]
return fake_point
test_client.write_points(generate_send_fake('test_meas_one'))
test_client.write_points(generate_send_fake('test_meas_two'))
Этот код выполняется без ошибок / предупреждений. Однако, когда я пытаюсь проверить свои данные через консоль InfluxDB, я вижу следующее:
> use test
Using database test
> show measurements
name: measurements
------------------
name
test_meas_one
test_meas_two
> select * from "test_meas_one"
> select * from "test_meas_two"
Другими словами, точек данных нет, хотя сами метрики были созданы. Я использую Ubuntu 16.04 (64-разрядную версию) и Python 3.5.
Журнал InfluxDB пуст, если это имеет значение.
Ответ №1:
На самом деле была проблема с time
форматом поля. Я изменил его на следующее:
"time": datetime.utcnow().replace(minute=0, second=0, microsecond=0)
И затем все начало работать, как ожидалось.