InfluxDB 如何帮助业余爱好者改善家居和职业生涯
作者 Caitlin Croft / 产品, 用例, 开发者
2020年1月27日
导航至
我最近与 Rise 的首席技术官 (CTO) Matthew VanTassel 进行了交谈,了解他如何在家中使用 InfluxDB 使他的房屋更智能,改善他的在线游戏体验并更好地了解他的花园。了解 InfluxDB 在家中的多功能性帮助他认识到 InfluxDB 在他工作中的全部潜力。
Caitlin: Matt — 请简单介绍一下你自己。
Matt:我最初想成为一名林业工程师,但搬到了另一个省份,错过了入学时间。我加入了当地大学的技术项目(电子数据开发)。我一直热爱技术,但这不一定是我渴望从事的职业。我与一位当地开发者取得了联系,加入了一家小型设计公司,开始从事设计和前端开发。后来,我开始从事更多的后端和电子商务工作,最终加入了一家名为 Radian6 的初创公司,该公司被 Salesforce 收购。我在 Salesforce 工作了大约八年,在此期间,我从初级开发人员 (AMTS) 晋升为软件工程总监。离开 Salesforce 后,我与前同事一起加入了另一家初创公司 – Rise,担任首席技术官 (CTO)。
Caitlin: 你为什么加入 Rise?作为 CTO,你的职责是什么?
Matt:在 Salesforce,我从社交媒体监控和互动开始。当我离开时,我正在为他们的 Marketing Cloud 产品 — Journey Builder 从事客户旅程营销。之前曾与 Rise 团队的一些成员合作过,这使得这次跳槽变得更容易。我期待加入一家新行业的公司,迎接新的挑战。我在 Rise 工作得很开心,并且一直在学习和教学!作为一个做过很多房屋装修和 DIY 项目的人,我为 Rise 的雄心壮志感到兴奋和鼓舞。
作为 CTO,当出现问题时,我就是那个需要被呼叫的人(哈哈)。由于我们没有正式的产品管理团队,我也是我们产品路线图的所有者,包括设计和规划大型功能发布。我与客户合作,帮助他们解决问题,并帮助我的团队对错误进行分类并设计新功能。软件开发的所有方面都归我管辖,包括:冲刺交付、积压事项优先级排序、监控和仪表、部署和软件质量,包括测试自动化。
Caitlin: 你最初是如何发现 InfluxDB 的?
Matt:我在 2016 年发现 InfluxDB,当时我正在解决我的 HomeLab 服务器出现的问题。在家里,我创建了自己的数据备份基础设施,并且几次 DIY 数据备份尝试都失败了。我曾两次丢失所有数据——由于灾难性故障而瞬间丢失多年的数据,这真是令人心碎。我知道我需要比我的硬件 RAID5 实现更好的解决方案。我最终选择了 Unraid 作为我的服务器和备份解决方案。一个 subreddit 是灵感的来源;我发现了我的 HomeLab 的可能性以及如何管理该基础设施而不会使其成为另一项全职工作。
从 eBay 购买服务器后,我发现了一些问题。存在性能问题,例如文件传输速度慢,以及我的 Mac 的 Time Machine 备份速度慢。我需要深入研究这些问题,弄清楚发生了什么。提供的开箱即用工具没有帮助。
我并不是专门寻找时间序列数据库——我知道我需要一个全面的监控解决方案。我需要从我的整个基础设施中收集指标和事件,存储、分析和绘制数据图表。我考虑过 Logstash、Kibana 和 ElasticSearch。我发现 ELK stack 难以实施且难以理解。
有人在 Reddit 上推荐使用 InfluxDB 与 Telegraf 和 Grafana 进行可视化。我发现我可以在 Docker 容器中运行 InfluxDB 和 Telegraf,并且能够快速配置它。阅读了一些文档后,我开始尝试 InfluxDB 和 Telegraf,并开始将指标推送到 InfluxDB 中。我开始使用 Grafana 中提供的预制仪表板。从了解 InfluxDB 到拥有仪表板,不到一个小时!
通过监控 CPU、内存、磁盘和网络使用率等指标,我找到了性能问题的罪魁祸首。我的一个硬盘驱动器正在慢慢损坏,导致我的整个基础设施都受到影响。这种能够快速查明问题的洞察力让我意识到 InfluxDB 和 Telegraf 是我的 HomeLab 架构的支柱。我喜欢它易于实现,并且文档和在线社区使我能够轻松编写自己的解决方案,以将更多数据导入 InfluxDB。
在研究 InfluxDB 和其他工具时,我找到了最适合我和我的用例的组件。我查看了不同编程语言的文档,并且非常喜欢我为 Node.js 找到的内容。
Unraid 服务器仪表板
我还将所有 IoT 设备、服务器和 Docker 指标记录到 InfluxDB 中。当我了解到我的 Unraid 服务器配备了智能平台管理接口 (IPMI) 协议时,我感到非常惊喜。它允许我通过网络访问我的服务器以提取多个指标。以下是我用于监控我的服务器和 Docker 容器的总体健康状况的一些仪表板截图。
Caitlin: 你还在家中的哪些方面使用 InfluxDB?
Matt:当我的儿子出生时,我有很多晚上有空闲时间(产假万岁!)。我很高兴尝试并看看我可以在仪表板中获得什么。我休了 12 周的产假。对我来说很有趣——也许对我的妻子来说就没那么有趣了……
鉴于之前的挑战,我决定我需要一个 UPS 作为电池备份。我担心停电期间会发生什么。我不想担心数据完整性、数据丢失或任何其他问题。设置完成后,我测试了它在没有电的情况下的运行时间——大约为 3-5 分钟。这不足以让服务器关闭。我又买了一个电池备份,并将第一个用于我的网络硬件。我需要一种方法来监控两个 UPS 设备。即使在家里,随着我不断向网络和基础设施添加设备,可扩展性也成为一个问题。我不希望下班回家后又遇到一系列问题。
我购买了 SmartThings 的 DIY 智能家居解决方案。我可以连接几乎任何设备,而且我没有被锁定在特定的供应商。他们有一个很棒的 API,所以集成很容易。然而,一个常见的问题是集线器不会让你知道电池何时电量不足或耗尽(情况正在好转)。这可能是重要的东西,例如玻璃破碎探测器——你可能会有人闯入你的家而不知道。这对我是个很大的担忧。我选择不允许它解锁我的前门,因为我不想将太多控制权交给互联网连接服务。我喜欢睡觉前关掉所有灯并锁上门。我已经自动化了一些照明。白天浴室的灯光会变暗,并在你离开后大约五分钟熄灭。所有这些工具只有在电池工作时才有效。
我找到了一个 SmartThings 社区帖子,它帮助我将不同的传感器数据导入 InfluxDB。InfluxDB 在那里拯救了局面,因为现在如果电池的值在一定的小时或天数内没有变化,我会收到警报。如果我看到电池电量在五天内没有变化,那它可能就没电了。
我所有的恒温器都已连接,并且我能够看到以千瓦为单位的当前功耗。我以美元为单位绘制使用情况图表,并将其与房间内的当前温度进行比较。我可以回答诸如“它们是否在不应该运行时运行?”和“我实际上是在为我使用的东西付费吗——我的月账单准确吗?”之类的问题。我能够确定任何恒温器是否存在问题。我创建了一个脚本,该脚本轮询我当地的电力公司以获取当时的当前千瓦时费率,这使我能够知道我所在地区的准确成本。
SmartThings 仪表板
该仪表板提供了我家各个房间的精彩快照,显示了灯光状态、各个房间的温度以及所有 SmartThings 设备的电池电量。
我们建造了一个很棒的 10 英尺 x 3 英尺 x 4 英尺深的抬高式花园床。第一年的产量惊人。第二年,我们增加了智能灌溉,我想监控阳光、温度以及土壤的湿度和湿度水平。使用 Raspberry Pi 和 GardenBot,我将所有园艺指标推送到 InfluxDB 中。如果将要结霜,我会收到警报,以便我知道我需要开始收获。我希望明年能够找到一个防风雨的外壳,并将其全年放在外面。
在成为父亲之前,我沉迷于《战地》游戏系列。我拥有每一款游戏,并且每款游戏都玩了 300 多个小时。通过 Battlefield Tracker,我可以实时查看我的统计数据。我对统计数据的呈现方式不满意。我使用了他们的 API,创建了一个脚本来处理数据并将其推送到 InfluxDB 中。然后我就可以玩游戏并判断我是否变得更好、更差等等。任何我关心的统计数据,我都可以将其显示在我的仪表板上。
Battlefield Tracker 仪表板
能够跟踪我的在线游戏表现使我能够以我发现可用的格式查看我的统计数据(例如游戏中的排名、每周玩的时间以及一般游戏统计数据和分数)。
架构图
如果我可以从家中或周围的设备中提取数据,我会这样做,并且它将存储在 InfluxDB 中。我跟踪并绘制来自我的烟雾报警器的数据图表,并且能够看到何时检测到烟雾或一氧化碳。来自我的 Nest 门铃的事件数据被推送到 InfluxDB 中。我只能捕获来自我的 Phillips Hue 灯泡的开/关数据。这不是很重要,但我希望将来我可以跟踪消耗的功率并随着时间的推移绘制其图表。以下是我在 InfluxDB 中收集的所有数据的概述。
Caitlin: 你有什么希望在未来使用 InfluxDB 的项目吗?
Matt:我想改进我的智能家居。我使用 Nest 摄像头,我很喜欢它们,但我想拥有这些视频并控制它们,而不是每月支付费用。我将转向 Ubiquiti 摄像头。我正在使用一个简单的存储库将 Ubiquiti 数据拉入 InfluxDB。我很想拥有关于运动和声音的统计数据。Nest 目前按摄像头收费提供此功能,这很快就会累积起来。我有很多指标被推送到 InfluxDB 中,但我目前没有使用它们。我想尝试使用这些数据并创建一些可视化效果。
我想获得像 Sense 这样的全屋能源监控器。我将能够关联所有电力服务数据和所有设备数据。我认为能够在一个仪表板中绘制我家中的每个耗电设备的图表将非常棒!
通过在家中学到这么多关于 InfluxDB 的知识,当加入 Rise 时,我意识到时间序列数据库可以帮助解决我们正在面临的一些挑战。像大多数公司一样,我们始终致力于改进我们的产品和客户体验。虽然我们已经在使用 InfluxDB,但我期待在 Rise 扩展我们对 InfluxDB 的使用。
要了解有关 Rise 如何利用 InfluxData 的更多信息,请查看完整的故事。
如果您有兴趣分享您的 InfluxDB 故事,请点击此处。