博客/工程

如何流式传感器数据与Grafana和InfluxDB

2019年11月6日6分钟

构建显示实时流数据并允许交互式查询的仪表板具有挑战性。在最近的在旧金山举行的InfluxDays大会Grafana实验室应用副总裁Rybob电竞频道an McKinley讨论了将实时数据集成到Grafana仪表板的新方法。

在加入Grafana之前,麦金利在一家可再生能源初创公司Natel energy工作,该公司生产水力涡轮机。在那里,他用Grafana和涌入来展示系统如何工作的概述

Natel Energy Grafana仪表盘
Natel Energy Grafana仪表盘

当操作人员可以访问显示当前运行状况的漂亮仪表板时,他们会很兴奋地看到更大时间范围内的行为。他们从一个仪表盘开始——每五秒刷新一次——然后缩小显示过去两周或过去两年的情况。

麦金利在演讲中解释说:“你必须非常小心地对待如何做到这一点。”“几年前,我对智能汇总和汇总数据查询感到非常兴奋。我想,‘涌入’将为我解决这一切问题。”和大多数人一样,他使用一系列的滚动来查询数据,并根据使用Flux的时间范围将其放入一个新的数据库。

但是,在控制端输入数据可能具有挑战性。这就是Grafana在控件中插入定制组件的能力派上用场的地方——无论是启动和停止按钮还是设置导叶角度。虽然这种方法有效,但很难维护,因为有太多的插件和太多的数据操作。

在这一点上,麦金利开始在一家住宅太阳能公司工作,在那里的目标是改变太阳能的销售方式,从一个建筑项目到一个家电销售,使用一个单一的系统。他们想用硬件来保证系统的安全,这样就不需要建筑检查员了。但是他们仍然希望拥有最低功耗的基础设施,并进行实时调试,并且不需要系统管理员。

他说:“当你有昂贵的硬件时,你可以把资源投入到关心数据库工作情况的人身上。”“但当你有廉价的资源时,没有人会去看它。”

他说,考虑到这一点,他的挑战变成了:“如何从这些非常便宜的设备上获得实时数据并实时查看,然后将汇总数据和关键事件发送到我们有资源进行汇总维护的云中。”

在这一点上,他开始努力了解Grafana如何支持查询和流媒体。他开始研究一系列数据库,从强大的涌入源到简单的CSV文件,如何协同工作。他想出的是一个简单的流媒体网站,可以编写CSV文件——正是在这一点上,他加入了Grafana实验室,专注于工业和分析解决方案。bob电竞频道bob彩票中奖计划

跨查询共享仪表板

在继续演示之前,McKinley指出,Grafana查询界面在10月初在幕后发生了变化。他说:“不再是简单的请求响应,而是请求数据……现在每个查询都返回响应的可观察对象……因此每个Grafana查询本质上都能够继续更新自己。”“我对此非常兴奋,因为这极大地改变了可能性。”

McKinley随后推出了一些新功能(一些UX团队甚至还没有看到的功能!)他首先在Grafana中创建了一个新的仪表板,并添加了一个查询来收集最后一分钟的数据。

增加查询功能,收集最近一分钟的数据
增加查询功能,收集最近一分钟的数据

但在图表显示之后,就有了如何处理滚动的问题。

因此,麦金利增加了一种新的数据源,可以在名为“从时间开始”的下拉菜单中访问。使用它,查询将切换到在指定的时间内运行。但是现在您还可以缩小并运行另一个查询。

从时间开始添加
从时间开始添加
运行另一个查询
运行另一个查询

他说:“Flux和Chronograph的有趣之处在于……如果你知道你在看什么,你就不会真的想让人们创建查询。”“你想知道自己在做什么,而这些问题在不同分辨率下是不同的。”bob彩票中奖计划

导入直播数据

但当涉及到直播数据时,情况似乎略有不同。麦金利解释说:“事件来了,我们不需要通过查询来得到完整的响应,我们只是在事件来的时候得到它们,然后把它们加起来,就可以看到实时的信息流。”为了处理这些数据,他添加了一个查询,将时间设置为运行到“现在”,以阻止流信息进入。

Grafana确实有一个鲜为人知的特性,允许混合数据源。他说:“这样,每次添加查询时,还可以指定要访问哪个数据库。”“因此,这是一种将所有内容放在同一个面板上,用于同一个查询,并访问多个数据板的方法。”

多查询仪表板
多查询仪表板

评估结果

现在的挑战是显示部分数据,而不必返回并重新构建所有查询。相反,麦金利增加了一个衡量标准,以参考使用与以前相同的结果的数据。他说:“所以现在我要把结果广播给多个小组。”“这不是一个新问题。从本质上讲,当事情被询问时,结果会被发送到两个面板。”

“我们建立了一个复杂的查询想法,可能会一直放大,”他继续说,并指出web套接字正在发生变化,有一个来自涌入的查询和几个不同的滚动需要考虑。这些很难用一个查询来创建,而你可以用模板变量来表示各种各样的变化,”他说。“但总的来说,它也有点不稳定。”

因此,他复制了一份数据,并添加了一个条尺,现在显示的结果与输入的完全一致。“你必须操纵你的查询,以得到你想要看到的确切结果,”他补充说。“现在我得到的数据与我一开始设置多个分辨率时过于复杂的查询相同。bob彩票中奖计划我在仪表板上重复使用了相同的工作,这样它们就不像过去那样麻烦了。我还允许在这些东西之间进行更多的流动交互,这样我们就可以在数据库存在时利用它的力量,但也允许更低的资源数据库在同一空间发挥作用。”

当测量组件被释放时,就不需要复合面板了。他说:“现在,如果我想重复使用它们,我可以把一个条形规放在一个规旁边,就像一个程序员一样使用它。”“但你真正想做的是避免第二个问题。你可以通过配置查询并构建多个面板来使用它。”

工业空间的未来整合

“Grafana在DevOps故事上投入了大量精力和精力,而我更关注的是我们如何在工业领域生存,这需要实时、即时的反馈,以及你和SCADA系统之间的步骤最少,”McKinley总结道。“这些是我感兴趣的问题类型。”