Grafana 7.0:“我们已经构建了最好的可视化工具之一,并且它没有与任何一个数据库绑定”

发布于:2021-01-07 10:30:09

0

766

0

Grafana 开源平台 可视化工具

开源平台Grafana是世界上最受欢迎的仪表板工具之一-它目前拥有超过55万活跃安装和全球数百万用户。我们与Grafana实验室产品副总裁Tom Wilkie进行了交谈,Grafana宣布了其可观察性平台7.0版的全面上市。Grafana 7.0旨在简化自定义插件的开发,并使您更轻松地可视化数据。

JAXenter:Grafana是一个可观察性平台,您能否简要介绍一下这意味着什么以及它如何工作?

Tom Wilkie:许多人会将可观察性平台视为一种端到端解决方案,该解决方案将收集,存储和可视化全部集中在一个地方。借助Grafana,我们专注于可视化组件。我认为使我们与众不同的是专注。大多数其他供应商会将其可视化工具绑定到其数据库。我认为我们的方法与众不同,因为我们已经构建了其中最好的可视化工具之一,并且它不与任何一个数据库绑定。我们有60多种可以与Grafana对话的数据源,它们都被视为平等的公民。

但重要的是要了解我们为什么这样做。过去,IT运营机构等由日志聚合巨头所主导,对吧?我们现在认为可观察性的问题通过发出一些日志,将它们存储在中央位置并进行查询得以解决。人们开始寻找更多的机会来提高开发人员的生产力和经验,并且通常用更少的人做更多的事情。随着云原生架构和微服务的兴起,我们看到了这一点,随着这些趋势,我们看到了数据,可观察性数据的爆炸式增长,因此需要新的技术。

度量和监视一直很流行,但主要是从资源方面考虑的。您通常会使用指标来查看CPU和内存消耗等。现在,我认为在最近几年中,我们看到的是更多地使用应用程序或白盒指标。在这里我们可以窥视应用程序以查看请求速率,延迟和队列长度,如果我们将应用程序视为黑匣子,以前可能会隐藏所有各种信息。因此,现在我们有了两件事:日志和指标。它们对于不同的事情都是有用的,并且现在有一大批供应商要么两者都做,要么它们将专注于一个而不是另一个。我认为您可能会发现没有一个供应商,没有一个项目或系统,这对两者都是最好的。

微服务在分布式架构,使用Kubernetes进行动态调度等方面变得更加流行,突然之间您也需要进行跟踪。如果您打算在微服务架构中执行任何类型的性能工作,则分布式跟踪是必不可少的技术。现在,我们有三件事,但仍然没有一家厂商擅长这三件事。我认为这就是Grafana和我们建立可观察性平台的原因如此流行的原因:这是因为我们是唯一会说“将数据保留在原处”的人。用户,您可以选择最适合您的工具组合,并且可以通过选择Graphite和Splunk或通过选择ElasticSearch,Prometheus和Zipkin来表达您的意见。您可以构建该组合,在Grafana中将其组合在一起,并获得所需的东西。

您可以拥有一个可以与之对话的单一窗格,并且可以在Grafana中构建事件响应和调试流,以帮助您了解减少恢复平均所需的时间,并通常帮助开发人员度过美好的一天日常经验。我认为这就是为什么“ Grafana是可观察性平台”这一短语可能出乎意料的原因,但是Grafana是将您的可观察性方法整合在一起的“胶水”,它使用户能够拥有自己的可观察性策略并针对适合的情况做出自己的选择。他们。

JAXenter:从此继续,开发人员会兴奋地尝试在Grafana 7.0中使用哪些功能?

Tom Wilkie:我们与Grafana进行年度发布。我们现在要发布7.0,并且其中还有一年的工作量,因此很难快速讨论,但是我们通常会选择用户可能会发现有趣的三件事。

