今天,我们很自豪地宣布,InfluxDB Open Source2.0现已向所有人开放。这是一条漫长的道路,如果没有我们社区令人惊叹的支持和贡献,我们不可能做到这一点。这标志着InfluxDB平台进入了一个新时代,但这只是个开始。
在我们谈论未来之前,让我们先来看看我们团队一直在研究的一些令人惊叹的新功能。
对于那些只想开始的人,请查看我们的下载页面以获取最新版本以及我们的入门和升级指南。
对于任何熟悉我们现有开源产品(亲切地称为Tick Stack-Telegraf、InfluxDB、Chronograf和Kapacitor的缩写)的人来说,您可能会注意到的第一件事是,只有一个二进制文件需要下载和安装。
现在,新的InfluxDB在一个二进制文件中包含了您在时间序列数据平台中需要的所有内容。这简化了部署和设置体验,同时保持了各个组件的功能和灵活性。
单一的二进制文件意味着它也更容易保护,因此我们默认使InfluxDB变得安全。对InfluxDB的每个请求都伴随着一个可以撤销的身份验证令牌,内置用户界面使用用户名和密码进行保护。
有了这些更改,您永远不必担心存储在InfluxDB中的数据意外暴露给公共互联网。
易于部署、易于管理、默认安全。开发人员期望从现代开发平台获得这些东西,InfluxDB也不例外。
我们知道开发人员尽快接触到他们的数据是多么重要。我们经常从我们的社区听到的一件事是,Chronograf(Tick Stack的“C”)使得快速查看进入系统的时间序列数据的形状变得非常容易,并简化了许多常见的管理任务。
InfluxDB Open Source2.0通过全新的Data Explorer、附加的可视化类型以及专门为时间序列数据构建的强大的新查询语言Flux延续了这种体验。您可以快速浏览所有测量值、字段和标签,并对这些数据应用常见转换,而无需伸手到键盘。
当然,对于那些希望释放数据的全部潜力的人,我们提供了一个脚本编辑器,其中包括自动补全、实时语法检查以及大量的示例和文档来帮助您入门。此编辑器可在InfluxDB(数据资源管理器、仪表板和任务)中使用,并使用与Visual Studio代码中相同的摩纳哥编辑器。
等等,但你已经有大量基于InfluxQL的应用程序和集成了?不成问题。InfluxDB 2.0旨在替代现有的InfluxDB实例。这意味着,如果您正在使用外部可视化工具进行仪表板操作,或者将数据写入数据库,那么在您升级之后,它仍然可以正常工作。当然,我们建议将这些连接迁移到最新的v2API,但它们将继续按原样正常工作。向后兼容的API可以帮助您随心所欲地快速移动。
许多用户喜欢通过InfluxQL访问数据的简单性,InfluxQL是我们类似SQL的查询语言。作为平台的简单入口,这是体验InfluxDB强大功能的绝佳场所。但是,随着时间的推移,随着用例的复杂性增加,不仅仅是简单的SELECT语句,也出现了挑战。结果,开发人员最终编写了自定义应用程序逻辑来完成现代应用程序经常需要的大部分复杂转换。
这有一些缺点。首先,我们希望建立一个能够提高开发人员工作效率的平台,而花在编写通用数据转换逻辑上的任何时间都被用来为他们自己的用户和客户创造价值。第二个缺点是性能。数据从存储层获得的距离越远,转换速度就越慢。
其核心的助熔剂就是为了解决这些问题。Flux不是一种类似SQL的语言;它是一种类似于JavaScript或Python的函数式编程语言。这意味着您可以像编写应用程序一样自定义和结构化查询,将公共逻辑分成可重用的函数和库,从而减少需要编写的总代码量。该代码还尽可能靠近存储层执行,直接压低许多操作,从而为您提供尽可能快的系统性能。
Flux的构建也不仅仅是为了处理时间序列数据(尽管这是它的主要业务)。它可以直接从Postgres、Microsoft SQL Server、SQLite和SAP Hana等SQL数据存储以及Google Bigtable、Amazon Athena和Snowflake等基于云的数据存储中提取数据。这使您可以丰富时间序列数据以提供其他上下文。以下是一些例子:
对于物联网用户,Flux允许您将传感器的时间序列数据与制造商、型号、设备年限或里程等关系表中的信息结合起来。
对于真正的用户监控(RUM),您可以使用Flux来查找客户ID,并将客户名称、定价计划以及公司名称和位置等图片联系起来。
在IT基础设施监控中,Flux可以将服务器ID解析为软件版本和配置参数。
Flux还允许您执行地理时间查询,因此您可以根据时间和位置进行过滤。这对于您需要跟踪移动中的设备或车辆的许多物联网使用案例至关重要。例如,下面的简单明了的Flux查询允许您查询以三角形为边界的所有点,这些点位于三个坐标处。
发件人(存储桶:";示例-存储桶";) >;范围(开始:-1h) |>;filter(fn:(R)=>;r._measure==";例如-测量";) >;Geo.filterRows( 地区:{ 积分:[ {经度:40.671659,经度:-73.936631}, {经度:40.706543,经度:-73.749177}, {纬度:40.791333,纬度:-73.880327} ] } )。
开发人员寻求的不仅仅是查询数据的能力。他们想用它来建造。Flux为我们的社区提供了用数据分析和构建应用程序的最快、最强大的方式,我们迫不及待地想让您试一试。
交互式处理数据可以提供强大的洞察力,但在现代系统中,这些交互式查询只占整个处理过程的一小部分。流入您的应用程序的大多数数据在与其他信息结合以产生关于正在发生的事情的知识时会更加强大。当您专注于利用洞察力时,该过程需要持续可靠地在后台进行。
InfluxDB 2.0包含一个功能强大的新后台处理系统,称为任务,该系统使用与访问存储在平台中的数据相同的Flux语言构建和执行任务。这些任务可以做很多功能强大的事情,包括聚合经常访问的指标以提高仪表板的性能,根据存储在完全不同系统中的数据计算自定义指标,或者降低数据采样以节省长期存储成本。
还可以利用任务自动将数据推送到其他系统,这些系统可以对您的数据进行通知或警报。因为它们是基于Flux语言的,所以当我们添加新的库、功能或工具时,可以在任务中自动利用这些库、功能或工具。
InfluxDB任务在概念上类似于Kapacitor(滴答中的“K”)。但与Kapacitor不同的是,Kapacitor使用一种名为TICKscript的语言,该语言独立于Chronograf中使用的InfluxQL,而任务使用Flux。这简化了开发人员的工作,因为他们可以在Data Explorer和仪表板中使用一种语言进行查询,并在任务中进行数据处理。
任务是平台的处理支柱,我们认为您会找到一些令人惊叹的方式来使用它们。
我们围绕公司的座右铭是,我们的团队永远不应该看着仪表盘就知道有什么不对劲。监控和警报对于任何应用平台都至关重要,我们也不例外。
InfluxDB 2.0包括一个强大的监控和警报系统,该系统基于与Tasks和Flux相同的技术。我们的原生用户界面提供了一种快速定义数据阈值和死人警报的方法,但如果您需要更大的灵活性,您可以使用底层任务系统构建自己的自定义警报。
这些警报的通知可以发送到任意数量的外部系统,包括PagerDuty、Slack、Microsoft Teams、电子邮件、MQTT或您控制的自定义HTTP端点(WebHook)。我们为定义和管理这些警报提供了直观的用户界面,但通过用户界面提供的每一项功能都通过我们的API公开,因此您可以构建适合自己的自动化。
时间是最稀缺的资源,开发人员经常在易用性与面向未来的功能和灵活性之间进行权衡,这是很常见的。在InfluxDB 2.0中,我们希望让它变得非常简单,但也要让我们的社区相信,随着他们的用例的发展和使用的增长,我们会满足您的需求。
我们的下一代平台是围绕单一的通用API构建的。无论您是在笔记本电脑上本地构建应用程序,还是扩展到全球数百万用户,围绕构建应用程序的API都是相同的。
这还允许我们提供一套强大的命令行工具和特定于语言的客户端库,支持10种语言和SDK,适用于我们所有的产品。如果您正在构建应用程序,使用InfluxDB启动和运行的最快方式是通过我们的客户端库之一。
无论您现在构建的是什么,或者将来需要多大的规模,您都可以放心,您不需要重写您的应用程序来利用InfluxDB的强大功能。
Kubernetes已经占领了世界,随之而来的是GitOps工作流的兴起,GitOps工作流使管理和部署应用程序变得像签入代码一样简单。InfluxDB 2.0旨在利用InfluxDB堆栈和模板无缝集成到您的GitOps部署策略中。
使用命令行工具,您可以通过声明性配置和基于GIT的更改管理,快速管理平台中所有资源的状态。这还允许您构建强大的持续集成和部署管道,从而轻松部署(更重要的是回滚)更改。
该技术支持InfluxDB模板功能,该功能为各种流行技术提供开箱即用的全栈监控。InfluxDB模板是免费使用的,随着希望与他人分享其专业知识的专家的贡献,模板库也在不断增长。您可以利用InfluxDB社区的集体知识,同时保持扩展和定制模板以满足您的确切需求的自由。你觉得你有合适的东西吗?你也可以贡献你的专业知识!
InfluxDB 2.0允许您自信地部署更改,并站在专家的肩上,使您能够专注于构建应用程序。
正如我在这篇文章的开头所说的,这个版本代表了我们的工程团队在近两年与我们的社区接触和倾听的过程中所做的大量努力,但这仅仅是个开始。展望未来,你可以期待一些事情。我们计划标准化我们的发布节奏,以便社区知道什么时候可以期待新功能和错误修复。
我们的InfluxDB开源路线图将开始专注于解锁那些需要在本地部署软件,但继续与InfluxDB平台的其他部分(包括InfluxDB Cloud)协同工作的用例。寻找解锁数据复制和聚合到云的简单方法,以及在边缘接收和分析数据的更多方法。
我们对开源软件的未来非常兴奋,对帮助我们构建伟大软件的令人惊叹的社区感到谦卑。我们希望你加入我们的旅程,在GitHub上或在我们的社区论坛和Slack上打个招呼。