亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 物联网技术

Connext DDS 的 Telegraf 插件:使用 DDS 和 InfluxDB 构建时间序列监控系统

几个月前,我写了一篇关于监控 IIoT 系统的博客。该博客主要涵盖了使用 Connext DDS 和时间序列数据库的监控架构的概述。此博客是该讨论的延续,提供了架构关键元素的新细节。

为了演示监控架构,来自 InfluxData 的 InfluxDB 被用作监控的时间序列数据库。在做这项工作时,我发现 Connext DDS 的 Telegraf 输入插件是实现架构的关键缺失元素。所以我为Connext DDS开发了一个输入插件的原型。今天,我很高兴将它作为 RTI Labs 的最新项目与您分享——这是一个免费程序,可为客户提供早期访问新 RTI 技术的机会,包括软件项目、下载和工具。

在这篇博客中,我将分享 Telegraf 插件的内部结构和示例。但首先,让我们回顾一下 Telegraf 的基础知识。

什么是 Telegraf?

Telegraf 是 InfluxData 时间序列平台的一部分,是收集、处理、聚合和写入指标的代理。它支持插件系统,因此开发人员可以轻松地为指标添加插件。它包括四种不同的插件类型:

  • 输入插件 从系统、服务或第 3 方 API 收集指标。
  • 处理器插件 转换、丰富和/或过滤指标。
  • 聚合器插件 创建聚合指标(例如平均值、最小值、最大值、分位数等)。
  • 输出插件 将指标写入不同的目的地。

Telegraf 的主要组件是什么?

Telegraf 使用 InfluxDB 的指标数据模型作为内部表示。数据模型包含四个主要组件:

  • 测量名称 是指标的命名空间。
  • 标签 是用于识别指标的键/值对。
  • 字段 是指标数据的键/值对。
  • 时间戳 是与字段关联的日期和时间。

Telegraf 支持多种输入数据格式,以将不同格式的指标解析为内部表示。解析度量后,它们存在于内存中,并将转换为具体表示,通过输出插件传输。为此,它还支持多种序列化格式。目前Connext DDS的输入插件只支持JSON输入数据格式。

Telegraf 的配置文件是使用 TOML 编写的,它包括代理的配置(例如,数据收集间隔和刷新间隔)和插件。可以在此处找到详细说明。对于 Connext DDS 插件,它需要一个额外的 XML App Creation 配置文件。它确实包括 Telegraf 输入插件使用的类型、主题和 DDS 实体的配置。

Connext DDS 的 Telegraf 输入插件是如何开发的?

如上所述,Telegraf 提供了一个插件系统,可以让开发人员为指标添加插件。开发输入插件,需要实现输入插件接口中定义的以下函数。

如果输入插件是服务插件,则需要实现输入服务插件接口中定义的以下功能。服务插件与常规插件的不同之处在于它在 Telegraf 运行时运行后台服务。

Connext DDS 的输入插件是一个服务插件,因为它在收到 DDS 数据时将指标推送到 Telegraf,而不是按配置的时间间隔拉取指标。因此,它运行一个后台线程,通过 WaitSets 检查 DDS 数据的到达。如果您对其实施方式感兴趣,请在此处查看。

带有示例配置的演示

与 Telegaf 合作的最大好处是它提供了一堆开箱即用的插件。拥有 Connext DDS 的输入插件后,您可以轻松选择现有插件以将它们应用于传入的任何 DDS 数据。我将介绍 Connext DDS 和其他插件的输入插件的示例命令和配置。你可以在 GitHub 上找到我在这里使用的示例配置文件。

可以通过 Telegraf 生成默认配置文件。

$ telegraf config> telegraf.conf

要生成具有特定输入和输出的文件,您可以使用 “--input-filter”“--output-filter” 旗帜。以下命令将生成一个默认配置文件,其中包含 Connext DDS 的输入插件和文件的输出插件。

$ telegraf --input-filter dds_consumer --output-filter 文件配置> dds_to_file.conf

之后,您可以使用生成的配置文件运行 Telegraf。

$ telegraf -config dds_to_file.conf

Connext DDS的输入插件默认配置如下:

