Grafana已经迅速成为事实上的“DevOps”工具之一,用于实时监控时间序列指标的仪表盘(DashBoard)。除了强大的可视化之外,Grafana支持多种后端数据源,包括InfluxDB,Graphite,Elasticsearch和其他许多可以通过插件添加的数据源。
Kibana是另一个类似的前端工具,它是Elastic Stack的数据可视化前端,对Beats,Logstash(摄取)和Elastic search本身(存储)进行了补充。随着Elastic Stack版本5.x的发布,Kibana现在包含Timelion,用于交互式时间序列图表。
为了进一步了解相关内容,下面一起来看看一个性能分析工具中示例仪表板。我们同时使用Grafana和Kibana来呈现不同的数据视图。
为了让用户能够跨多个维度查看和分析性能数据,我们使用了Kibana。
最近发布的Timelion是Kibana的一个时间序列可视化插件,在日常工作中,我们经常确保使用正确的工具来完成正确的工作。在时间序列可视化方面,是采用Grafana来处理时间序列指标,还是Timelion能填补这个空白,又或是使我们能够简化我们平台的工具集?
在这篇文章中,我们将采用Timelion和Grafana来实现功能互补。目的不是要定义哪一个是“最好的”(一个毫无意义的实验),也不是要创建一个不可理解的展示图,而是要看看这两种工具在实时比较中是如何发挥各自优势,使得更容易建立图表。如哪一个产生一个更好看的仪表板?对最终用户阅读和分析数据来说,哪个版本具有最好的用户界面和用户体验?在分析这些数据的数据源和功能方面有什么限制?最终,我们是否可以将我们的产品的前端统一到这些工具中?
从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编辑器中,查询通常是通过GUI完成的。手动指定的查询用于访问高级功能以访问保存在Elastic search中的数据的。对支持Elasticsearch而言,Grafana(v4.1.1)新版本支持Elastic search v2和v5版本。据作者在Grafana 4.1.1和Elastic search v5上的实践经历表明,它作为长期数据源不像InfluxDB和Graphite(甚至是Elastic search v2)那样稳定。例如,如果图表配置不正确(例如: 设置为空值),Grafana在返回没有结果或在抛出描述性错误方面,显得不够直观。
在Grafana家庭中增加的一个有趣成员是警报引擎(Alerting Engine),它允许用户附加规则到仪表盘面板。一旦仪表盘被保存,Grafana将把警报规则提取到一个单独的警报规则存储器中对它们进行评估。
如上所述,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将继续以很快的速度发展,这对用户和开发者来说,确实是好消息!
>>>>>>>>>>>>> 推荐阅读 <<<<<<<<<<<<<
时间序列数据可视化: Kibana或Grafana?
Grafana和Kibana是写给程序员最美的情诗!
温馨提示:
搜索“ICT_Architect”或“扫一扫”二维码关注公众号,点原文链接获取更多精彩内容。
求知若渴, 虚心若愚(Stay hungry, Stay foolish)