• Grafana elasticsearch 应用


    早期的时候,项目基于ES+echart写了一些仪表盘的展示页面,虽然ES配合这种char界面有着天然的优势,但实际写起代码来,还是很多重复的劳动,在一次偶然中发现Grafana,看到它提供了很多仪表盘式的图型,功能很强大,于是下载下来试了下效果不错。因为全部都是鼠标操作,都不用写代码,真正智能套件。

    如题,应用Grafana之前,你需要对es聚合查询知识有一定了解

    先看效果

    效果图
    因为网上这种图比较多,这里就不细看了,目前Grafana如何使用的文章不多,下面是我总结的一些经验,其中有一部份是从官网查到的资源,先把官网地址贴下,至于如何使用,大家可以参考下官网,官网文档对于初学者比较难懂,而我写这篇文章的目的是对于初次使用grafana的同学有个比较底的学习门槛。

    1,下载安装

    这块省略,自行,对于windows版本和linux版本,我都下载试了下,效果完全一样,使用方式也一样。

    2,配置数据源

    先上ES索引,这个索引主要存储各应用请求的访问量
    image.png
    这个是我测试环境ES的索引名称,一般情况索引都是以日期结尾,这点将在grafana建数据源的时候用到,好了,开始操作建数据源
    image.png

    然后再点击 add datasourch,出现这个界面

    image.png
    上图中index name里的值是:[hlog-crm3-hig-c-req-elapsed-time-]YYYY.MM.DD

    这个是elasticearch-head插件下索引里一条数据,展示这个是为了填Elasticsearch details中对于Time field name字段的理解
    image.png
    保存成功后数据源就建好了

    3,建图表

    image.png
    建这个表的步骤
    image.png
    image.png
    image.png

    把标记的三个点都操作完后,效果就出来了,这个就是按ES的聚合操作来的,这是最简单的求和,意思是在这个时间段内将所有的请求数求和,展示出来的数据表示今天内所有的请求数,注意一点,这个结果值都是按这个聚合时间来算的。
    因为是测试数据,所以,数据量比较少。
    image.png
    这个查询的结果就是,根据sGrp字段分组,查出这个分组下的数据访问量,而这个分组存的主要是各系统的标识,所以,整个翻译过来就是,各系统请求访问量实时监控图。
    如果想x轴想展示出group的名称,则可以这样选择
    image.png
    这样,x轴就从时间变成了各系统名称了
    如果我只想展示一种,该如何办了,这个时候就需要用到这个工具的另一个操作了
    image.png
    目前对于这个query的操作我只发现这样有用,官网上对这个做了详细说明,至于官网上那种用法,读者如有更详细的用法,可以留言给我
    这是官网文档地址:
    http://docs.grafana.org/features/datasources/elasticsearch/

    还有一个就是耗时分布图了,这个图的功能很强大,以前我想到过这样一种工具来展示,无奈echart对这个支持实现起来比较麻烦,但在这里真的点点就可以了
    首先,我得拿出我出的es里的数据来解释下
    image.png
    span是指这个请求的耗时,那么我将要实现一个根据每个请求的耗时来展示出耗时的区间分布
    首先是添加一个heatmap
    选择数据源后这样操作
    image.png
    选择平均值,然后再选择字段,注意,这个时间Y轴的值是个数,而我们需要的是时间(毫秒),所以还得更改下Y轴的值

    至于颜色设置什么的,不是重点,读者可以自己选择。
    这样一来就可以展示出各请求耗时段时间分布了,至于,如何区分出一个系统的,还是不同时间段的都跟前面的图表操作一致
    后面还有个饼图的,这里就不再展示,注意,饼图这个是官方提供的插件,要去官网上下载,操作起来也是很简单的。

    总结

    本文的目的就为了简化Grafana的入门学习成本,本人因为对es图表有过开发,学习这个软件时理解起来相对容易点,但在刚开始接触的时候,还是发现文档较少,而且大部份文档都只做出了个效果图,并没有实际操作的过程和解释,学习起来难免有点成本。
    当然,Grafana也有一些局限,对于单索引操作比较容易,对于多个索引的过滤暂时是不支持的,不过也能理解,ES本身对于多索引也支持不够,还有就是如果是特别复杂的聚合计算,grafana还是做不了的,它本身不支持原生的es查询语法,也就不能对一些多层次的聚合查询做展示,当然这一点也不影响它,因为对于es来说,单个索引的聚合查询才是它的优势,而且没有比它更加优秀的功能更强大的展示图表功能了。

  • 相关阅读:
    css实现图像边框的样式
    css3 实现div靠右对齐
    将div水平,垂直居中的方式
    使用vue-cli可视化的方式创建项目后如何关闭ESLint代码检测
    清楚html和css标签自带默认样式
    vue动态请求到的多重数组循环遍历,取值问题,如果某个值存在则显示,不存在则不显示。
    python 编程
    python 错题集
    python+selenium页面自动化 元素定位实际遇到的各种问题(持续更新)
    使用Fiddle抓取IOS手机
  • 原文地址:https://www.cnblogs.com/wxwall/p/9642621.html
Copyright © 2020-2023  润新知