微信号:ICT_Architect

介绍:分析和交流ICT行业最前沿技术,分享云计算、存储、服务器、数据中心、网络、软件定义和虚拟化等相关知识,旨在知识交流、开放共享和共同进步.

Kibana或Grafana,时间序列可视化如何选择?

2018-02-01 08:28 乐崽


      Grafana已经迅速成为事实上的“DevOps”工具之一,用于实时监控时间序列指标的仪表盘(DashBoard)。除了强大的可视化之外,Grafana支持多种后端数据源,包括InfluxDB,Graphite,Elasticsearch和其他许多可以通过插件添加的数据源


      Kibana是另一个类似的前端工具,它是Elastic Stack的数据可视化前端,对Beats,Logstash(摄取)和Elastic search本身(存储)进行了补充。随着Elastic Stack版本5.x的发布,Kibana现在包含Timelion,用于交互式时间序列图表。


      为了进一步了解相关内容,下面一起来看看一个性能分析工具中示例仪表板。我们同时使用Grafana和Kibana来呈现不同的数据视图

      为了让用户能够跨多个维度查看和分析性能数据,我们使用了Kibana。

      最近发布的TimelionKibana的一个时间序列可视化插件,在日常工作中,我们经常确保使用正确的工具来完成正确的工作。在时间序列可视化方面,是采用Grafana来处理时间序列指标,还是Timelion能填补这个空白,又或是使我们能够简化我们平台的工具集


      在这篇文章中,我们将采用Timelion和Grafana来实现功能互补。目的不是要定义哪一个是“最好的”(一个毫无意义的实验),也不是要创建一个不可理解的展示图,而是要看看这两种工具在实时比较中是如何发挥各自优势,使得更容易建立图表。如哪一个产生一个更好看的仪表板?对最终用户阅读和分析数据来说,哪个版本具有最好的用户界面和用户体验?在分析这些数据的数据源和功能方面有什么限制?最终,我们是否可以将我们的产品的前端统一到这些工具中


Timelion简介


      从Kibana 5版本开始,Timelion(发音为“Timeline”)成为默认安装选项。图表是使用定制的查询语言定义的,该语言既指定了数据的来源,又指定了应用的功能以及呈现方式。该查询在Timelion界面的文本框中指定。在这个简单的图表中,我们使用表达式.es(*)来显示Elasticsearch中随时间变化的文档总数



      每个Timelion表达式都以一个数据源函数开始,接着连接的一系列函数。提供了超过20个功能,其表达式分为三组

  • 1.数据源 - 默认是Elasticsearch,其他API,如World Bank和Quandl也可用。
    例如在上面的图表中,默认表达式.es(*)(类似于.elasticsearch(*))显示了Elasticsearch中所有文档的计数。您可以在这里指定Elasticsearch索引,映射和指标的细节以及过滤器。

  • 2.从简单算术到移动值,累计和和导数的数据操作。例如,向数据添加移动平均数就如同将函数包含到表达式结尾一样简单:.es(*).movingaverage(12)

  • 3.视觉元素的主题和风格,包括栏、点、线,标签,标题和图例。下图显示了从 Oracle数据库中的活动会话历史数据中提取的按时间运行的查询数。.es(index=ash*).lines(1,fill=1).title('RunningQueries').legend(none).label(false)


      关于开发者可用的文档和指南,Timelion 的主要文档比较有限。有关每个函数的详细信息,请参阅github上的文档


      值得乐观的是,查询生成器文本框可以支持自动完成相关功能及其参数,Timelion界面也提供在线帮助文档帮助开发者。Timelion页面的缺点是表达式文本框的大小,如您将在本文中阅读更多内容,需要更长时间才能将多个度量标准和几个样式实现可视化。


      如果您是初学者,为避免混淆拼写错误,请尝试逐步构建表达式并逐渐添加函数。Timelion提供的数据处理函数中特别注意的是统计分析函数。

  • .trend() :使用指定的回归算法将趋势线添加到图形中

  • .holt():这个函数的早期版本,它对一个序列的开始进行采样,并用它来预测通过几个可选参数应该发生的事情。


      这对我们的性能监控仪表板非常有用,如果您继续以当前速度使用资源,则可以显示诸如内存、磁盘空间不足等问题。


      与此相关的是Prelert预计Elastic将在明年对其收购成为X-Pack的一部分。虽然基于仪表板的分析是非常有用的,但是当我们想要警报的清晰模式被识别时,它可以通过Watcher来提供实时通知给寻呼机系统等。


Grafana介绍


      Grafana是一个开源的功能丰富的仪表板和图形编辑器,正在迅速成为最好的时间序列度量可视化工具之一。Grafana由于其简单,易用和时髦的外观和感觉而吸引了众多用户,从而赢得了广泛的青睐。


      Grafana中的大部分配置都是通过全面的图形编辑界面完成的。


      Grafana编辑器中,查询通常是通过GUI完成的。手动指定的查询用于访问高级功能以访问保存在Elastic search中的数据的。对支持Elasticsearch而言,Grafana(v4.1.1)新版本支持Elastic search v2v5版本。据作者在Grafana 4.1.1Elastic search v5上的实践经历表明,它作为长期数据源不像InfluxDBGraphite(甚至是Elastic search v2)样稳定。例如,如果图表配置不正确(例如: 设置为空值),Grafana在返回没有结果或在抛出描述性错误方面,显得不够直观


      在Grafana家庭中增加的一个有趣成员是警报引擎(Alerting Engine),它允许用户附加规则到仪表盘面板。一旦仪表盘被保存,Grafana将把警报规则提取到一个单独的警报规则存储器中对它们进行评估。


