Данные, записанные с правильной отметкой времени, не отображаются в Chronograf InfluxDB - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть встроенная плата, которая отправляет информацию от датчиков IMU вместе с отметкой времени, полученной от модуля RTC.

Отметки времени получены из RTClib Adafruit

В коде есть функция с именем unixtime(), которая предоставляет мне метки времени следующим образом:

1537466106 
1537466107
1537466109

Если я введу вышеупомянутые метки времени в Online Epoch Converter , он предоставит мне правильное время ссегодня.

Я отправляю эту информацию по HTTP, и информация сохраняется в InfluxDB при измерении imu следующим образом:

Запрос : SELECT * FROM imu LIMIT 100

time       eul_x  eul_y  eul_z  liac_x liac_y liac_z location nodeid status
----       -----  -----  -----  ------ ------ ------ -------- ------ ------
1537466106 273.25 -0.88  4.06   -0.06  -0.74  9.81   front    node1  0
1537466107 273.25 -0.88  4.12   -0.09  -0.87  9.72   front    node1  0
1537466109 273.25 -0.88  4.12   -0.09  -0.86  9.62   front    node1  0
1537466110 273.25 -0.88  4.12   -0.07  -0.84  9.67   front    node1  0
1537466111 273.25 -0.88  4.12   -0.1   -0.85  9.71   front    node1  0
1537466112 273.25 -0.88  4.12   -0.08  -0.86  9.74   front    node1  0
1537466113 273.25 -0.88  4.12   -0.04  -0.83  9.7    front    node1  0
1537466114 273.25 -0.88  4.12   -0.07  -0.84  9.7    front    node1  0
1537466115 273.25 -0.88  4.12   -0.07  -0.85  9.67   front    node1  0
1537466116 273.25 -0.88  4.12   -0.06  -0.85  9.67   front    node1  0
1537466117 273.25 -0.88  4.12   -0.06  -0.84  9.66   front    node1  0
1537466118 273.25 -0.88  4.12   -0.07  -0.83  9.66   front    node1  0
1537466119 273.25 -0.88  4.12   -0.09  -0.83  9.68   front    node1  0
1537466120 273.25 -0.88  4.12   -0.08  -0.84  9.7    front    node1  0
1537466121 273.25 -0.81  4.12   -0.08  -0.87  9.52   front    node1  0
1537466123 272.12 -0.81  -3.06  -0.15  0.54   9.74   front    node1  0

Теперь я запускаю экземпляр Chronograf на машине, чтобы визуализировать данные, полученные в вышеупомянутом измерении

Запрос Chronograf

Chronograf Query

Странно, но таблица постоянно показывает, что отметки времени указывают на эпоху 1970

Table shows wrong timestamps

Запросы к одному полюиз базы данных предоставляютs следующий вывод:

Query is correct but no result

Research

Я прочитал документы для InfluxDB, и у них есть метки времени для точности nanoseconds.

Напротив, отметки времени, о которых я упоминал выше, на самом деле верны, но почему Chronograf / InfluxDB не может правильно их понять?

case

Я получаю отметки времени как uint32_tиз RTClib, но я не уверен, как мне преобразовать его с точностью до наносекунд.

Я отправляю информацию о временной метке в виде строки, разумно ли объединять нули в строку?Если да, сколько нулей может потребоваться?

1 Ответ

0 голосов
/ 20 сентября 2018

Аппаратное обеспечение

Я использую модуль RTC DS3231 , который обеспечивает точность секунд . [1] .

Согласно документации для синтаксиса записи HTTP InfluxDB [2] :

Предполагается, что все метки времени Unixнаносекунды, если не указано иное

Поскольку информация, предоставляемая RTC, зависит от аппаратного обеспечения, я предполагаю, что точность изменить нельзя.(сомнительно)

Решение

Я использовал параметр precision в синтаксисе записи HTTP в моем Arduino Sketch следующим образом:

HTTPClient http;

       http.begin("http://" + _host + ":" + _port + "/write?db=" + _db + "&precision=s");
       http.addHeader("Content-Type", "text/plain");

       int httpResponseCode = http.POST(mes_dat);

Значение precision равноs (в секундах).Это сохранит информацию в InfluxDB правильным способом, а именно:

name: imu
time                eul_x  eul_y eul_z liac_x liac_y liac_z location nodeid status
----                -----  ----- ----- ------ ------ ------ -------- ------ ------
1537470381000000000 359.31 0     9.81  -0.05  -1.47  9.82   front    node1  0
1537470382000000000 359.37 0     10.81 -0.05  -1.72  9.75   front    node1  0
1537470383000000000 359.37 -0.06 10.81 -0.06  -1.75  9.71   front    node1  0
1537470384000000000 359.37 -0.06 10.81 -0.03  -1.75  9.67   front    node1  0
1537470385000000000 359.37 -0.06 10.81 -0.05  -1.76  9.73   front    node1  0
1537470386000000000 359.37 -0.06 10.75 -0.05  -1.76  9.72   front    node1  0
1537470387000000000 359.37 -0.06 10.75 -0.06  -1.77  9.64   front    node1  0
1537470388000000000 359.37 -0.06 10.75 -0.02  -1.76  9.61   front    node1  0
1537470389000000000 359.37 -0.06 10.75 -0.04  -1.76  9.61   front    node1  0
1537470390000000000 359.37 -0.06 10.75 -0.03  -1.82  9.61   front    node1  0
1537470391000000000 359.37 -0.06 10.63 -0.03  -1.78  9.72   front    node1  0
1537470393000000000 359.37 -0.06 10.63 -0.05  -1.78  9.63   front    node1  0
1537470394000000000 359.37 -0.06 10.63 -0.05  -1.76  9.76   front    node1  0

И визуализация в Chronograf идеальна со всеми вышеупомянутыми запросами в вопросе.

[1]Adafruit DS3231

[2] InfluxDB HTTP Write Documentation

...