概念
此页面概述了Senfi概念。
Contents
测量,参数,标签
测量
Senfi处理时间序列中的数据。此时间序列中的每个记录包括:
- 指示何时采样数据的时间戳(以毫秒为单位)
- 一组固定的标签
- 一组固定的参数
所有这些记录都保存在称为测量的数据集中。
参数
参数指的是离散的读数或数据单位。它可以由传感器,设备或复杂的系统诞生/测量。参数的一个示例是温度(例如37度)。参数不一定要有关联的单位(例如摄氏度)。
标签
标签是样本的属性。标签通常被用作标识参数从何处获取的方法(例如,设备ID)。这对于标记正在发送的数据也很有用,以便稍后对数据执行操作,例如过滤。
案例
假设您家里有一个智能秤。表示设备时间序列数据的一种可能方法如下:
- 测量
- 智能秤
- 测量码
- iot_weighingscale_v1
- 数据
tm_source | weight_kg |
---|---|
xxxxxxxxxxxxx | 70.1 |
xxxxxxxxxxxxx | 70.4 |
xxxxxxxxxxxxx | 69.4 |
tm_source 表示何时读取读数。在这情况下,weight_kg是在每次获取重量读数所发送的参数。
如果有另一个人在使用同一个秤,那该怎么分辨读数?区分读数的一种方法是添加一个称为person的附加字段或标签:
tm_source | person | weight_kg |
---|---|---|
xxxxxxxxxxxxx | Sam | 70.1 |
xxxxxxxxxxxxx | Susan | 55.2 |
xxxxxxxxxxxxx | Sam | 70.4 |
如果屋内再添加了多个秤,那该如何分辨读数?我们可以通过添加另一个标签来区分读数:
tm_source | room | person | weight_kg |
---|---|---|---|
xxxxxxxxxxxxx | bathroom | Sam | 70.1 |
xxxxxxxxxxxxx | kitchen | Susan | 55.2 |
xxxxxxxxxxxxx | kitchen | Sam | 70.4 |
由此一来,我们最终得到的测量具有两个标签(room, person)和一个参数(weight_kg)。
一个更完整的示例如下:
tm_source | site_id | room | person | weight_kg | bodyfat | battery_level |
---|---|---|---|---|---|---|
xxxxxxxxxxxxx | 1547 | bathroom | Sam | 70.1 | 19.1 | 99 |
xxxxxxxxxxxxx | 1547 | kitchen | Susan | 55.2 | 15.3 | 54 |
xxxxxxxxxxxxx | 1547 | kitchen | Sam | 70.4 | 19.2 | 49 |
公认该示例是人为设计的,但它展示了数据是如何在Senfi中建模的。
传感器
与Prometheus或InfluxDB之类,仅处理时间序列中的时间数据的应用程序不同,Senfi将此类数据与现实世界中的实物相关联。
Senfi中的传感器代表感兴趣的实物/系统。传感器并不一定会发出任何测量,但若有发出,则可以是单个或多个测量。Senfi中有三种类型的传感器:
- 受托管传感器
- 发出至少一项测量的传感器
- 专用传感器
- 具有特殊性能的传感器,例如电梯控制器
- 非托管传感器
- 不会发出测量的传感器
站点
站点代表了实在放置传感器的地方。一个站点通常包含一个或多个建筑物。Senfi中的站点具有地理位置,并通常带有三维表示形式。用户可以选择使用内容管理系统来描绘建筑物轮廓并快速生成三维建筑模型,或上传使用建模软件(例如Autodesk 3DS Max,SketchUp等)建模的定制三维建筑模型。
site_id是与特定站点关联的独特整数。在将测量值发送到Senfi时,site_id可被用作标签,以便Senfi辨认传入测量值的目标是哪个站点。
规则,警报
在诸如智能建筑之类的操作环境中,对于组织而言,重要的是要能够跟踪并了解其资产及其周围发生的事情。通过监视和警报便可做到这一点。
传感器产生的测量结果包含参数和标签形式的数据。Senfi为用户提供了多种方法来监视参数和标签值,以监控需要注意的条件(例如,异常高的值,或者当值的组合指示出现故障时),并在情况发生时采取措施。
规则
用户可以利用Senfi的灵活规则引擎检测正在监视的系统中的异常并发出警报通知。
Senfi中的规则包括:
- 数据输入
- 条件
- 输出
- 触发事件
- 规则执行选项
例子
使用我们早前的智能秤测量案例,我们可以形成一个简单的规则,如下所示:
- 数据输入: iot_weighingscale_v1.battery_level
- 条件: < 20
- 触发事件: 电子邮件提醒更换电池
- 规则执行选项:立即执行(当有任何传入测量时,均值表示评估此规则)
计算的测量
通常,输入参数表示从传感设备读取的原始值(例如,门打开状态,门关闭状态)。为了能够得出更好的见解并制定更复杂的规则,能够从原始参数衍生出新的参数将会很有用。我们将这些新的参数称为衍生参数。一组衍生参数和关联的标签便形成了计算的测量。
与测量类似,计算的测量包括:
- 时间戳记
- 标签
- 参数 (衍生)
根据以上示例,计算出的度量值可以计算门保持打开状态的持续时间。这可以通过采用开门和关门度量之间的时间戳差异来完成。
组织,用户,工作群
组织代表负责管理使用Senfi的帐户的实体(例如,公司,个人)。一个组织包括至少一个具有管理员角色的用户。具有管理员角色的用户能够管理其他用户,包括用户帐户的创建/删除,用户角色分配等。
Think of access group as a subset of the assets under the organization. Users can be placed into access groups to have access to those assets. Currently assets that can be assigned to an access group are:
- user
- site
- rule