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

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

先看效果


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

1,下载安装

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

2,配置数据源

先上ES索引,这个索引主要存储各应用请求的访问量

这个是我测试环境ES的索引名称,一般情况索引都是以日期结尾,这点将在grafana建数据源的时候用到,好了,开始操作建数据源

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


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

这个是elasticearch-head插件下索引里一条数据,展示这个是为了填Elasticsearch details中对于Time field name字段的理解

保存成功后数据源就建好了

3,建图表


建这个表的步骤


把标记的三个点都操作完后,效果就出来了,这个就是按ES的聚合操作来的,这是最简单的求和,意思是在这个时间段内将所有的请求数求和,展示出来的数据表示今天内所有的请求数,注意一点,这个结果值都是按这个聚合时间来算的。
因为是测试数据,所以,数据量比较少。

这个查询的结果就是,根据sGrp字段分组,查出这个分组下的数据访问量,而这个分组存的主要是各系统的标识,所以,整个翻译过来就是,各系统请求访问量实时监控图。
如果想x轴想展示出group的名称,则可以这样选择

这样,x轴就从时间变成了各系统名称了
如果我只想展示一种,该如何办了,这个时候就需要用到这个工具的另一个操作了

目前对于这个query的操作我只发现这样有用,官网上对这个做了详细说明,至于官网上那种用法,读者如有更详细的用法,可以留言给我
这是官网文档地址:
http://docs.grafana.org/features/datasources/elasticsearch/

还有一个就是耗时分布图了,这个图的功能很强大,以前我想到过这样一种工具来展示,无奈echart对这个支持实现起来比较麻烦,但在这里真的点点就可以了
首先,我得拿出我出的es里的数据来解释下

span是指这个请求的耗时,那么我将要实现一个根据每个请求的耗时来展示出耗时的区间分布
首先是添加一个heatmap
选择数据源后这样操作

选择平均值,然后再选择字段,注意,这个时间Y轴的值是个数,而我们需要的是时间(毫秒),所以还得更改下Y轴的值

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

总结

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

Grafana elasticsearch 应用的更多相关文章

  1. ELK从5.6.3升级到6.3.0总结

    ELK从5.6.3升级到6.3.0总结 由于6.3.0默认有es的监控功能,并且我们现在es总是有各种问题,原有的es开源插件head和HQ的监控都不够详细,所以决定升级es集群.我们目前es有5个n ...

  2. Elasticsearch集群状态脚本及grafana监控面板导出的json文件

    脚本文件: #!/usr/bin/env python import datetime import time import urllib import json import urllib2 imp ...

  3. Metrics+ElasticSearch+grafana

    Metrics+ElasticSearch+grafana--性能监控解决方案 https://blog.csdn.net/Shiyaru1314/article/details/76906461 利 ...

  4. 使用Kafka、Elasticsearch、Grafana搭建业务监控系统(三)Elasticsearch

    https://blog.csdn.net/tonywu1992/article/details/83576863

  5. Elastic:使用Grafana监视 Elasticsearch

  6. Ubuntu上Grafana 监控 Docker的技巧

    导读 Grafana 是一个有着丰富指标的开源控制面板.在可视化大规模测量数据的时候是非常有用的.根据不同的指标数据,它提供了一个强大.优雅的来创建.分享和浏览数据的方式. 它提供了丰富多样.灵活的图 ...

  7. 开源监控利器grafana

    前言: 做运维的很重要的基础工作就是监控,之前都是统计数据入库,然后前端js图表插件出图,费时费力,可定制性差 前几天接触到了ELK(logstash, elasticsearch, kibana)这 ...

  8. 使用statsd+graphite+grafana构建业务及性能监控模块

    近些年随着DevOps概念越来越收到重视,除了传统的Splunk,Zabbix外在开源领域也有越来越多的软件可供使用.从数据收集,时序数据库,图形展示等主要方面有各类可扩展的软件用于搭建一个数据监控平 ...

  9. elasticsearch插件之一:kibana

    介绍: 要说kibana,就不得不先说一下logstash.这里呢,先要讲个故事.故事是开头是这样的,Logstash早期曾经自带了一个特别简单的logstash-web用来查看ES中的数据,其功能太 ...

随机推荐

  1. day25

    今日内容 1.组合 2.多态与多态性 3.封装 4.property 组合: 什么是组合? 是指某一对象拥有的一个属性,该属性的值是另一个类的对象 为何用组合? 就是通过为某个对象添加一个新的属性(另 ...

  2. 如何优雅的使用mybatis

    原文:https://blog.csdn.net/gebitan505/article/details/54929287 这两天启动了一个新项目因为项目组成员一直都使用的是mybatis,虽然个人比较 ...

  3. WPF Get jiayuan outbox list(send mail box)

      Request URL: http://www.jiayuan.com/msg/outbox/list.php Request Method: POST form data: type=all&a ...

  4. MySql+Socket 完成数据库的增查Demo

    需求: 利用MySql数据库结合前端技术完成用户的注册(要求不使用Web服务技术),所以 Demo采用Socket技术实现Web通信. 第一部分:数据库创建 数据库采用mysql 5.7.18, 数据 ...

  5. Hadoop开发第2期---虚拟机中搭建Linux

    注:关于如何将hadoop源码导入Eclipse详见http://pan.baidu.com/s/1hq8ArUs 一.Hadoop配置软件(我的电脑是Windows7旗舰--64bit) 1. VM ...

  6. HTML基础之JS

    HTML中的三把利器的JS 又称为JavaScript,看着好像和Java有点联系,实际上他和java半毛钱关系都没有,JavaScript和我们学习的Python.Go.Java.C++等,都是一种 ...

  7. libgdx学习记录13——矩形CD进度条绘制

    利用ShapeRenderer可进行矩形进度条的绘制,多变形的填充等操作. 这是根据角度获取矩形坐标的函数. public Vector2 GetPoint( float x, float y, fl ...

  8. [C#]使用Join与GroupJoin将两个集合进行关联与分组

    本文为原创文章.源代码为原创代码,如转载/复制,请在网页/代码处明显位置标明原文名称.作者及网址,谢谢! 本文使用的开发环境是VS2017及dotNet4.0,写此随笔的目的是给自己及新开发人员作为参 ...

  9. JS基础内容小结(基础)(一)

    字符串的各类方法 str.charAt(1); 从第0个开始计算获取第一个子符串,如str=‘你好吗’获取到‘好’ str.charCodeAt(1); 获取对应字符串的编码数字:从第0个开始计算 S ...

  10. Azure : 通过 SendGrid 发送邮件

    SendGrid 是什么? SendGrid 是架构在云端的电子邮件服务,它能提供基于事务的可靠的电子邮件传递.并且具有可扩充性和实时分析的能力.常见的用例有:1. 自动回复用户的邮件2. 定期发送信 ...