代码之家  ›  专栏  ›  技术社区  ›  Shan-Desai askovpen

使用正确的时间戳写入的数据在Chronograf InfluxDB中无法可视化

  •  0
  • Shan-Desai askovpen  · 技术社区  · 6 年前

    我有一个嵌入式板,它发送来自IMU传感器的信息以及从RTC模块接收到的时间戳。

    Adafruit's RTClib

    unixtime() 它为我提供如下时间戳:

    1537466106 
    1537466107
    1537466109
    

    如果我在 Online Epoch Converter ,它为我提供了从今天起的正确时间。

    我通过HTTP发送这些信息,这些信息存储在xdb中 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 Query

    奇怪的是,表格总是显示时间戳指向1970年的纪元

    Table shows wrong timestamps

    从数据库中查询单个字段可提供以下输出:

    Query is correct but no result

    nanoseconds 精确。

    相反,我上面提到的时间戳实际上是正确的,但是为什么Chronograf/InfluxDB不能正确地把握它呢?

    案例

    我得到的时间戳是 uint32_t RTClib

    1 回复  |  直到 6 年前
        1
  •  0
  •   Community CDub    5 年前

    硬件

    我用的是 RTC模块,提供 精度 属于 . .

    根据xdb的HTTP写语法文档 [2] :

    由于RTC提供的信息是特定于硬件的,因此我假设精度不能更改((怀疑)

    解决方案

    我用了 precision 我的Arduino草图中HTTP写入语法中的参数如下:

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

    这个 精度 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's DS3231

    [2] InfluxDB HTTP Write Documentation