首先,格拉法纳(Grafana)作为一个项目所达到的规模对我们来说有些惊人。我们跟踪的活跃安装量超过500,000。从6.0开始,我们已经有360位贡献者加入了Grafana。这是一个开源项目。与其他任何发行版相比,我们在6到7之间解决了更多的拉取请求和问题。我认为大约有18,000次提交。这是迄今为止最大的版本。但是,我们确实选择了三个功能。首先是完成我们刚才谈到的可观察性愿景,并开始将跟踪引入Grafana,并构建一些早期的工作流程,使您能够从指标到日志再到跟踪,所有这些都在一个用户体验内完成。

我们要引起人们注意的第二件事是我们构建的CloudWatch日志数据源,因此您可以将更多数据源引入Grafana。它是与Amazon一起构建的,并且将会非常流行。很多用户都要求这样做。我们还增强了您可以从其他数据源获得的体验。许多人试图通过使用最低的公分母并仅公开所有对象之间的共同特征来统一单个UI中的许多不同数据源。在Grafana中,我们做了几乎完全相反的事情:数据源拥有Grafana UI的一部分,并真正表达了使它们与众不同的原因,并公开了其所有不同的功能和全部功能。

确实,我们在Grafana中所做的唯一统一是在数据方面。当您运行该查询时,在针对特定数据源的自定义UI中构建该查询时,该查询的结果将被标准化为Grafana格式,然后可以将其可视化。我们为数据源如何拥有一些UI并展示其特殊之处而感到自豪。例如,Prometheus数据源具有一个Prometheus查询编辑器,该编辑器具有丰富的语法突出显示和上下文相关的制表符补全以及所有这些功能。而如果您转到Graphite UI,则“查询生成器”看起来会非常不同,并且是一系列下拉列表,使您可以将查询组合在一起。

我们在7.0中将其扩展到了Grafana的其他区域。我们引入了一个从侧面弹出的Inspect抽屉,您可以在其中查看幕后情况。您可以查看将什么查询发送到数据源,可以查看花费了多长时间,返回了什么原始数据–有关查询的各种指标和元数据。但是数据源也可以拥有该Inspect抽屉的一部分。数据源可以注入到其自己的选项卡中,例如,可以说“我是Metrictank数据源,然后单击以下汇总和预汇总以执行此查询的一部分。” 或者我是Cortex数据源或Loki数据源,实际上您的查询命中了这些缓存的记录,并以这种特定方式进行了并行化和分片。甚至在将来,这不是我们现在无法做的,但是可以扩展数据源以显示SQL查询计划以及类似的东西。因此功能强大。

我们要强调的第三件事是统一的数据管道。建立查询并执行查询后,该数据源现在将输出新的统一数据帧格式。这一点非常重要,因为这种新格式不仅性能非常好-我们使用Apache Arrow-而且还启用了许多功能:它使我们能够统一很多数据处理和转换,而以前只能用于单个数据源。再例如,Prometheus数据源曾经能够转置操作并以表格格式使用Prometheus数据-其他数据源则没有。现在,这是转换管道的一部分,这意味着您可以将其应用于任何数据源。

用户只需真正学会一次如何处理来自不同数据源的数据即可。它确实可以平衡不同数据源之间的竞争环境。用户多年来一直要求的另一个示例是,能够对从不同数据源返回的数据进行数学运算的功能。您可能在Prometheus中监视了资源使用情况,但是您的应用程序级别指标可能来自appD。现在,在Grafana中,您可以采用这两者,并获得容量规划指标(例如每个请求的CPU周期),例如,这可以帮助您预测CPU消耗随时间的增长情况。

第三,在统一数据管道上,我们现在有了这种新的Apache Arrow格式对外部插件的支持。这将使我们能够构建不必存在于Grafana后端或Grafana前端中的数据源。它们可以存在于单独的流程中,因此可以用不同的语言实现,而不必使用Go或Java或JavaScript编写。因此,例如,您可以用Java写一个,然后访问整个JDBC插件生态系统,或者用C#写一个,或者用您喜欢的任何一种语言写一个,然后访问仅在该版本中可用的现有集成。语言。我认为这将使开发人员在Grafana上进行构建和扩展以及将其数据导入其中变得更加容易。

