InfluxDB 挑战实习生指南
作者:社区 / 使用案例, 产品, 开发者
2022 年 7 月 20 日
导航至
本文由 Tyler Nguyen 撰写。向下滚动查看他的照片和简介。
在 2022 年的夏天,我作为实习生加入了 InfluxDB 的开发者关系团队,渴望在现实世界中更多地了解计算机科学的广泛行业,作为一名程序员拓展新的视野,并在 InfluxDB 已经建立的良好基础上更上一层楼。在加州大学尔湾分校最近的秋季学期中,我完成了一门数据结构和算法课程,这极大地激发了我的兴趣,并使 InfluxDB 成为我想与之共度夏天的公司的明确选择。随着我越来越深入地研究 InfluxDB 生态系统,包括开源和服务软件方面,我发现 InfluxDB 在培养紧密的客户和贡献者社区方面做得非常出色,这是我很快学会欣赏的事情。在我在 InfluxDB 工作的短暂时间里,我发现自己身处一支由一些我曾共事过的最勤奋、最热情、最脚踏实地的人组成的团队中,每个人都体现了 InfluxDB 的核心价值观:团队合作、谦逊和拥抱失败。被从不停歇地突破自身学习极限的人们所包围,具有令人难以置信的感染力,并且是我个人成长的主要动力源泉。
我在 InfluxDB 作为实习生的第一个任务是通过 InfluxDB 大学提供的速成课程来熟悉 InfluxDB 的基本知识,这是一系列为社区中的每个人量身定制的视频和演示文稿,作为 InfluxDB 产品的某种教科书。我参加的课程 InfluxDB 101 涵盖了我入门所需的一切知识,包括将数据写入 InfluxDB,使用 Flux 为我的数据创建查询,以及为 Telegraf 配置插件。完成课程后,我的导师给我布置的任务是完成 InfluxDB 新发布的一项挑战,供所有新用户部署他们新获得的技能。挑战内容如下:
1. 注册 InfluxDB Cloud
挑战的第一步非常简单:InfluxDB 通过已有的 Google 或 Microsoft 帐户提供注册选项,以便快速访问 InfluxDB 服务,或者您可以多花几秒钟手动创建一个新帐户。
2. 将数据加载到 Cloud 平台
考虑到无数不同类型的传感器、物联网设备和文件格式,数据以各种形式存在。幸运的是,InfluxDB 构建的产品具有灵活性和易用性,并提供了不同的工具来处理所有形式的数据。
- 使用客户端库写入 InfluxDB: InfluxDB 为各种不同的客户端库提供支持,从更流行的语言(如 Python 或 Java)到更专业的语言(如 GO、PHP 或 Arduino)。只需在安装适当的软件包后简单地导入或包含库,然后发出“write()”函数即可。虽然我没有采用这种方法来完成这项挑战,但 Python 客户端库是我为 InfluxDB 今夏举办的实习生黑客马拉松项目不可或缺的一部分。
- 使用 InfluxDB API 写入 InfluxDB: InfluxDB 写入 API 是一个标准的 HTTP API,它通过 curl POST 请求与 InfluxDB 实例的主机名以及 API 端点说明符连接工作。 这也不是我用于此挑战的方法。
- 使用 InfluxDB CLI 写入 InfluxDB: InfluxDB CLI 是一个命令行界面工具。在为数据指定正确的 行协议 后,发出写入命令并指定文件作为参数或从 STDIN 写入。我没有为此挑战部署这种摄取方法。
- 使用 Telegraf 插件写入 InfluxDB: Telegraf 是一个基于 插件 的数据收集代理,旨在将所有格式的数据简化为 InfluxDB Cloud。要使用 Telegraf,您需要选择一个输出插件来指定转换后数据的目标位置——如果目标位置是 InfluxDB Cloud,您将需要使用 Influx V2 插件——以及一个输入插件来指定数据来自何处。
这次实习的全部意义在于学习和吸收来自 InfluxDB 的所有经验和机会,我渴望亲身体验这个新工具,这就是为什么我首先尝试使用这种方法。不幸的是,我在这个尝试的开始阶段遇到了几个问题:我的安装无法正常工作,只有当我导航到可执行文件的目录时,才能从 PowerShell 发出“telegraf”命令,并且在我让它半工作时,我会收到奇怪的错误。在我与我的导师交谈后,一切都变得有道理了:他告诉我,InfluxDB 的许多客户都在 Linux 或 MacOS 生态系统上部署他们的产品,因此 Windows 机器没有得到太多支持……这正是我正在使用的。切换到 MacOS 后,我的所有问题都解决了,一切都运行顺利。我能够使用 Influx V2 输出插件和一个标准的 文件输入插件为 带注释的 CSV 文件编写 Telegraf 配置文件。
3. 在 Cloud 平台中创建一个 任务
也许整个挑战中最有趣的部分是,创建自动化任务的要求是让任务在您的数据停止报告或超过某个阈值时,向第三方 端点 发送通知。通过选择几个选项并单击“创建”,InfluxDB Cloud UI 使设置任务变得轻而易举。在这一步中,我们创建了一个 deadman 检查,以确保我们的数据没有中断,以及一个 阈值检查,以监控这些值。
我发现更有趣的部分是第三方通知配置。我决定使用 webhook 和 Slack API 将通知推送到 Slack messenger,因为 Slack 是我每天都在使用的服务。警报设置为每小时一次,具体取决于是否超过阈值或数据停止报告。
4. 创建一个自定义 仪表板 以可视化您的数据
在这一步中,挑战本身已经完成,现在是时候退后一步,欣赏为挑战所付出的努力。在 InfluxDB UI 中,可以创建一个仪表板来可视化输入的数据。要求是使其独一无二,同时保持实用性和可理解性。
总的来说,我认为 InfluxDB 挑战是一次绝佳的学习体验。它激发了我刚刚完成的课程中的批判性思维和记忆技能,并且作为一种边做边学的人,在学习技能后应对挑战,将这些新获得的技能牢固地记在我的脑海中,以便进一步使用。虽然挑战的结论非常令人满意,但整个过程同样令人难忘。
关于作者
Tyler 目前就读于加州大学尔湾分校,将于 2024 年毕业。他是 InfluxData 开发者关系团队的成员,以 2022 年夏季实习生的身份加入。自从加入以来,Tyler 一直很喜欢编写 Flux 代码。在空闲时间,Tyler 喜欢电影摄影、山地自行车和汽车赛车。