首页 > 解决方案 > 从 Pixel Monitor 抓取数据

问题描述

我的本地网络上有一个 Optiheat 1-18es 热泵设备(德语:overview),我可以通过其 IP 地址对其进行监控。我以前从未使用过数据抓取,所以我不熟悉 html 结构和抓取过程。我想知道是否可以从这个设备中抓取变化的值并将它们输入到我的 influxdb 数据库中?我读到应该首先将抓取的数据放入prometheus数据格式。

这是IP地址界面的截图: 在此处输入图像描述

我可以单击箭头并转到不同的窗口以查看其他数据点。

从网络选项卡,我收到以下信息:

在此处输入图像描述

标签: pythonhtmlweb-scrapingprometheusinfluxdb

解决方案


请在您的问题中包含设备的更多详细信息,以便熟悉它的其他人可以提供更准确的答案。

为了从设备中抓取指标,您需要有一个 HTTP 端点(您有这个),可以以 Prometheus 的Exposition 格式抓取指标数据(这仍未得到答复)。

从您的屏幕截图中不清楚,但我假设您有一个基于浏览器的应用程序,您指向您的设备并查询它,将指标(温度等)返回到基于浏览器的应用程序,然后应用程序将结果呈现在您显示的 HTML(可能)设备本身正在生成您显示的 HTML 输出。

在前一种情况下(设备与应用程序对话并向其发送数据),您有两种可能性,设备是:

  1. 使用某些专有协议(可能)与基于浏览器的应用程序交谈。
  2. 已经(!)使用正确格式的 Prometheus 指标与设备通信(不太可能)。

无论哪种情况,使用浏览器的开发工具,您是否能够监控浏览器和设备之间的网络流量?您能否在问题示例中包含正在传输的 URL、请求和响应?

如果设备使用专有协议,您可以为设备编写自己的导出器。这会将设备的专有协议转换为 Prometheus Exposition 格式。然后,您将抓取您的导出器以读取指标。很可能有人已经对该设备进行了逆向工程,并且存在这样的出口商。

如果设备已经使用 Prometheus 的 Exposition 格式,我希望这会记录在设备的网站上,因为这将是一个有用的客户功能,我希望制造商希望将这一点告诉其客户。


推荐阅读