InfluxDB挑战指南——实习生篇

导航到

本文由Tyler Nguyen撰写。向下滚动查看他的照片和简介。

2022年夏季,我加入了InfluxDB的工程师关系团队,成为一名实习生。我渴望了解更多关于现实世界计算机科学广阔的领域,作为一名程序员开拓新的视野,并在InfluxDB已经建立的良好基础上继续发展。在加州大学欧文分校最近的秋季学期,我完成了一门数据结构和算法课程,这极大地激发了我的兴趣,使InfluxDB成为我想要在暑假期间工作的公司之一。随着我对InfluxDB生态系统(包括开源和软件即服务)的深入了解,我发现InfluxDB在培养紧密团结的客户和贡献者社区方面做得非常出色,这让我很快学会了欣赏。在InfluxDB的短暂时光里,我发现自己与一群我合作过的最勤奋、最有激情、最接地气的人在一起,每个人都体现了InfluxDB的核心价值观:团队合作、谦逊和接受失败。被不断推动学习自己极限的人们包围是极具传染性的,也是我个人成长的主要动力来源。

作为InfluxDB的实习生,我的第一个任务是参加InfluxDB大学提供的一门速成课程,这是一个针对社区所有人的视频和演示系列,类似于InfluxDB产品的教科书。《InfluxDB 101》(我参加的课程)涵盖了开始所需了解的所有内容,包括将数据写入InfluxDB,使用Flux对我的数据进行查询,以及配置Telegraf的插件。完成课程后,我的导师让我完成一项针对所有新用户的InfluxDB挑战,以部署他们新学到的技能。挑战如下

1. 在InfluxDB Cloud上注册

挑战的第一步很简单:InfluxDB通过现有的Google或Microsoft账户提供注册选项,以便快速访问InfluxDB服务,或者您可以多花几秒钟手动创建一个新账户。Guide-to-the-InfluxDB-Challenge-Get-Started

来源:InfluxDB Cloud Start

2. 将数据加载到云平台

由于有无数种不同的传感器、物联网设备和文件格式,数据以各种形式出现。幸运的是,InfluxDB构建的产品既灵活又易于使用,并提供不同的工具来处理各种数据形式。

  • 使用客户端库向InfluxDB写入: InfluxDB支持来自Python、Java等更流行的语言,以及GO、PHP或Arduino等更专业的语言的多种客户端库。安装相应软件包并调用“write()”函数后,只需要简单导入或包含库即可。尽管我没有采用这种方法来完成这个挑战,但Python客户端库是我参加InfluxDB今年夏天举办的实习生黑客马拉松项目的核心部分。Load-Data-client-libraries
来源:InfluxDB云客户端库
  • 使用InfluxDB API写入: InfluxDB写入API是一个标准的HTTP API,通过将InfluxDB实例的域名与API端点指定符连接,结合curl POST请求来工作。这也不是我这次挑战中使用的方法。InfluxDB-write-API
来源:InfluxDB大学基础知识课程
  • 使用InfluxDB CLI写入: InfluxDB CLI是一个命令行界面工具。指定数据的正确行协议后,发出写入命令并指定文件作为参数或从STDIN写入。我没有为这个挑战部署这种方法。Line-protocol
来源:InfluxDB云行协议
  • 使用Telegraf插件写入InfluxDB: Telegraf是一个基于插件的数据收集代理,旨在将所有格式的数据流式传输到InfluxDB Cloud。要使用Telegraf,需要选择输出插件来指定转换后数据的目的地——如果目的地是InfluxDB Cloud,则需要使用Influx V2插件——以及输入插件来指定数据来源。Load-data-telegraf-plugins
来源:InfluxDB云Telegraf插件

这次实习主要关于学习和吸收来自InfluxDB的所有经验和机会,我非常渴望接触这个新工具,这就是我首先尝试使用这种方法的理由。不幸的是,我在这个项目的开始阶段遇到了几个问题:我的安装无法工作,只有在可执行文件的目录中导航时,我才能从PowerShell中运行“telegraf”命令,而且当我让它半工作的时候,我会遇到奇怪的错误。在我和我的导师交流之后,所有的事情都变得有道理了:他告诉我,InfluxDB的许多客户都在Linux或MacOS生态系统中部署他们的产品,所以Windows机器得到的支持不多……这正是我正在使用的。在切换到MacOS之后,我所有的问题都解决了,一切工作顺利。我能够使用Influx V2输出插件和一个标准的文件输入插件带注释的CSV文件编写一个Telegraf配置文件file-input-plugin

来源:InfluxDB Cloud Telegraf 文件输入插件

3. 在云平台上创建一个任务

也许整个挑战中最有趣的部分是,创建自动化任务的要求是当数据停止报告或超过某个阈值时,任务将向第三方端点发送通知。通过选择一些选项并点击“创建”,InfluxDB Cloud UI使得设置任务变得非常简单。在这一步中,我们创建了一个死-man检查以确保我们的数据没有断开,并创建了一个阈值检查来监控值。

我找到更有趣的部分是第三方通知配置。我决定使用webhook和Slack API将通知推送到Slack即时通讯工具,因为Slack是我每天都会使用的服务。根据是否越过阈值或数据停止报告,警报被设置为每小时触发一次。Alerts

来源:InfluxDB Cloud 警报

4. 创建一个自定义的仪表板来可视化您的数据

在这个步骤中,挑战本身已经完成,现在是时候退后一步,欣赏一下挑战中所投入的努力。在InfluxDB UI中,您可以创建一个仪表板来可视化输入的数据。要求是使它独特,同时保持实用性和可理解性。challenge-board

来源:InfluxDB Cloud 仪表板

总的来说,我相信InfluxDB挑战是一个极好的学习经历。它激发了我刚刚完成课程的批判性思维和记忆技能,作为一个喜欢动手学习的人,在学会技能之后解决挑战,将这些新技能牢记于心,以备将来使用。尽管挑战的结论非常令人满意,但整个过程也同样难忘。

关于作者

Tyler Nguyen - Summer Intern at InfluxData

泰勒目前正在加州大学尔湾分校学习,将于2024年毕业。他是InfluxData的Developer Relations团队的一员,于2022年夏季加入,担任实习生。自从加入以来,泰勒一直喜欢编写Flux代码。在空闲时间,他喜欢电影制作、山地自行车和汽车赛车。