写点什么

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:001381
用户头像

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

关注

评论

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

C 语言内存布局深度剖析:从栈到堆,你真的了解吗?

不在线第一只蜗牛

C#

通义灵码 Rules 来了:个性化代码生成,对抗模型幻觉

阿里巴巴云原生

阿里云 云原生

通义灵码 Rules 来了:个性化代码生成,对抗模型幻觉

阿里云云效

阿里云 云原生

为什么 Apache Doris 是比 Elasticsearch 更好的实时分析替代方案?

SelectDB

搜索引擎 全文检索 elasticsearch 日志分析 Doris

时序数据库 IoTDB 荣获第八届中关村国际前沿科技大赛工业互联网领域赛 Top3

Apache IoTDB

C 语言内存布局深度剖析:从栈到堆,你真的了解吗?

伤感汤姆布利柏

C 语言宏定义原来可以玩出这些花样?高手必看!

伤感汤姆布利柏

看过智谱现场演示,我觉得AI要开始卷“动手能力”了

Alter

AI

卧槽!C 语言宏定义原来可以玩出这些花样?高手必看!

不在线第一只蜗牛

C#

开发提测流程优化思考:如何在质量控制与效率间寻找平衡?

TechLead Studio

HarmonyOS NEXT 中级开发笔记:电竞直播应用的数据库设计与实践

bianchengyishu

HarmonyOS NEXT

Flink批处理自适应执行计划优化

Apache Flink

大数据 flink 实时计算 批处理

苹果电脑压缩软件哪个好用?Mac解压缩软件BetterZip免费版安装激活教程,附注册码

阿拉灯神丁

压缩工具 mac解压缩软件 BetterZip BetterZip 5下载 BetterZip 5破解版

中国气象局干部培训学院特邀和鲸共探大模型赋能气象服务现代化

ModelWhale

人工智能 大数据 气象 #大模型

跨国企业组网方案: IPLC专线的优势和应用场景

Ogcloud

组网 企业组网 IPLC 国际网络专线 跨国企业组网

电竞革命!电选对平台狂省90%硬件费:ToDesk云电脑、网易云游戏等终极评测

小喵子

云电脑 ToDesk云电脑 云电竞

反向海淘代购中二次付款难题的深度解析与解决之道

代码忍者

天下拍-艺术品拍卖经典案例分享

至存网络

埋点 拍卖 用户画像 艺术品拍卖 资产拍卖

Databend 产品月报(2025年3月)

Databend

数据分析与AI丨基于AI的电子元件焊接质量优化

Altair RapidMiner

机器学习 AI 数据分析 制造业 RapidMiner

API 安全之认证鉴权

阿里巴巴云原生

阿里云 云原生 API

《Operating System Concepts》阅读笔记:p512-p527

codists

操作系统

突破公网瓶颈的专线选择:IPLC专线

Ogcloud

企业组网 IPLC 国际专线 国际网络专线 国际IPLC专线

一站式解决Deepseek微调三大痛点:数据集、GPU资源、微调手册与源码

九章云极DataCanvas

人工智能 DeepSeek deepseek微调

BeeWorks:企业级即时通讯和协同办公软件

BeeWorks

即时通讯 IM 企业即时通讯平台 私有化部署 局域网视频软件

内网即时聊天软件推荐,哪款更适合企业的即时通讯需求?

BeeWorks

IM 企业即时通讯平台 即时通讯IM 私有化部署 局域网视频软件

开源最强!DeepClaude使用方案,内含DeepsSeek无门槛部署方法

ModelWhale

#人工智能 #大数据 #大语言模型 DeepSeek

昇腾+DeepSeeK | 博云联合昇腾打造满血版一体机

BoCloud博云

博云 DeepSeek AI一体机

字节开源轻量级 TTS 模型 MegaTTS3,中英切换自如;面壁首个纯端侧智能助手「上车」,支持多模态交互丨日报

声网

「高盛」最新人形机器人研报:主流人形机器人公司梳理和商业化瓶颈(附报告)

机器人头条

机器人 科技 大模型 人形机器人 具身智能

EviMed:左手综述内容,右手参考文献!三步产出可溯源的万字医学综述!

科技汇

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