[[inputs.dds_consumer]] 
## XML 配置文件路径
config_path ="example_configs/ShapeExample.xml"

## 来自 XML 描述的 DDS 参与者的配置名称
participant_config ="MyParticipantLibrary::Zero"

## 来自 XML 描述的 DDS DataReader 的配置名称
reader_config ="MySubscriber::MySquareReader"

## 标签键是一个应该作为标签添加的键的数组。
tag_keys =[“颜色”]

## 覆盖测量的基本名称
name_override ="形状"

##要消费的数据格式。
data_format ="json"

默认配置将使用位于 “example_configs/ShapeExample.xml” 的 Connext DDS 的 XML 配置文件 并创建一个参与者 (MyParticipantLibrary::Zero ) 和一个阅读器 (MySubscriber::MySquareReader ) 定义在配置文件中。目前,它只适用于 JSON 格式,所以 “data_format” 配置应设置为 “json” .

XML 中定义的阅读器订阅名为 “Square” 的主题 并使用 RTI Shapes 演示的类型。因为Shapes demo的类型使用color属性作为key,所以添加了color属性作为标签。默认情况下,测量名称成为服务输入名称的名称 (dds_consumer 插件)。如果要使用不同的测量名称,可以使用 “name_override” 设置 配置。

要测试此配置,您可以运行 RTI Shapes 演示并发布 Square 主题数据。发布 Square 后 主题数据,您可以在 “/tmp/metrics.out” 查看收到的 DDS 指标 ,这是文件输出插件的默认路径。

如果要将相同的 DDS 数据发送到不同的输出插件(如 InfluxDB),只需运行以下命令即可为 InfluxDB 生成配置文件:

$ telegraf --input-filter dds_consumer --output-filter 文件配置> dds_to_influx.conf 

$ Telegraf -config dds_to_influx.conf

Telegraf 提供了几个聚合和处理插件。您可以在 Telegraf 配置文件中添加以下行,以将您的指标与基本统计数据(例如,最小值、最大值、平均值、标准差)进行聚合。它将每 10 秒汇总一次包含基本统计信息的指标。

[[aggregators.basicstats]] 
## 刷新和清除聚合器的时间段。
周期 ="10s"
## 如果为 true,原始指标将被聚合器删除,并且不会发送到输出插件。
drop_original =false

您可以使用处理器插件重命名字段。此示例交换 “x”“y” 形状的坐标。

[[processors.rename]] 
[[processors.rename.replace]]
字段 ="x"
dest ="y_trans"
[[processors.rename.replace]]
字段 ="y"
dest ="x_trans"

这些是 Telegraf 和 Connext DDS 插件的一些有趣功能和内部结构。我希望你会发现它们对使用 DDS 和 InfluxDB 构建时间序列监控系统很有用。

在此处阅读有关 Telegraf 代理的第一个 DDS 插件的官方公告。

虽然我介绍了一些特定的插件作为示例,但还有许多其他插件可以与您的 DDS 系统配合使用。要使用 Connext DDS 插件,请查看以下 GitHub。 https://github.com/rticommunity/telegraf

请让我知道您对 RTI 实验室的最新交付成果有何看法。如果您有任何意见、疑问或问题,请访问 RTI 社区论坛或直接在 GitHub 上创建问题。


物联网技术

  1. Connext DDS 和工业物联网:需要了解的前 5 件事
  2. 宣布针对 Connext DDS 的最新 RTI Perftest
  3. 这就是为什么每个人都将 RTI Connext DDS 用于自动驾驶汽车的原因
  4. DIY:HomeBrew 的温度监控和调节
  5. 持续监控系统适合您吗?
  6. 思科推出适用于 IT 和 OT 的物联网远程监控解决方案
  7. 基于物联网的环境监测系统对医疗保健行业有何益处?
  8. 用于资产状态监测的工业 4.0:意义和好处
  9. 通过物联网驱动的气体监测解决方案满足工业需求
  10. 通过少量物联网改善牛奶储存:牛奶液位监测系统
  11. 腐蚀性和爆炸性液体的液位监测解决方案
  12. 通过中央控制器和远程监控优化能源效率