就像我提到的那样,现在,我们有60多个一流的插件,它们要么内置在Grafana Enterprise的核心中,要么内置于我们。但是,社区中可能还有约100个其他数据源。我完全希望7.0能够看到数据源和集成的爆炸性增长,因为它变得更容易,更可靠且性能更高。

JAXenter:您认为7.0中的杰出功能是什么?您认为它会被记住什么?

Tom Wilkie:我的意思是,我非常有偏见,因为我帮助推动了跟踪功能的发展。所以对我来说就是这样。我认为,如果您要问TorkelÖdegaard(Grafana的创建者),那将是数据管道,这将是真正的变革,因为突然之间,我们不仅使它变得更容易,而且还建立了一个非常可靠的平台。将来做一些令人兴奋的事情的框架。例如,以前(其中某些事情听起来有些微不足道),Grafana中的每个面板处理数据的方式几乎都是不同的。

例如,某些面板支持导出到CSV,而有些则不支持,但是使用此统一的数据管道,我们不仅可以跨系列对任何面板和任何数据源进行转置,连接和数学运算,而且现在可以导出来自任何面板的CSV。这对于Grafana的成长和项目的灵活性至关重要。我不知道它的去向,但令人兴奋,因为开发人员将能够用以前很难做到的事情来做各种疯狂的事情!

JAXenter:大概这将使其余业务可以访问它吗?CSV导出容易吗?

Tom Wilkie:格拉法纳实验室(Grafana Labs)的口头禅是:“别挡住数据”。如果您想将数据导出到电子表格中并在其中进行处理并使用它来做自己喜欢的事情,那么那绝对是您应该可以使用Grafana并现在就可以做的事情。

但是反面也是如此。我们认为Grafana应该能够轻松连接任何东西。因此,我们有一个基于此新插件平台和新的统一数据管道构建的Google Sheets数据源。现在,我们不仅可以导出CSV,而且可以在Google表格中轻松处理它,现在还可以将数据带回Grafana,这很酷。您可以将其与来自监视系统等的实时数据结合起来。我认为,如果回头看6.0,我会说“探索”功能是最重要的,但是当我们回头看7.0时,它肯定是该数据管道的基础。

JAXenter:您已经稍微讲了一下,但是跟踪功能带来了什么?有什么好处?

Tom Wilkie:传统上,跟踪是可观察性的第三大支柱,而Grafana 7.0是第一个支持跟踪数据源的支柱。我们已经在Grafana中建立了对Zipkin和Jaeger的支持。它是一个插件接口,因此我们非常希望将来能够增加对其他跟踪供应商和项目的支持。

我们实际上一直专注于7.0的一个非常简单的用例,这是事件响应之一。直到最近,我仍然在半夜被传呼。那只是偶尔。我们的软件非常可靠。但是偶尔我会被传呼,不得不醒来并经历这个事件响应工作流程。可能是警报将我推送到了带有注释的仪表板中。通常,您必须介入该仪表板。这是我们在6.0中通过“资源管理器”视图启用的,并且我们构建了这种出色的体系结构,可用于深入研究面板并探索数据。使用Loki,我们建立了在指标和记录体验之间进行切换的功能,因此现在突然进入面板,您开始摆弄数据,并专注于这种情况下的错误以及您所关注的时间范围有兴趣。在6.0中,您可以自动切换到日志并查找这些指标背后的日志,并真正进行这种关联。在7.0中,您现在还可以执行一个额外的步骤来跟踪。

