写点什么

Vivint 大规模 IoT 部署的指标收集

  • 2018-04-18
  • 本文字数:1337 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Vivint 工程团队构建了自己的指标收集平台,用于收集和分析他们部署的设备上的指标。他们之所以编写自己的系统是希望能够只存储聚合数据,并集中精力分析这些数据,这是通过Rothko 项目实现的。

Vivint 是一家智能家居设备提供商。Rothko 的基本设计决策不同于 Graphite、OpenTSDB 等系统的地方在于,它存储聚合数据,而不是每项服务的数据点。他们这样做是因为他们有意识地对不存储每个数据点和仍然具备精准定位问题的能力进行了权衡。同时,用于统计分析的数据不能丢失此类分析所需要的任何关键特征。

Rothko 可以提供指标的总体分布并分析它们。鉴于没有存储单个的指标,团队是否遇到过单个设备需要诊断的情况?InfoQ 采访了 Vivint 软件工程师 Jeff Wendling ,了解更多情况以及 Rothko 的架构:

事实上,我们不会存储单个的数据点。这可以通过两个方法解决。一个是,我们可以简单地存储最小值和最大值以及数据来源,我们就是这样做的。那有助于我们发现最显著的异常。另一个是,考虑到每种设备大约每 30 分钟发送数据,我们有一个“数据流入口(firehose)”,让我们可以接入数据,筛选出特定的指标或设备等等。假如它还是发送,我们通常就可以找出是哪个设备。当然,这两个方法并不能保证我们可以确定问题,但是,我们只需要付出 20% 的努力就得到了一个廉价而便捷的 80% 的解决方案,这符合 Rothko 的原则。

通常,时间序列数据有类似标签这样的元数据,可以存储类似应用程序名或数据中心位置这样的额外属性,在分析过程中可以用它们进行逻辑分组。Vivint 的数据也是这样吗?Wendling 回复说:

我们只会向上发送一个随机的实例 ID,这目前只是一个非结构化的字节切片。理论上讲,你想发送什么,就可以向上发送什么。考虑到我们监控的设备大部分都是客户家居用的廉价设备,它们没有配备任何 GPS 设备,但是,可以通过 IP 得出颇为接近的定位。

Rothko 的架构中包含一个数据库实现,为每个指标分配数量可配置的平面文件,使用 mmap 写入和读取。它还包含一个基于 Graphite 有线协议的指标接收实现,一个近似的分位数略图用于聚合数据,一些 API 端点用于检索数据、渲染图像,以及一个前端 UI,方便人们使用。数据可以从设备安全地发送到Rothko 端点。

Wendling 说,“我们的设计一直保持可插拔”,因为“有许多相互矛盾的计算标准和不同的工作负载。例如,在内部,我们就有自己的插件,用于从我们自定义的有线协议中读取指标。我们的设计让插件编写很容易,而且使用一个 toml 文件即可完成配置。甚至是日志和进程内部指标收集都可以轻松替换成任何你想要的东西。”

按照设计,Rothko 用来处理大量实例的少数指标。目前,它处理大约 5 万个指标,使用 500MB 内存在大约 50 秒内完成磁盘刷新。据 Wendling 介绍,刷新每 10 分钟一次,因此“应该很容易处理 50 万个指标”。它部署在单个实例上,目前尚没有实现像横向切片这样的扩展策略的需求。

有人问,Vivint 的团队是否也使用了什么预警机制,Wendling 答复说,他们不那样做,而是要更多地关注控制面板。Rothko 是用 Go 编写的开源项目,托管在Github 上

查看英文原文: Metrics Collection from Large Scale IoT Deployments at Vivint

2018-04-18 19:001343
用户头像

发布了 1008 篇内容, 共 428.7 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

一周信创舆情观察(8.30~9.5)

统小信uos

开源应用中心|动手自建一个超高度自由的个人知识库,原来这么容易!

开源

前端技术概览

数据库 大数据 时序数据库 tsdb 数据智能

联想新IT引擎引领智能化变革,助力“中国力量”更加强大

科技范儿

面对面小程序开源

OpenIM

App 不想被“点名”,mPaaS 隐私合规检测为开发者护航数字生态建设

蚂蚁集团移动开发平台 mPaaS

移动开发 mPaaS 监管合规 隐私安全

【墨天轮专访第四期】华为云GaussDB苏光牛:发挥生态优势,培养应用型DBA

墨天轮

数据库 华为云 GaussDB

会员业务基于Cloud KMS的数据安全应用

爱奇艺技术产品团队

数据安全法 Cloud KMS

数据脱敏是什么意思?有什么好处?

行云管家

数据库 数据安全 数据脱敏 数据库安全

大公司运维监控怎么做?从哪些方面考虑?

行云管家

云计算 运维 运维监控 运维审计 数据监控

Tapdata Real Time DaaS 技术详解 PART I :实时数据同步

tapdata

守护油田安全,EMQ X 在石油石化危化品监测管理中的应用

EMQ映云科技

物联网平台 物联网 IoT 边云协同 emq

亚信科技AntDB数据库国产化进程加速,计费上云再下一城

亚信AntDB数据库

实践案例 9月日更

阿里后端优化这么恐怖?看完这20W字Java性能实战经验手册,最少P7

Java 阿里巴巴 面试 性能调优 金九银十

读了这篇SpringBoot底层原理让我在阿里成功涨薪40%,感谢

Java 编程 面试 涨薪 阿里

阿里官方保姆级Java技术图谱发布!够学到春节了,赶紧收藏!

Java 面试 阿里 大厂 金九银十

Chrome前端调试技巧分享

华为云数据库小助手

大前端 调试 GaussDB 华为云数据库

被面试官问懵:TCP 四次挥手收到乱序的 FIN 包会如何处理?

华为云开发者联盟

TCP 网络 报文 挥手 FIN

"云智一体"全场景智能视频技术与应用解析白皮书下载申请

百度开发者中心

白皮书 云智一体 智能视频

MESI缓存一致性协议

Java 架构 面试 后端

了解JDBC层之QueryDSL

邱学喆

QueryDSL SQLQueryFactory

京东云金秋上云特惠进行中!扫码参与活动

京东科技开发者

云计算 云主机 大促

iOS 屏幕旋转的实践解析

ZEGO即构

ios 音视频 屏幕旋转

想要入职阿里P6?最少啃完这本500页Java并发多线程源码笔记

Java 编程 面试 多线程 阿里

让 Serverless 应用开发更简单,Serverless Devs 2.0 全新发布

Serverless Devs

开源 Serverless

首场“说透数字化转型专题讲座”将于 9 月 15 日在天津举办

InfoQ 天津

浪潮云洲发布标识解析数据网关产品

工业互联网

交易所刷量机器人定制开发案例(源码搭建)

量化系统19942438797

交易所 做市机器人 自动刷量机器人

Elasticsearch 原理解析(介绍)

ZzC🍖

搜索引擎 elasticsearch

百度智能云开物工业互联网平台解决方案亮相2021服贸会成果发布会

百度大脑

人工智能 服贸会

如何给技术部员工做考核?

石云升

团队管理 管理 引航计划 内容合集 9月日更

Vivint大规模IoT部署的指标收集_DevOps & 平台工程_Hrishikesh Barua_InfoQ精选文章