繁体   English   中英

RRD工具结构和理解

[英]RRD Tool Structure and understanding

我目前正在监视5座不同的建筑物,每座建筑物大约有300个房间。 每个房间都有4个传感器,其中三个用于监视房间不同点的温度,另一个用于检测房间消耗的功率(千瓦)。

我目前每15分钟轮询一次每个传感器,每天产生576,000个条目,我监视的建筑物数量很快就会增加。

我目前将所有信息存储在MySQL中,每种传感器类型都有一个MySQL表,因此这些表分别命名为“ power”,“ temp1”,“ temp2”,“ temp3”。 这些表中的列是“ id”,“ building_id”,“ epoch”,“ value”。

然后,我使用这些数据通过Chart.js库生成图表,并统计诸如在特定时间段内每座建筑物的用电量等统计信息,我使用PHP来完成所有这些工作。

我不认为我的MySQL数据库能够在不进行严重扩展和群集的情况下解决该问题

我需要能够查看5年的历史数据,尽管在一段时间后可能会丢失一些粒度。

我被告知,RRD也许能够解决我的问题,并对此进行了一些研究,但仍然存在一些问题。

它是否仍允许我使用Chart.js库专门创建自己的图形? 如果我可以从RRD获取时间/值JSON数据,那应该没问题。

我还需要创建多少个不同的RRD文件? 每个建筑物需要一个吗? 每间房? 每个传感器? 它仍然易于管理。

我有一些PHP脚本,它们每隔15分钟运行一次,这些脚本使用SNMP从传感器中提取数据,然后将数据插入MySQL(如果我可以使用相同的脚本也可以插入RRD中),从我所看到的来看,这也很棒您可以使用PHP插入RRD,这样就可以了。

编辑:我目前正在阅读http://michael.bouvy.net/blog/zh-CN/2013/04/28/graph-data-rrdtool-sensors-arduino/ ,它已开始回答我的一些问题。

您是否拥有一个具有6000个度量标准的RRD文件或具有1200个度量标准的5个文件等,取决于您如何管理数据。

首先,您不应将样本在不同时间点到达的指标分组在一起。 因此,如果您一次采样一个房间,则每个房间可能应该有一个RRD文件(其中包含4个指标)。 这将取决于管理传感器的方式。 如果您在每个房间或每个建筑物中都有一个设备。 无论您有一个文件还是一千个文件,都可以检索数据并对其进行图形处理(尽管在最新版本的RRDTool中,“千”方案的工作效果更好)。

其次,您是否可能添加新的数据点(IE,建筑物或房间)? 您不能(轻松)将新指标添加到现有RRD文件中。 因此,如果您希望将来增加一栋新建筑物,或者要增加或删除一个房间,那么也许每个建筑物一个RRD或每个房间一个RRD会更好。

如果没有更多信息,我想您最好每间房间一个RRD(包含4个指标)并分别更新它们。 根据建筑物和房间ID命名文件,根据Epoch,它们可以保存功率和3个温度值。

对于作图,RRDTool当然能够通过直接访问数据来创建自己的图。 但是,如果您要提取数据并将其自己放入图形中,则可以这样做; Xport函数将允许您提取必要的数据点(可能是来自多个RRD文件并具有聚合),然后可以将这些数据点传递到您选择的图形库。 如果您需要原始数据,则还有Fetch函数。

如果您的数据采样间隔为15分钟,请确保正确设置RRD间隔,心跳和RRA。 特别是,RRA将指定执行什么聚合以及将数据以更高的粒度保留多长时间。 RRA通常应与您希望以图形方式绘制数据的分辨率相对应(这就是为什么人们通常使用5min / 30min / 2h / 1d的原因,因为它们与400px宽度的每日,每周,每月和每年的图表都很好地对应)

您可能想看一下时间序列数据库,并测试一些具有内置可视化功能的系统,这是一个允许您执行聚合和PHP包装程序的API。 时间序列数据库经过优化,可有效存储带时间戳的数据,并具有用于时间序列转换的内置功能。

https://zh.wikipedia.org/wiki/Time_series_database

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM