Telemetry - Time-series data

遥测(Telemetry)系统的目标, 就是获取时序数据(Time-series data), 进而对其进行监测、处理、分析等。

概念 Concept

时序维度(Time-series axis, Time-series dimension)

被监测的目标。一个装置可以有多个 Time-series axis, 例如, 室内温度、湿度。

采样频率 ———— 采样周期

Time-series axis 的采集周期。

时间戳 Timestamp

采样的时刻, Unix timestamp格式, 精确到毫秒。

小技巧

  • Timestamp 可以由本地装置产生,也可由服务器产生(接收的时刻).

数据点 DataPoints

Time-series axis 每被采集一次,就获得一个 Data Point。

小技巧

  • 一次上传, 可以包括不同 Time-series axis 的多个 DataPoint.

  • 每个 DataPoint 都会在 Server 上保存,直至超过期限。

小技巧

  • Time-series data 对 Server 的网络带宽, CPU 处理能力和磁盘存储空间影响巨大。

  • 需要重点监控的数据,才以 Time-series data 的形式上传。

  • 根据实际需要,确定 Time-series axis 的采样频率,不可太短也不可太长。太短会消耗 Server 的带宽与处理能力, 并在Server形成大量冗余数据, 太长会造成 Server 无法针对 Time-series axis 做出实时响应。例如, 若烟感每10分钟采集一次到数据并上报, 会造成软大延时。

  • Time-series data 以 json 数据格式上传,故其 key 不应太长,会消耗带宽; 若 key 类似密文或数字,也会带来维护难度。

Working with telemetry data

See Working with telemetry data.

../_images/c6800c90061a9567231ee58bd15482ffe883b48ca48e4530fc8f13d7c2704457.svg

Data points

Improvement

  • 把 Alarm 机制由 Server 移到 Client/Deivce 端; 或者在 Client/Deivce 端加一个新的较弱 Alarm 机制; 或者只是为 Time-series data 加几个属性, 告诉 Client/Device 该如何更好的上传 Time-series data:

    • 最小值 Alram: 低于该值即刻upload

    • 最大值 Alarm: 高于该值即刻upload

    • 上一次 Upload 后的变化值 Delta: 差值大于该值即刻upload

    • 优势:

      • 减少数据冗余

      • 提升实时响应能力

    • 劣势:

      • 增加 Client/Deivce 端的复杂度