尽管针对跟踪和Grafana尚处于起步阶段,但这种专注于这种用例的经验和这种经验增加了很多价值。大约一个月前,此功能已合并,我们在内部已经使用了很多功能,它的功能非常有用,尤其是当您因为页面速度太慢而被分页时。这可以帮助您确定为什么速度慢,哪些位速度慢。如果这些转换中的每个转换都复制和粘贴查询并在您的头部中进行转换并在不同用户界面之间复制标识符,则它可以帮助您比以前更快地到达目的地。就个人而言,我对此感到很兴奋。对我来说,这是最大的交易,这只是冰山一角。这是在指标,日志和跟踪之间进行转换的一种工作流程。我认为我们已经在进行另外两三个工作,

JAXenter:您认为Grafana与众不同之处是什么?

Tom Wilkie:大多数竞争对手都是通过向您出售数据库来赚钱的,我认为让我们与众不同的是我们没有。我们在内部使用这种“大帐篷文化”来生活,在这里我们所有的数据源都得到同等对待。正如您在Grafana 7中使用该跟踪所看到的那样,我们将不会仅使用一个数据源启动;而是使用一个数据源来启动。我们将不只是与Jaeger一起推出。我们与Jaeger和Zipkin一起推出了。当我们启动Loki时,我们将Elastic视为Explore中的一流集成,而生活是Grafana体验的关键。

我认为,如果我们开始选择收藏夹并将某些数据源比其他数据源更好,那么这个由用户拥有自己的可观察性策略的可组合可观察性平台的全部信息将开始崩溃。看到它存在于公司中真是太神奇了。这不是我们刚刚与媒体谈论的话题,也不是我们只在外部发表的话题。我们一直在内部对此进行争论。我们希望过上更简单的生活,我们只需要关注少数几个数据源,但这不是用户想要的,也不是让Grafana与众不同的原因。我们一直在自我检查,并确保我们兑现我们已经做出的“大帐篷”承诺。

JAXenter:在过去的几年中,可观察性似乎已经成为讨论的热门话题,每个人似乎都在提供可观察性。您认为它来自哪里?是云原生技术的增长吗?

Tom Wilkie:是的,我认为这是最大的推动力。我们想弄清楚如何提高我们的开发人员的生产力。做生意吧?我们如何用更少的人做更多的事情?以前,您曾经必须构建自己的操作系统,然后构建越来越多的抽象。现在,软件工程更像是将预构建的软件包组合在一起。我认为,工程师提高生产力的驱动力导致了体系结构的选择,这导致了这种复杂性的激增。

突然之间,了解系统的行为并非易事。好吧,可观察性有点流行。但是我认为这就是我的意思:可观察性是理解复杂系统行为的能力。因此,可观察性工具应该始终是帮助开发人员快速,轻松地了解正在发生的事情。并希望也很愉快。我们在Grafana Labs上对此进行了很多强调。我们使用这些工具,并且希望使用易于使用的工具,但也能给您带来“惊喜”。这就是为什么Grafana团队花了很多精力使Grafana变得美丽。我们希望这是一件令人愉快的事情。

是的,所以我认为可观察性主要是由开发人员的生产率争论所驱动。云原生也受到相同愿望的驱动。我们希望构建我们的应用程序体系结构,以使开发人员能够更快地进行迭代,并通过诸如连续部署之类的技术,使反馈周期从用户反馈到产品更改,从数年到数月至数天到数小时不等。

有了所有那些快速移动的零件以及所有不断迭代的内容,您需要好的工具来了解发生了什么以及何时发生了崩溃。我对这样的事实感到高兴,那就是,重点已经从第一次的正确变成了“好吧,如果确实失败了,让我们确保我们可以尽快解决它”。我喜欢这一点,因为它使我能够进行更多的实验;它使我能够尝试新事物。您可能已经看到Google的有关高绩效团队的研究是可以冒险并且可以接受的,是错误的吗?我认为可观察性解决方案几乎是同一回事:冒险是可以接受的,因为您知道自己拥有安全的工具网,可让您找出问题所在并快速修复。