在 python-influxDB-Grafana 堆栈中存储/显示每个时间戳的完整数据集
Posted
技术标签:
【中文标题】在 python-influxDB-Grafana 堆栈中存储/显示每个时间戳的完整数据集【英文标题】:Store/show complete dataset for each timestamp in python-influxDB-Grafana stack 【发布时间】:2020-04-17 23:17:29 【问题描述】:我正在设置一个 python-influxdb-grafana 堆栈来监控仪器。
目前,我能够收集数据,在 python 中处理它们,将处理后的输出发送到 influxdb,然后在 grafana 上显示。
现在我想知道是否可以在 grafana 中显示完整的最后一个数据集。
例如,我的仪器数据是高斯形的:类似于
[[-5., 0], [-4.5, 0], [-4., 0], [-3.5, 0], [-3., 0], [-2.5,
0.0175283], [-2., 0.053991], [-1.5, 0.129518], [-1.,
0.241971], [-0.5, 0.352065], [0, 0.398942], [0.5, 0.352065], [1.,
0.241971], [1.5, 0.129518], [2., 0.053991], [2.5, 0.0175283], [3.,
0], [3.5, 0], [4., 0], [4.5, 0], [5., 0]]
我可以拟合数据,例如获取 mu 和 sigma(本例中为 0 和 1),使用 influxdb python 库将它们发送到 influxdb,并在 grafana 中将它们显示为时间函数。
现在我想将整个数据集发送到 influxdb(例如每 10 分钟一个数据集)并在 grafana 中绘制它。理想情况下,在 grafana 上,我希望能够选择某个时间并绘制相应的高斯数据。
这可能吗?我不知道如何在 influxdb 数据库中存储这样一个“大”数据集,也不知道如何最终在 grafana 中绘制它。
【问题讨论】:
【参考方案1】:一种可能的方法是重新排列您的数据 - 而不是
timestamp + value=array of [x,y] pairs
为每个(时间戳、数据集)插入数据点序列:
时间戳,
x
作为标签,y
作为值
这样,您将在 influxdb 中拥有多个由x
标记的系列。
并在 Graph 面板中将 x 轴 Mode 选项设置为 Series
如果不同的x
值的数量足够小并且x
值的间距相等,则该图将看起来像高斯直方图。
这仍然不是一个通用且可扩展的解决方案。
【讨论】:
谢谢,这是一个暂时可行的解决方法。遗憾的是,对于 influxdb/grafana 上的列表没有更好的支持,但它对科学实验室的应用会产生很大的影响.. InfluxDB 作为数据存储有很好的替代品,但 Grafana 本身缺乏对多种科学数据可视化的支持。以上是关于在 python-influxDB-Grafana 堆栈中存储/显示每个时间戳的完整数据集的主要内容,如果未能解决你的问题,请参考以下文章
NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2游记