数据呈现方式


      从表面上看,Grafana和Timelion的输出可能非常相似的。然而,这两个工具之间有一些值得挖掘的差异。这些差异主要是在显示配置部分和简化的用户体验上。


      如上所述,Grafana的图表编辑器有一个清晰的界面,可以选择多种选项来改进数据的显示。


      Timelion也支持图表格式,但比Grafana的选项要少一些。正如我们上面看到的,它也依赖于用户将正确的函数连接到数据查询表达式上。例如,要添加一个图表,其中包含一个正在运行的查询标题,图中右上角的图例,当没有标记轴,且数据显示宽度为1px时,您需要手动编辑该表达式。


.lines(1,fill=1).title('RunningQueries').legend(ne).label(false)


      Grafana在图表格式上提供了更大的灵活性。例如可以显示不同单位的指标,如时间,货币和数据。Grafana可以根据单位自动缩放坐标轴(Byte-> MB->GB)。下面的Grafana图形显示了Elastic search中存储的受监控应用程序的磁盘使用情况。Y轴上显示磁盘使用率(KB),Grafana在标签中自动缩放到适当的位置(MiB)。


     Timelion中可以通过指定适当的转换来手动完成,但是与Grafana的动态转换相比,这是一个硬编码的选项,即使如此,也不会有Grafana在上面做的不同的标记(最初KiB随后切换到MiB)。


      Grafana也支持在Y轴上渲染负值,这在Timelion中是不可能的。除了真正的负数据值(例如零度以下的温度记录),使用Grafana的变换功能可以将特定的数列反转,以便帮助理解数据,如下所示:


      Grafana另一个不错的功能(不幸的是Timelion不具备的功能) 能够在图例中显示指标值。对用户来说,查看关键指标值是一种很好的可视化方式,无需单独的表格或用户通过鼠标点击查找。



数据交互方式


      Grafana和Kibana在图表数据交互的层次和易用性方面也是不同的。Kibana和Grafana都支持在图表上拖动选择时间段来放大细节,不过,Kibana在这个方面功能更加丰富。作为Elastic search的前端,它支持对数据进行即时文本搜索,它还允许用户通过单击图表中的值来自动深入查看数据,以显示详细信息。在下面的OBIEE监控仪表板(内置Kibana)中,Session_States活动会话历史记录数据在“等待”和“On CPU上”过滤器就是是由用户创建的,用户只需点击其中一个图表中的数据点即可。


      Timelion也支持这种交互性方式,在es()数据源函数包含一个名为“kibana”的参数。该参数定义了可视化是否应该遵循应用于Kibana仪表板其余部分的过滤器,如下所示。

.es(index=dms_*,metric='avg:obips1-Current_Disk_Usage',fit='nearest',kibana='true')


      虽然可以在Grafana中指定Elastic search Lucene查询并在编辑器中使用术语过滤器,但这些对于图形来说是局部的。


      通过使用一些变量,可以在单个Grafana仪表板上启用全局过滤,但这是针对每个仪表板的定制解决方案,而不是Kibana提供的开箱即用功能通过单击图例中的度量标签(如上),Grafana可以使您切换图表中的数据显示。


最后的结论


      将Kibana和Timelion与Grafana进行比较,在一个类似的展示时间序列指标方面,两个软件都有各自的优缺点


      Grafana的图形编辑器提供了一个令人惊叹的接口,可用于完善数据展示。Grafana不仅是一个简单易用的开发工具,而且为结果仪表盘增加了大量的预估选项,使得终端用户更容易阅读和分析。


      另一方面,Timelion只是Kibana提供的许多可视化方案(包括Tile Map和Tag Cloud)的一种方案,这意味着仪表板可以用数字和时间序列来构建,但是信息通过各种可视化显示。不幸的是,Timelion及其当前版本的表达式编辑器看起来有些不成熟,功能相对有限。显示选项加上一个更好的编辑器会使Timelion得到用户青睐。


      所以,我们将坚持Grafana和Kibana一起使用实现能力互补。Grafana提供了纯粹的时间序列指标仪表板,易于构建是关键因素之一,同时还提供丰富的格式化功能,并支持不同的数据源(如Elastic search)。Kibana在仪表板上做了无与伦比的工作,可以在各个维度上对指标进行丰富的探索,并以更多的可视化形式呈现。


      这是一个快速发展的工具领域,作者可以预见,Grafana和Kibana将继续以很快的速度发展,这对用户和开发者来说,确实是好消息!


>>>>>>>>>>>>>    推荐阅读    <<<<<<<<<<<<<



温馨提示:
搜索“ICT_Architect”“扫一扫”二维码关注公众号,点原文链接获取更多精彩内容。

求知若渴, 虚心若愚(Stay hungry, Stay foolish)

 
架构师技术联盟 更多文章 [解读] Intersect360分析预测: 由AI和Cloud驱动,未来HPC市场达439亿 FAQ详解“Meltdown和Spectre”问题,接踵而来的“Skyfall和Solace”是否仅是骗局? 作为软件工程师,该如何处理“前任”留下的代码? Grafana和Kibana是写给程序员最美的情诗! [思考] 程序员能靠纯技术渡过中年危机吗?
猜您喜欢 处理了一个https的妖怪问题,但最后处理的结果。。。 【学习分享】Liblinear之信赖域牛顿法 微软与Google达成JavaScript框架合作:将共同打造Angular 2 vmalloc()的基本实现 iOS预审总被拒?腾讯教你提升iOS审核通过率!